.net - 如何使用 PowerShell 以编程方式禁用 Windows 安全模式
问题描述
我有一个我编写的脚本,用于在我们的环境中卸载和重新安装程序。这个程序是 Bit9(Carbon Black),根据他们的帮助台,禁用该服务(以便我可以卸载并重新安装)的唯一方法是启动到安全模式并禁用他们的服务。我编写了一个 PS 脚本来处理大部分的起重工作,并编写了一个 C# 服务来在安全模式下启动脚本。该脚本应该禁用安全模式,然后重新启动回到常规模式,但我无法让它工作。我尝试了以下命令:
& C:\Windows\System32\bcdedit.exe /deletevalue {current} safeboot
Start-Process -FilePath 'C:\Windows\System32\bcdedit.exe' -ArgumentList "/deletevalue {current} safeboot" -Verb RunAs
Invoke-Command -FilePath 'C:\Windows\System32\bcdedit.exe' -ArgumentList "/deletevalue {current} safeboot" -Verb RunAs
- 我什至尝试将命令放在批处理文件中并从脚本中调用它。
似乎没有任何工作。我得到的最常见的错误是:
This command cannot be run due to the error: The system cannot find the file specified.
Start-Process :
At C:\ta_fss\Bit9ForceInstall\bit9uninstall.ps1:255 char:13
+ Start-Process -FilePath $bcdedit -ArgumentList $deletePar ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Start-Process], InvalidOperationException
+ FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand
有谁知道我怎样才能让它工作?
谢谢
编辑:似乎bcdedit.exe
无法在安全模式下使用。那么,下一个问题:是否有注册表设置来启用/禁用安全模式?这可能会更好/更容易。我似乎无法找到它。我在网上找到的所有内容都指向HKLM:\SYSTEM\CurrentControlSet\Control\SafeBoot\Option
Windows 10 中不存在的旧版本的 Windows。除非需要添加。也不确定如何将 Windows 配置为通过网络启动进入安全模式。