Aan de slag met programmeren met Configuration Manager

Als u aan de slag wilt met programmeren voor Configuration Manager, is het handig om kennis te hebben van de functionaliteit en architectuur van Configuration Manager. Daarnaast zijn er een aantal belangrijke hulpprogramma's en bronnen die essentieel zijn voor het valideren en oplossen van problemen met oplossingen. Hieronder vindt u tips en bronnen voor iemand die nog niet eerder heeft geprogrammeerd voor Configuration Manager.

Belangrijk

U moet erkennen dat Configuration Manager, voorheen Systems Management Server (SMS), een vrij lange productgeschiedenis heeft. Bij het bekijken van naamruimten, klassen, methoden, eigenschappen en logbestanden vindt u veel referenties die "SMS" bevatten - in feite beginnen de meeste WMI-klassen met "SMS_" en de primaire Configuration Manager WMI-naamruimte is "SMS". In de loop der jaren hebben zich talloze legacy-klassen, methoden en eigenschappen verzameld - niet duidelijk voor een administratieve gebruiker, maar bij het programmeren kan de geschiedenis/erfenis verwarrend zijn.

Functioneel begrip

Om Configuration Manager succesvol te automatiseren of uit te breiden, is het ongelooflijk belangrijk om een functioneel inzicht in het product te verwerven. Configuration Manager is een gedistribueerd beheersysteem met meerdere lagen, dat meestal is verspreid over een groot aantal servers en een groot aantal locaties. Zie Fundamentals of Configuration Manager (Basisprincipes van Configuration Manager) voor meer informatie.

Meer informatie

Books

Video's

Forums

Architectonisch begrip

Configuration Manager is een gedistribueerd beheersysteem met meerdere niveaus. Het is belangrijk om de algemene architectuur van Configuration Manager te begrijpen. Hieronder vindt u een koppeling naar een overzicht van de Configuration Manager-architectuur.

Naast de architectuurgegevens zijn er verschillende belangrijke punten die beheerders en programmeurs die nog niet eerder met Configuration Manager hebben gewerkt, vaak verwarren.

  • Server: In algemene zin vinden de meeste programmeeracties (met name automatisering) plaats op een Configuration Manager-siteserver. Acties of configuratiewijzigingen worden in de hele hiërarchie van Configuration Manager via beleid doorgegeven aan de clients. Het beleid wordt door de client naar beneden gehaald met een configureerbaar polling-interval en wordt NIET onmiddellijk door de server naar de client gepusht. Als een client eenmaal is geïnstalleerd, is er over het algemeen geen directe communicatie van de siteserver naar de client of de client naar de siteserver - alle communicatie vindt plaats via intermediaire serverrollen.

  • Client: Configuration Manager-clients zijn systemen en apparaten die worden beheerd door Configuration Manager. Een 'server' kan een Configuration Manager client zijn. Een Exchange-server, een Active Directory-server en een Configuration Manager-server kunnen allemaal Configuration Manager-clients zijn. Bovendien kunnen Windows 10-, Windows Phone- en macOS-apparaten allemaal Configuration Manager clients zijn.

Configuration Manager-clients ontvangen beleid door periodiek een Configuration Manager-beheerpunt te peilen. Het polling-interval voor het ophalen van basisbeleid kan worden geconfigureerd, net als andere instellingen. Hierdoor zijn er inherente vertragingen in clientgerichte acties die worden geïnitieerd vanaf de Configuration Manager-siteserver.

  • Console: Binaire bestanden en bestanden van de Remote Configuration Manager-console worden niet automatisch bijgewerkt wanneer er wijzigingen worden aangebracht op de siteserver. Wijzigingen en uitbreidingen moeten handmatig of via Configuration Manager-toepassingsbeheer/softwaredistributie worden gekopieerd naar systemen waarop de Configuration Manager-console wordt uitgevoerd.

  • SMS-provider versus SQL Server: hoewel Configuration Manager gebruikmaakt van SQL Server voor gegevensopslag, is SQL Server NIET de primaire programmeerinterface voor Configuration Manager. De primaire programmeerinterface voor Configuration Manager is de SMS-provider (WMI). Het maken en wijzigen van objecten moet worden uitgevoerd via de SMS-provider. U kunt er beter rekening mee houden dat SQL Server alleen-lezen-toegang biedt tot Configuration Manager-gegevens voor query- en rapportagedoeleinden. Dit is geen kwestie van machtigingen, maar eerder van het handhaven van de gegevensintegriteit.

Naamruimten en klassen

Server

Primaire WMI-naamruimte: HOOFDMAP\SMS\SITE_<sitecode>

Server WMI-klassen:API-verwijzing voor Configuration Manager

Client

Primaire WMI-naamruimte: WORTEL\CCM

WMI-klassen voor clients:API-verwijzing voor Configuration Manager

Belangrijk

Het programmeren van de client voor Configuration Manager ontwikkelt zich voornamelijk op WMI. In het verleden was een reeks COM-klassen aan clientzijde de primaire methode die werd gebruikt om toegang te krijgen tot clientfunctionaliteit, hoewel er ook aanvullende WMI-klassen/methoden aan clientzijde werden gebruikt. Met de release van System Center 2012 Configuration Manager wordt de focus verplaatst naar een reeks WMI-klassen in de naamruimte: root/ccm/ClientSDK. Het is begrijpelijk dat een abstractie, in de vorm van COM of specifieke SDK-klassen, een nuttige abstractie biedt van onderliggende architectuurwijzigingen in de loop van productupdates.

Console

Consolegerelateerde beheerde klassen:

  • Microsoft.configurationmanagement.exe

  • Microsoft.configurationmanagement.managementprovider.dll

  • Microsoft.ConfigurationManagement.DialogFoundation.dll

  • AdminUI.DialogFoundation.dll

Inleidende onderwerpen voor de Configuration Manager-console:

Basisprincipes van programmeren

De sectie Programming Fundamentals van Configuration Manager van de SDK bevat voorbeelden van hoe u kunt werken met de verschillende typen objecten en structuren die beschikbaar zijn in Configuration Manager. Configuration Manager bevat objecten/concepten die in eerste instantie verwarrend kunnen zijn. Met name de ingesloten eigenschappen (die primair worden gebruikt met het sitebesturingsbestand) en luie eigenschappen (die in de hele Configuration Manager-klassen worden gebruikt) zijn van belang. Hieronder vindt u koppelingen naar de Programming Fundamentals (en andere subsecties) van de SDK. Deze secties bevatten codevoorbeelden van het werken met de verschillende objecttypen.

Belangrijk

De SDK biedt meestal codevoorbeelden in VBScript en C#. Dit betekent niet dat andere talen niet werken met de SMS-provider. De SMS Provider is taalonafhankelijk, zolang de juiste objecten en constructies maar uitgewisseld kunnen worden. Gebruik de taal (hulpprogramma) die het meest geschikt is voor uw omgeving. C# wordt intern gebruikt als basislijn voor het testen van de SDK-codefragmenten, dus voorbeelden van objectmanipulatie en codeconstructies worden meestal gegeven in C#. Als u een andere taal gebruikt, moet u vertrouwd zijn met het vertalen van C# naar de taal van uw keuze.

Eenvoudig gereedschap

WBEMTEST

Als u veel met Configuration Manager werkt, zult u weten dat veel ervan via WMI wordt uitgevoerd. WMI staat voor 'Windows Management Instrumentation' en is een door Microsoft gemaakte implementatie van de internetstandaard WBEM (Web Based Enterprise Management). Er zijn veel WMI-hulpprogramma's die er zijn. WBEMTEST is echter onmiddellijk beschikbaar op de meeste systemen, in plaats van eerst te moeten worden gedownload. U zou het kunnen zien als Notepad.exe: er zijn teksteditors met uitgebreide mogelijkheden beschikbaar, maar Notepad.exe is er altijd als u een tekstbestand moet weergeven of maken.

Inleiding tot WBEMTEST

Tip

Intern is WBEMTEST de meest gebruikte tool bij het oplossen van problemen met SMS-providers (het maken, wijzigen en verwijderen van objecten).

CMTrace

CMTrace: CMTrace is een aangepaste logboekviewer die nuttig is bij het bewaken en oplossen van problemen met Configuration Manager. CMTrace biedt een continu overzicht van de wijzigingen in het logbestand (in plaats van opnieuw te moeten laden om de geregistreerde activiteit te controleren) en is vooral handig bij het bewaken/oplossen van het maken of wijzigen van objecten via de SMS-provider (zie de SMSProv.log hieronder).

CMTrace is te vinden op de server van de Configuration Manager-site, onder de map "<Configuration Manager Installation Directory>\tools".

SMSProv.log: Het logbestand van de SMS-provider (<Configuration Manager Installation Directory>\Logs\SMSProv.log) registreert de activiteit van de SMS-provider en biedt informatie op laag niveau die nuttig is voor het bewaken/oplossen van problemen bij het programmatisch maken of wijzigen van Configuration Manager objecten via de SMS-provider.

Client Spy en Policy Spy

Client Spy: Een hulpprogramma waarmee u problemen kunt oplossen met betrekking tot softwaredistributie, inventarisatie en software-optimalisatie op System Center 2012-clients Configuration Manager.

Beleid spion: Een beleidsviewer waarmee u het beleidssysteem op System Center 2012-clients Configuration Manager kunt controleren en problemen kunt oplossen.

Voorbeeld van het Basic Configuration Manager-programma

Hieronder vindt u een koppeling naar een zeer eenvoudig Configuration Manager-programma met enkele basisbewerkingen die veel voorkomen in Configuration Manager-programma's: