我们正在尝试使用SCCM 2012 R2对客户端运行一些检查并在需要时修复问题。为此,我们使用PowerShell“脚本”选项。
问题描述:
当“发现脚本”报告“不合规”时,会启动“修复脚本”。无论“修复脚本”的输出如何,“配置管理器”中的客户端报告中的结果>即使“修复脚本”未能解决问题,配置仍然是“合规的”,因此在“合规条件规则”中定义了不同的输出。
似乎从选择“修复脚本”的那一刻起,SCCM合规性状态的输出始终是“合规的”。
示例:
- 情况:
当文件夹“C:\ Users \ me \ Downloads \ Input_Test”中有文件或文件夹时,“发现脚本”会报告“不符合任何内容”并启动“修复脚本”。修复脚本采取措施并且无法修复问题,因此它会报告其他内容,然后是“合规”,如“不合规”。 SCCM合规状态应在执行“补救脚本”后说:“不合规”(事实并非如此)。
- PowerShell发现脚本:
$Paths = Get-ChildItem -Path 'C:\Users\me\Downloads\Input_Test' | Select -ExpandProperty FullName
New-EventLog -LogName Application -Source SCCMCompliance
if ($Paths) {
$Compliance = 'Non-Compliant'
Write-EventLog -LogName Application -Source SCCMCompliance -EntryType Warning -EventID 1 -Message “Discovery script: Non-Compliant”
}
else {
$Compliance = 'Compliant'
Write-EventLog -LogName Application -Source SCCMCompliance -EntryType Information -EventID 0 -Message “Discovery script: Compliant”
}
$Compliance
- PowerShell修复脚本:
Write-Output 'Non-Compliant'
Write-EventLog -LogName Application -Source SCCMCompliance -EntryType Warning -EventID 1 -Message “Remediation script: Non-Compliant $Paths”
- Configuration Manager中的SCCM合规性状态:
在Windows事件查看器中,可以轻松跟踪所有步骤。我错过了一些非常明显的东西吗?
答案 0 :(得分:1)
经过多次痛苦和伤害自己后,@ DarkLite1发现SCCM在执行修复后未检查合规状态
从您使用“修复”脚本的那一刻起,'唯一可能的2个合规性状态是:'合规'或者'退出并显示错误代码'。这是在PowerShell中使用'退出1'
完成的