Erste Schritte mit Configuration Manager-Programmierung

Um mit der Programmierung für Configuration Manager zu beginnen, ist es vorteilhaft, ein grundlegendes funktionales und architektonisches Verständnis von Configuration Manager zu haben. Darüber hinaus gibt es eine Reihe wichtiger Tools und Ressourcen, die für die Überprüfung und Problembehandlung von Lösungen von entscheidender Bedeutung sind. Im Folgenden finden Sie Tipps und Ressourcen für Personen, die noch nicht mit der Programmierung für Configuration Manager.

Wichtig

Sie sollten erkennen, dass Configuration Manager, zuvor Systems Management Server (SMS), eine ziemlich lange Geschichte als Produkt hat. Beim Überprüfen von Namespaces, Klassen, Methoden, Eigenschaften und Protokolldateien finden Sie viele Verweise, die "SMS" enthalten. Die meisten WMI-Klassen beginnen mit "SMS_", und der primäre Configuration Manager WMI-Namespace ist "SMS". Im Laufe der Jahre haben sich zahlreiche Legacyklassen, Methoden und Eigenschaften angesammelt – für einen Administrator nicht offensichtlich, aber bei der Programmierung kann der Verlauf/die Vermächtnis verwirrend sein.

Funktionales Verständnis

Um Configuration Manager erfolgreich zu automatisieren oder zu erweitern, ist es unglaublich wichtig, ein funktionales Verständnis des Produkts zu erlangen. Configuration Manager ist ein mehrstufiges, verteiltes Verwaltungssystem, das meist auf zahlreiche Server und zahlreiche Standorte verteilt ist. Weitere Informationen finden Sie unter Grundlagen der Configuration Manager.

Weitere Ressourcen

Bücher

Videos

Foren

Architekturverständnis

Configuration Manager ist ein verteiltes Verwaltungssystem mit mehreren Ebenen. Es ist wichtig, die allgemeine Architektur von Configuration Manager zu verstehen. Im Folgenden finden Sie einen Link zu einer Übersicht über die Configuration Manager Architektur.

Zusätzlich zu den Architekturinformationen gibt es mehrere wichtige Punkte, die Administratoren und Programmierer, die mit Configuration Manager neu sind, häufig verwirren.

  • Server: Im Allgemeinen finden die meisten Programmieraktionen (insbesondere Automatisierung) auf einem Configuration Manager-Standortserver statt. Aktionen oder Konfigurationsänderungen werden in der gesamten Configuration Manager Hierarchie über richtlinien an die Clients weitergegeben. Die Richtlinie wird vom Client in einem konfigurierbaren Abrufintervall abgerufen, das NICHT sofort vom Server an den Client gepusht wird. Im Allgemeinen erfolgt nach der Installation eines Clients keine direkte Kommunikation vom Standortserver zum Client oder vom Client zum Standortserver – die gesamte Kommunikation erfolgt über zwischengeschaltete Serverrollen.

  • Client: Configuration Manager Clients sind Systeme und Geräte, die von Configuration Manager verwaltet werden. Ein "Server" kann ein Konfigurationsverwaltungsclient sein. Ein Exchange-Server, ein Active Directory-Server und ein Configuration Manager-Server können alle Configuration Manager Clients sein. Darüber hinaus können Windows 10-, Windows Phone- und macOS-Geräte alle Configuration Manager Clients sein.

Configuration Manager Clients erhalten eine Richtlinie, indem sie regelmäßig einen Configuration Manager-Verwaltungspunkt abfragen. Das Abrufintervall für das Abrufen der grundlegenden Richtlinie ist wie andere Einstellungen konfigurierbar. Aus diesem Gründen gibt es inhärente Verzögerungen bei clientgerichteten Aktionen, die vom Configuration Manager Standortserver initiiert werden.

  • Konsole: Remote Configuration Manager-Konsolenbinärdateien und -dateien werden nicht automatisch aktualisiert, wenn Änderungen auf dem Standortserver vorgenommen werden. Änderungen und Erweiterungen müssen entweder manuell oder mithilfe von Configuration Manager Anwendungsverwaltung/Softwareverteilung auf Systeme kopiert werden, auf denen die Configuration Manager-Konsole ausgeführt wird.

  • SMS-Anbieter im Vergleich zu SQL Server: Obwohl Configuration Manager SQL Server für die Datenspeicherung nutzt, ist SQL Server NICHT die primäre Programmierschnittstelle für Configuration Manager. Die primäre Programmierschnittstelle für Configuration Manager ist der SMS-Anbieter (WMI). Die Objekterstellung und -änderung muss über den SMS-Anbieter erfolgen. Sie sollten SQL Server als schreibgeschützten Zugriff auf Configuration Manager Daten zu Abfrage- und Berichterstellungszwecken in Betracht ziehen. Dabei geht es nicht um Berechtigungen, sondern um die Aufrechterhaltung der Datenintegrität.

Namespaces und Klassen

Server

Primärer WMI-Namespace: ROOT\SMS\SITE_<site-Code>

Server-WMI-Klassen:Configuration Manager-API-Referenz

Client

Primärer WMI-Namespace: ROOT\CCM

Client-WMI-Klassen:Configuration Manager-API-Referenz

Wichtig

