我正在尝试自动运行一个脚本,该脚本可在启动时(是的,每次我的 PC 启动时)启用系统还原。我发现这个 PowerShell 脚本似乎在直接输入到 PowerShell 终端窗口时有效。
启用计算机恢复 - 驱动器“C:”
但我想将其转换为脚本文件,通过将其放在启动文件夹中来运行。我尝试将此脚本输入记事本,将“所有文件”另存为“.ps1”,然后将该文件扩展名设置为使用 PowerShell 作为默认应用程序打开。但它会加载一个红色错误,该错误会在终端窗口关闭时迅速消失。
我通常在启动时放置 .bat 文件来启动程序,我知道这可以用于启动 .ps1 文件,但现在当我将其设置为默认应用程序的 PowerShell 启动时,.ps1 甚至不起作用。
有没有更简单的方法可以自动静默启用系统还原,最好通过.bat 脚本?
答案1
您在弹出窗口中看到的错误将与您的 PowerShell 执行策略有关。
您有几个选择;
- 将 Powershell 代码包装在批处理文件中以绕过它,以便
PowerShell -ExecutionPolicy Bypass -命令“Enable-ComputerRestore -Drive‘C:’”
- 使用类似以下命令解除脚本阻止
Unblock-File -Path pathhere\script.ps1
- 将您的执行策略更改为 RemoteSigned 或 Unstricted,如下所示
设置执行策略-执行策略 RemoteSigned
有关 PowerShell 执行策略的更多信息,您可以参考此页面https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.3
答案2
以下命令在 C:\ 驱动器上启用系统还原。
wmic.exe /namespace:\\root\default Path SystemRestore Call enable "C:\"
或者,使用@Kuypotta 向您建议的 PowerShell.exe 命令行。
笔记:无论哪种情况,您都必须为其中一个命令创建计划任务并将其配置为在登录时运行。它无法从启动文件夹中运行。