修复脚本运行时,SCCM合规性状态始终为“合规”

时间:2016-03-16 10:59:17

标签: powershell sccm

我们正在尝试使用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” 

- 符合条件的SCCM规则:  enter image description here enter image description here

- Configuration Manager中的SCCM合规性状态:  enter image description here

在Windows事件查看器中,可以轻松跟踪所有步骤。我错过了一些非常明显的东西吗?

1 个答案:

答案 0 :(得分:1)

经过多次痛苦和伤害自己后,@ DarkLite1发现SCCM在执行修复后未检查合规状态

从您使用“修复”脚本的那一刻起,'唯一可能的2个合规性状态是:'合规'或者'退出并显示错误代码'。这是在PowerShell中使用'退出1'

完成的

有关详细信息,请参阅。 https://social.technet.microsoft.com/Forums/en-US/0f0f3e6f-7e9f-4376-a926-fc0b6aef5bf1/sccm-compliance-state-always-compliant-when-remediation-script-runs?forum=configmanagersecurity