Mit Status Message Queries bietet der Configuration Manager eine gute Möglichkeit die einzelnen Schritte spezifizierter Task-Sequence-Deployments in Echtzeit zu überwachen. Nickolaj Andersen hat dazu mal einen sehr guten Blog-Artikel geschrieben.
Wie auch Nickolaj in seinem Blog schreibt, sollte pro Task-Sequence-Deployment eine Status Message Query erstellt werden. Für die Query benötigen wir die DeploymentID des jeweiligen Task-Sequence-Deployments. Bei mehreren Task-Sequence-Deployments kann das Anlegen der Status Message Queries pro Deployment jedoch schnell aufwändig und fehleranfällig werden.
Folgendes Powershell-Script legt pro Task-Sequence-Deployment eine Status Message Query an. Als Name der Status Message Query wird der Name der Zielsammlung, auf die das Task-Sequence-Deployment zeigt, verwendet.
$tsdeployment = Get-CMDeployment -FeatureType TaskSequence -CollectionName * | select Collectionname, DeploymentID | Foreach-Object { $CMStatusMessageQueryname = $_.Collectionname $CMTargetCollectionID = $_.DeploymentID New-CMStatusMessageQuery -Name "$CMStatusMessageQueryname" -Expression "select SMS_StatusMessage.*, SMS_StatMsgInsStrings.*, SMS_StatMsgAttributes.*, SMS_StatMsgAttributes.AttributeTime from SMS_StatusMessage left join SMS_StatMsgInsStrings on SMS_StatMsgInsStrings.RecordID = SMS_StatusMessage.RecordID left join SMS_StatMsgAttributes on SMS_StatMsgAttributes.RecordID = SMS_StatusMessage.RecordID where SMS_StatMsgAttributes.AttributeID = 401 and SMS_StatMsgAttributes.AttributeValue = ""$CMTargetCollectionID"" and SMS_StatMsgAttributes.AttributeTime >= ##PRM:SMS_StatMsgAttributes.AttributeTime## order by SMS_StatMsgAttributes.AttributeTime DESC" }