Share via


Aan de slag met Configuration Manager-programmering

Als u aan de slag wilt gaan met programmeren voor Configuration Manager, is het handig om een basiskennis van de functionaliteit en architectuur van Configuration Manager te hebben. Daarnaast zijn er een aantal belangrijke hulpprogramma's en resources die essentieel zijn voor het valideren en oplossen van oplossingen. Hieronder staan tips en bronnen voor iemand die nog niet is vertrouwd met programmeren voor Configuration Manager.

Belangrijk

U moet herkennen dat Configuration Manager, voorheen Systems Management Server (SMS), een behoorlijk lange geschiedenis als product heeft. Bij het controleren van naamruimten, klassen, methoden, eigenschappen en logboekbestanden vindt u veel verwijzingen met 'SMS'. In feite beginnen de meeste WMI-klassen met 'SMS_' en is de primaire Configuration Manager WMI-naamruimte 'SMS'. In de loop van de jaren zijn er talloze verouderde klassen, methoden en eigenschappen verzameld, wat niet duidelijk is voor een gebruiker met beheerdersrechten, maar bij het programmeren van de geschiedenis/verouderde kan dit verwarrend zijn.

Functioneel begrip

Als u Configuration Manager wilt automatiseren of uitbreiden, is het ongelooflijk belangrijk om een functioneel inzicht in het product te krijgen. Configuration Manager is een gedistribueerd beheersysteem met meerdere lagen, meestal verspreid over meerdere servers en talloze locaties. Zie Basisprincipes van Configuration Manager voor meer informatie.

Meer informatie

Books

Video's

Forums

Architectuur begrijpen

Configuration Manager is een gedistribueerd beheersysteem met meerdere lagen. 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 informatie over de architectuur zijn er verschillende belangrijke punten die beheerders en programmeurs die nieuw zijn bij Configuration Manager vaak verwarren.

  • Server: In algemene zin vinden de meeste programmeeracties (met name automatisering) plaats op een Configuration Manager-siteserver. Acties of configuratiewijzigingen worden via beleid doorgegeven aan de clients in de Configuration Manager-hiĆ«rarchie. Beleid wordt door de client opgehaald op een configureerbaar polling-interval DAT NIET onmiddellijk door de server naar de client wordt gepusht. Over het algemeen is er na installatie van een client geen directe communicatie van de siteserver naar de client of de client naar de siteserver. Alle communicatie vindt plaats via tussenliggende serverfuncties.

  • Klant: Configuration Manager-clients zijn systemen en apparaten die worden beheerd door Configuration Manager. Een 'server' kan een Configuration Manger-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 pollen. Het polling-interval voor het ophalen van basisbeleid kan worden geconfigureerd, net als andere instellingen. Hierdoor zijn er inherente vertragingen in acties die op de client zijn gericht vanaf de Configuration Manager-siteserver.

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

  • 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 moet SQL Server beschouwen als het bieden van alleen-lezentoegang tot Configuration Manager-gegevens voor query- en rapportagedoeleinden. Dit is geen kwestie van machtigingen, maar van het handhaven van gegevensintegriteit.

Naamruimten en klassen

Server

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

WMI-klassen server:Naslaginformatie over Configuration Manager-API

Client

Primaire WMI-naamruimte: ROOT\CCM

WMI-clientklassen:Naslaginformatie over Configuration Manager-API

Belangrijk

Het programmeerverhaal aan de clientzijde voor Configuration Manager is voornamelijk gebaseerd op WMI. In het verleden was een set COM-klassen aan de clientzijde de primaire methode die werd gebruikt voor toegang tot clientfunctionaliteit, hoewel er ook extra WMI-klassen/-methoden aan de clientzijde werden gebruikt. Met de release van System Center 2012 Configuration Manager wordt de focus verplaatst naar een set 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.

Troosten

Beheerde klassen met betrekking tot consoles:

  • Microsoft.configurationmanagement.exe

  • Microsoft.configurationmanagement.managementprovider.dll

  • Microsoft.ConfigurationManagement.DialogFoundation.dll

  • AdminUI.DialogFoundation.dll

Inleidende onderwerpen over Configuration Manager-console:

Basisprincipes van programmeren

De sectie Configuration Manager Programming Fundamentals van de SDK bevat voorbeelden van het werken met de verschillende typen objecten en structuren die beschikbaar zijn in Configuration Manager. Configuration Manager bevat enkele objecten/concepten die in eerste instantie verwarrend kunnen zijn. Van bijzonder belang zijn ingesloten eigenschappen (primair gebruikt met het sitebeheerbestand) en luie eigenschappen (gebruikt in de Configuration Manager-klassen). Hieronder ziet u koppelingen naar de basisprincipes van programmeren (en andere subsecties) van de SDK. Deze secties bevatten codevoorbeelden die laten zien hoe u met de verschillende objecttypen werkt.

Belangrijk

De SDK bevat meestal codevoorbeelden in VBScript en C#. Dit betekent niet dat andere talen niet werken met de SMS-provider. De SMS-provider is taalneutraal, zolang de juiste objecten en constructies kunnen worden uitgewisseld. Gebruik de taal (het 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 verstrekt in C#. Als u een andere taal gebruikt, moet u vertrouwd zijn met het vertalen van C# naar uw gewenste taal.

Basishulpprogramma's

WBEMTEST

Als u veel tijd besteedt aan Configuration Manager, wordt u zich ervan bewust dat een groot deel ervan via WMI wordt uitgevoerd. WMI is 'Windows Management Instrumentation' en is de implementatie door Microsoft van een internetstandaard met de naam Web Based Enterprise Management (WBEM). Er zijn veel WMI-hulpprogramma's beschikbaar. WBEMTEST is echter onmiddellijk beschikbaar op de meeste systemen, in plaats van eerst te moeten worden gedownload. U ziet het misschien als Notepad.exe. Er zijn teksteditors met uitgebreidere mogelijkheden beschikbaar, maar Notepad.exe is er altijd wanneer u een tekstbestand wilt weergeven of maken.

Inleiding tot WBEMTEST

Tip

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

CMTrace

CMTrace: CMTrace is een aangepaste logboekbestandviewer die handig is bij het bewaken en oplossen van problemen met Configuration Manager. CMTrace biedt een doorlopende weergave van wijzigingen in het logboekbestand (in plaats van opnieuw te moeten laden om geregistreerde activiteiten te bewaken) en is met name handig bij het bewaken/oplossen van problemen met het maken of wijzigen van objecten via de SMS-provider (zie de SMSProv.log hieronder).

CMTrace vindt u op de Configuration Manager-siteserver, onder de map Configuration< Manager Installation Directory>\tools.

SMSProv.log: Het logboekbestand 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 spion en beleid spion

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

Beleidsspion: Een beleidsviewer waarmee u het beleidssysteem op System Center 2012 Configuration Manager-clients kunt bekijken 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 Configuration Manager-programma's gemeen hebben: