当我运行此脚本时:
$SaveExecutionPolicy = Get-ExecutionPolicy
#
Set-ExecutionPolicy RemoteSigned -Scope Currentuser
Import-Module .\SpeculationControl.psd1
Get-SpeculationControlSettings
Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser
它将给出以下输出:
有关以下输出的更多信息,请参阅 https://support.microsoft.com/en-in/help/4074629
CVE-2017-5715 [分支目标的推测控制设置 注射]
为分支目标注入缓解提供了硬件支持: 错误的Windows OS支持缓解分支目标注入 目前:对分支目标注入的真正Windows OS支持 启用了缓解:分支目标的错误Windows OS支持 系统策略禁用了注入缓解:False Windows OS 缺少支持分支目标注入缓解的支持 支持的硬件:True
CVE-2017-5754 [恶意数据缓存加载]的推测控制设置
硬件需要内核VA阴影:真正的Windows OS支持 存在内核VA阴影:内核VA的True Windows OS支持 启用了阴影:真正的Windows OS支持PCID性能 启用了优化:True [安全性不是必需的]
CVE-2018-3639的推测控制设置[推测商店 绕过]
存在Windows OS对推测性存储绕过禁用的支持: 错误
CVE-2018-3620 [L1终端故障]的推测控制设置
硬件容易受到L1终端故障的影响:真正的Windows OS支持 存在用于L1终端故障缓解的解决方案:错误的Windows OS支持 L1终端故障缓解的启用:False
建议的动作
- 安装由设备OEM提供的BIOS /固件更新 为分支目标注入缓解提供硬件支持。
- 安装Windows的最新可用更新,并支持推测控制缓解措施。 *请遵循启用指南 Windows Client支持的推测控制缓解措施 在https://support.microsoft.com/help/4073119
中BTIHardwarePresent:假BTIWindowsSupportPresent
:真BTIWindowsSupportEnabled:假 BTIDisabledBySystemPolicy:False BTIDisabledByNoHardwareSupport:True KVAShadowRequired
:正确KVAShadowWindowsSupportPresent:正确 KVAShadowWindowsSupportEnabled:True KVAShadowPcidEnabled
:True SSBDWindowsSupportPresent:False SSBDHardwareVulnerable:SSBDHardwarePresent
:False SSBDWindowsSupportEnabledSystemWide:False L1TFHardwareVulnerable:True L1TFWindowsSupportPresent
:假L1TFWindowsSupportEnabled:假L1TFInvalidPteBit :0 L1DFlushSupported:错误
我想以此自动化:
if ($string -like '*L1TFHardwareVulnerable : True*') { }
{
write-output "1" (stderr)
}
else
{
Write-Output "0" (stdout)
}
总脚本如下:
$SaveExecutionPolicy = Get-ExecutionPolicy
#
Set-ExecutionPolicy RemoteSigned -Scope Currentuser
Import-Module .\SpeculationControl.psd1
Get-SpeculationControlSettings
Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser
if ($string -like '*L1TFHardwareVulnerable : True*') { }
{
write-output "1"
}
else
{
Write-Output "0"
}
有人可以帮我吗?预先感谢
答案 0 :(得分:0)
将Get-SpeculationControlSettings
的输出分配给变量并检查该对象的属性:
$Settings = Get-SpeculationControlSettings
if($Settings.L1TFHardwareVulnerable -and -not($Settings.L1TFWindowsSupportEnabled))
{
return 1
}
else
{
return 0
}
有关逻辑运算符(例如-and
和-not
)的更多信息,请参见about_Logical_Operators
help file