Die clientseitige Programmierung für Configuration Manager entwickelt sich in erster Linie auf WMI-basiert. In der Vergangenheit waren eine Reihe von clientseitigen COM-Klassen die primäre Methode, die für den Zugriff auf Clientfunktionen verwendet wurde, obwohl auch zusätzliche clientseitige WMI-Klassen/-Methoden verwendet wurden. Mit der Veröffentlichung von System Center 2012 Configuration Manager verlagert sich der Fokus auf eine Reihe von WMI-Klassen im Namespace: root/ccm/ClientSDK. Verständlicherweise bietet eine Abstraktion in Form von COM oder bestimmten SDK-Klassen eine nützliche Abstraktion von zugrunde liegenden Architekturänderungen im Verlauf von Produktupdates.

Konsole

Konsolenbezogene verwaltete Klassen:

  • Microsoft.configurationmanagement.exe

  • Microsoft.configurationmanagement.managementprovider.dll

  • Microsoft.ConfigurationManagement.DialogFoundation.dll

  • AdminUI.DialogFoundation.dll

Einführende Configuration Manager Konsolenthemen:

Grundlagen der Programmierung

Der Abschnitt Configuration Manager Programmiergrundlagen des SDK enthält Beispiele für die Arbeit mit den verschiedenen Typen von Objekten und Strukturen, die in Configuration Manager verfügbar sind. Configuration Manager enthält einige Objekte/Konzepte, die anfänglich verwirrend sein können. Von besonderem Interesse sind eingebettete Eigenschaften (die primär mit der Site Control File verwendet werden) und verzögerte Eigenschaften (die in den Configuration Manager Klassen verwendet werden). Im Folgenden finden Sie Links zu den Programmiergrundlagen (und anderen Unterabschnitten) des SDK. Diese Abschnitte enthalten Codebeispiele, die zeigen, wie sie mit den verschiedenen Objekttypen arbeiten.

Wichtig

Das SDK stellt am häufigsten Codebeispiele in VBScript und C# bereit. Dies bedeutet nicht, dass andere Sprachen nicht mit dem SMS-Anbieter funktionieren. Der SMS-Anbieter ist sprachunabhängig, solange die richtigen Objekte und Konstrukte ausgetauscht werden können. Verwenden Sie die Sprache (tool), die für Ihre Umgebung am besten geeignet ist. C# wird intern als Baseline zum Testen der SDK-Codeausschnitte verwendet, sodass Beispiele für Objektmanipulation und Codekonstrukte am häufigsten in C# bereitgestellt werden. Wenn Sie eine andere Sprache verwenden, sollten Sie mit der Übersetzung von C# in die Sprache Ihrer Wahl vertraut sein.

Grundlegende Tools

WBEMTEST

Wenn Sie viel Zeit mit Configuration Manager werden Sie sich bewusst, dass ein Großteil davon über WMI ausgeführt wird. WMI ist "Windows-Verwaltungsinstrumentation" und Microsoft Implementierung eines Internetstandards namens Web Based Enterprise Management (WBEM). Es gibt viele WMI-Tools. WBEMTEST ist jedoch auf den meisten Systemen sofort verfügbar, anstatt zuerst heruntergeladen werden zu müssen. Sie können sich dies wie Notepad.exe vorstellen – es gibt Text-Editoren mit umfangreicheren Funktionen, aber Notepad.exe ist immer da, wenn Sie eine Textdatei anzeigen oder erstellen müssen.

Einführung in WBEMTEST

Tipp

Intern ist WBEMTEST das am häufigsten verwendete Tool für die Behandlung von Problemen im Zusammenhang mit dem SMS-Anbieter (Objekterstellung, -änderung und -löschung).

CMTrace

CMTrace: CMTrace ist ein angepasster Protokolldatei-Viewer, der bei der Überwachung und Problembehandlung von Configuration Manager nützlich ist. CMTrace bietet eine kontinuierliche Ansicht der Protokolldateiänderungen (anstatt neu zu laden, um protokollierte Aktivitäten zu überwachen) und ist besonders nützlich, wenn die Objekterstellung oder -änderung über den SMS-Anbieter überwacht/behoben wird (siehe SMSProv.log unten).

CMTrace befindet sich auf dem Configuration Manager-Standortserver im Ordner "<Configuration Manager Installationsverzeichnis>\tools".

SMSProv.log: Die SMS-Anbieterprotokolldatei (<Configuration Manager Installationsverzeichnis>\Logs\SMSProv.log) protokolliert die Aktivität des SMS-Anbieters und stellt Informationen auf niedriger Ebene bereit, die nützlich sind, um Probleme beim programmgesteuerten Erstellen oder Ändern von Configuration Manager Objekten über den SMS-Anbieter zu überwachen/zu beheben.

Client Spy und Policy Spy

Client Spy: Ein Tool, mit dem Sie Probleme im Zusammenhang mit der Softwareverteilung, dem Bestand und der Softwaremessung auf System Center 2012 Configuration Manager Clients beheben können.

Richtlinienspion: Ein Richtlinien-Viewer, der Ihnen hilft, das Richtliniensystem auf System Center 2012 Configuration Manager-Clients zu überprüfen und Probleme zu beheben.

Grundlegendes Configuration Manager-Programmbeispiel

Im Folgenden finden Sie einen Link zu einem sehr einfachen Configuration Manager Programm, das einige grundlegende Vorgänge zeigt, die für viele Configuration Manager Programme üblich sind: