符合性设置--可以针对注册表值、脚本、文件系统、补丁更新情况进行符合性检查,除了在报表中查看结果外,还可以在CCM客户端 的 配置 中查看符合性评估结果,适合排错
1.配置项目---新建针对 注册表值、脚本、文件系统等的符合性检查规则
---一个配置项目中可以配置多条 符合性规则,客户端会分别针对每条规则检查是否符合,客户端报表中会列出不符合的规则
2.配置基线
---选择新建的配置项目,然后部署到集合
---直接选择软件更新,然后部署到集合
注:通过PowerShell脚本检查符合性设置的话,需要在 客户端设置 -- 计算机代理 --- PowerShell执行策略 更改为 旁路或者受限制的 都可以,“已全部签名”不可以,客户端计算机PowerShell执行策略也需要更改为 Unrestricted,否则脚本在客户端执行不成功,提示“Script is not signed”
PowerShell脚本:
1. $po=Get-executionPolicy
Write-Host $po
2.Echo (gwmi win32_computersystem).domain
VBS回显命令:Wscript.Echo "abc"
配置基线部署:If the configuration baseline is deployed to a computer, it is evaluated for compliance within two hours of the start time that you schedule. If it is deployed to a user, it is evaluated for compliance when the user logs on.
WQL查询:
下图示例表示查询 名为DHCP的服务的 StartMode属性 的值 是否为“Auto”,Auto在符合性规则选项卡中设定为其值
符合性规则自动修订需要通过脚本检测以及修订,如下:
检测监本:
$ccm=test-path c:\mm\ccm1.txt
Write-Host $ccm
修订脚本:
New-Item c:\mm\ccm1.txt -Type file
$ccm=test-path c:\mm\ccm1.txt
Write-Host $ccm
如果报告中显示错误“Application requirement evaluation or detection failed”,则是由于修订脚本导致,修订脚本中必须也要有返回值,且要满足检查脚本的返回值
检查计算机上是否安装了某个KB
1.如果通过SCCM分发补丁,则可以直接新建基线,选择其KB即可
2.如果未通过SCCM分发补丁,则通过脚本实现,如下:
如果脚本返回值为$null,则跟任何值比较都会为真,故不能使用空值设置符合性规则
$kb =(gwmin win32_quickfixengineering |?{$_.hotfixid -eq "kb976902"}).hotfixid
if ($kb -ne $null)
{write-host "yes"}
else {write-host "no"}
符合性规则 = yes
查看报表:按配置基线的配置项目列出的符合性摘要