Welchen Status hat meine Softwareverteilung? (Microsoft System Center 2012 R2 Configuration Manager) - Statusinformationen verstehen und nutzen
Der folgende Blogeintrag soll helfen, zu verstehen, wie in Microsoft System Center 2012 R2 Configuration Manager der Status von Softwareverteilungen erfolgt und wie die Statusinformationen genutzt werden können:
In Microsoft System Center 2012 Configuration Manager kann die Bereitstellung der gesamten Software überwacht werden, z. B. Softwareupdates, Kompatibilitätseinstellungen, Anwendungen, Tasksequenzen sowie Pakete und Programme. Bereitstellungen können dabei standardmäßig über den Arbeitsbereich Überwachung in der Configuration Manager-Konsole oder über Berichte überwacht werden (basierend auf SQL Reporting Services).
Für Anwendungen in Configuration Manager wird eine zustandsbasierte Überwachung unterstützt, sodass Sie den letzten Anwendungsbereitstellungszustand für Benutzer und Geräte nachverfolgen können.
In diesen Zustandsmeldungen werden Informationen über einzelne Geräte angegeben. Wenn beispielsweise eine Anwendung für eine Sammlung von Benutzern bereitgestellt wird, kann der Kompatibilitätszustand und der Zweck – verfügbar oder erforderlich - der Bereitstellung z.B. in der Configuration Manager-Konsole angezeigt werden.
Für einen Anwendungsbereitstellungszustand wird einer der folgenden Kompatibilitätszustände angezeigt:
Erfolg: Die Anwendung wurde erfolgreich bereitgestellt oder war bereits installiert.
In Bearbeitung: Die Anwendungsbereitstellung wird ausgeführt.
Unbekannt: Der Zustand der Anwendungsbereitstellung konnte nicht ermittelt werden. Dieser Zustand gilt nicht für Bereitstellungen mit dem Zweck Verfügbar. Dieser Zustand wird in der Regel angezeigt, wenn noch keine Zustandsmeldungen vom Client eingegangen sind.
Anforderungen nicht erfüllt: Die Anwendung wurde nicht bereitgestellt, weil sie mit einer Abhängigkeit oder einer Anforderungsregel nicht kompatibel war oder weil das Zielbetriebssystem für die Bereitstellung ungültig war.
Fehler: Bei der Bereitstellung der Anwendung ist ein Fehler aufgetreten.
Sofern die Software durch Configuration Manager installiert wird, also insbesondere noch nicht installiert war, kann der Status der eigentlichen Installation noch detaillierter bestimmt werden.
Der Configuration Manager Client schickt den jeweiligen Status dabei über sogenannte Zustandsmeldungen (englisch: State Messages), die standardmäßig gesammelt und alle 15 Minuten verschickt werden (konfigurierbar). Dabei wir jeweils nur der aktuellste Status weitergeleitet, und damit nicht unbedingt jede einzelne Statusmeldungen, und Zustandsmeldungen werden auch nur dann an die Configuration Manager Datenbank weitergegeben, sofern sich der Zustand verändert hat. Der Datenbank ist damit jeweils nur der aktuell gemeldete Zustand und der Zeitpunkt, zu dem dieser gemeldet wurde, zu entnehmen.
Der Configuration Manager Client überprüft den Status von ihm aktuell zugewiesenen (!) Anwendungen
vor und nach der eigentlichen Installation bzw. Deinstallation der Anwendung
zeitgesteuert entsprechend den Einstellungen für die erneute Auswertung für Bereitstellungen (standardmäßig alle 7 Tage)
bei Ausführung des Evaluationszyklus für die Anwendungsbereitstellung
Die Überwachung von Anwendungen in Configuration Manager 2012 basiert auf der Anwendung an sich und nicht auf der jeweiligen Zuweisung. Solltest beispielsweise ein Anwendung durch mehrere Zuweisungen einem Client zugewiesen sein, so berichtet der Client insbesondere nicht, aufgrund welcher speziellen Zuweisung die Anwendung letztlich installiert wurde, da dies für die Installation keine Relevanz hat.
Ferner werden Anwendungen nur solange überwacht, wie es mindestens eine entsprechende aktive Zuweisung gibt. Dies kann dazu führen, dass die Statusinformationen in der Configuration Manager Datenbank nicht mehr aktuell sind. Wenn z.B. eine Anwendung von einem Client deinstalliert wird, nachdem die Zuweisung gelöscht wurde, wird der Status für diese Anwendung nicht mehr aktualisiert, solange es keine neue Zuweisung an den Client gibt. Daher ist darauf zu achten, entsprechende Zuweisungen bestehen zu lassen, solange der Status der Anwendungen überwacht werden soll.
Der Configuration Manager Client protokolliert dabei seine Aktionen in den folgenden Logdateien:
AppDiscovery.log
AppEnforce.log
AppIntentEval.log
StateMessage.log
Der Anwendungsbereitstellungszustand wird vom Client über zwei Zustandsmeldungen (engl.: State Messages) berichtet, und zwar über Meldungen mit der TopicType 1702 (Enforcement State) und über die Meldung mit der TopicType 1701 (Compliance State) (s. StateMessage.log).
Ferner speichert der Client alle Statusmeldungen in WMI, und zwar unter root\ccm\statemsg in der Klasse CCM_StateMsg.
Die folgenden Tabellen zeigen die jeweiligen möglichen Statusinformationen, die mit Hilfe der Zustandsmeldungen an den Configuration Manager Standort übermittelt werden und damit grundsätzlich zur Auswertung zur Verfügung werden:
Compliance State ID |
State Name (Englisch) |
0 |
Compliance State Unknown |
1 |
Compliant |
2 |
Non-Compliant |
4 |
Error |
Enforcement State Message ID |
State Name (Englisch) |
1000 |
Success |
1001 |
Already Compliant |
1002 |
Simulate Success |
2000 |
In progress |
2001 |
Waiting for content |
2002 |
Installing |
2003 |
Restart to continue |
2004 |
Waiting for maintenance window |
2005 |
Waiting for schedule |
2006 |
Downloading dependent content |
2007 |
Installing dependent content |
2008 |
Restart to complete |
2009 |
Content downloaded |
2010 |
Waiting for update |
2011 |
Waiting for user session reconnect |
2012 |
Waiting for user logoff |
2013 |
Waiting for user logon |
2014 |
Waiting To Install |
2015 |
Waiting Retry |
2016 |
Waiting For Presentation Mode |
2017 |
Waiting For Orchestration |
2018 |
Waiting For Network |
2019 |
Pending App-V Virtual Environment Update |
2020 |
Updating App-V Virtual Environment |
3000 |
Requirements not met |
3001 |
Host Platform Not Applicable |
4000 |
Unknown |
5000 |
Deployment failed |
5001 |
Evaluation failed |
5002 |
Deployment failed |
5003 |
Failed to locate content |
5004 |
Dependency installation failed |
5005 |
Failed to download dependent content |
5006 |
Conflicts with another application deployment |
5007 |
Waiting Retry |
5008 |
Failed to uninstall superseded deployment type |
5009 |
Failed to download superseded deployment type |
5010 |
Failed to updating App-V Virtual Environment |
In der Configuration Manager Datenbank können diese Statusinformationen über diverse SQL Views abgerufen werden, insbesondere über die SQL View v_CICurrentComplianceStatus. Der eigentliche Status ist dabei den folgenden Feldern zu entnehmen (jedoch als IDs, und nicht als beschreibender Text):
Feld |
Beschreibung |
ComplianceState |
Kompatiblitätszustand für eine Applikation |
LastComplianceMessageTime |
Zeitpunkt, an dem Kompatibilitätszustand gemeldet wurde |
EnforcementState |
Erzwingungszustand für Applikationsbereitstellung |
LastEnforcmentMessageTime |
Zeitpunkt, an dem der Erzwingungszustand gemeldet wurde |
Microsoft System Center 2012 R2 Configuration Manager beinhaltet einige Standardreports bzgl. der Überwachung des Status von Softwareverteilungen, die direkt genutzt oder bei Bedarf angepasst bzw. als Vorlagen für eigene Reports verwendet werden können. Die auf Microsoft SQL Server Reporting Services aufsetzenden Standardreports verwenden dabei Funktionen aus SRSResources.dll (z.B. Localization.GetStateMessage), um die o.g. IDs in den beschreibenden Text zu übersetzen.