我尝试通过 GPO 禁用旧版 PowerShell v2 版本,但没有成功。
我已经尝试了所有方法,运行计划任务(运行 PowerShell 脚本,如果在本地运行,其中的命令确实有效),包括在本地机器上复制文件,设置新的软件限制策略,但没有任何效果,因为该版本的 PowerShell 保持启用状态。
有什么建议么?
答案1
假设你有这样的需求粘胶纤维:
Windows PowerShell 5.0 添加了高级日志记录功能,当恶意软件在系统上运行后,该功能可以提供更多详细信息。禁用 Windows PowerShell 2.0 可缓解避开 Windows PowerShell 5.0 脚本块日志记录功能的降级攻击。
修复方法是禁用 Windows 功能。例如:
# Windows 10:
Disable-WindowsOptionalFeature -Online -FeatureName MicrosoftWindowsPowerShellV2Root
# Windows Server:
Uninstall-WindowsFeature -Name PowerShell-V2
卸载大约需要一分钟,然后显示是否需要重新启动才能进行更改:
Uninstall-WindowsFeature PowerShell-V2
Success Restart Needed Exit Code Feature Result
------- -------------- --------- --------------
True No Success {Windows PowerShell 2.0 Engine}
# running the command again does not error:
Success Restart Needed Exit Code Feature Result
------- -------------- --------- --------------
True No NoChangeNeeded {}
要检查当前状态:
# Windows 10
Get-WindowsOptionalFeature -Online -FeatureName MicrosoftWindowsPowerShellV2Root
FeatureName : MicrosoftWindowsPowerShellV2Root
DisplayName : Windows PowerShell 2.0
Description : Adds or Removes Windows PowerShell 2.0
RestartRequired : Possible
State : Enabled
CustomProperties :
# Windows Server:
Get-WindowsFeature -Name PowerShell*
Display Name Name Install State
------------ ---- -------------
[X] Windows PowerShell PowerShellRoot Installed
[X] Windows PowerShell 5.1 PowerShell Installed
[X] Windows PowerShell 2.0 Engine PowerShell-V2 Installed ## Should be "Available"
[X] Windows PowerShell ISE PowerShell-ISE Installed