Dela via


Kom igång med Configuration Manager-programmering

För att komma igång med programmering för Configuration Manager är det bra att ha en grundläggande funktionell och arkitektonisk förståelse för Configuration Manager. Dessutom finns det ett antal viktiga verktyg och resurser som är viktiga för validering och felsökning av lösningar. Nedan visas tips och resurser för någon som är nybörjare på programmering för Configuration Manager.

Viktigt

Du bör känna igen att Configuration Manager, tidigare System Management Server (SMS), har en ganska lång historik som produkt. När du granskar namnrymder, klasser, metoder, egenskaper och loggfiler hittar du många referenser som innehåller "SMS" – de flesta WMI-klasser börjar faktiskt med "SMS_" och det primära WMI-namnområdet i Configuration Manager är "SMS". Under årens lopp har många äldre klasser, metoder och egenskaper ackumulerats – inte uppenbart för en administrativ användare, men när programmering av historiken/det äldre kan vara förvirrande.

Funktionell förståelse

För att automatisera eller utöka Configuration Manager är det otroligt viktigt att få en funktionell förståelse för produkten. Configuration Manager är ett distribuerat hanteringssystem med flera nivåer, oftast fördelat på flera servrar och flera platser. Mer information finns i Grunderna i Configuration Manager.

Fler resurser

Böcker

Videor

Forum

Arkitekturtolkning

Configuration Manager är ett distribuerat hanteringssystem med flera nivåer. Det är viktigt att förstå den allmänna arkitekturen i Configuration Manager. Nedan visas en länk till en översikt över Configuration Manager-arkitekturen.

Förutom arkitekturinformationen finns det flera viktiga punkter som ofta förvirrar administratörer och programmerare som är nya i Configuration Manager.

  • Server: I allmänhet sker de flesta programmeringsåtgärder (särskilt automatisering) på en Configuration Manager-platsserver. Åtgärder eller konfigurationsändringar sprids i Configuration Manager-hierarkin till klienterna via principen. Principen hämtas av klienten på ett konfigurerbart avsökningsintervall som INTE skickas direkt till klienten av servern. När en klient har installerats finns det i allmänhet ingen direkt kommunikation från platsservern till klienten eller klienten till platsservern – all kommunikation sker via mellanliggande serverroller.

  • Klient: Configuration Manager-klienter är system och enheter som hanteras av Configuration Manager. En "server" kan vara en Configuration Manger-klient. En Exchange-server, en Active Directory-server och en Configuration Manager-server kan alla vara Configuration Manager-klienter. Dessutom kan Windows 10-, Windows Phone- och macOS-enheter alla vara Configuration Manager-klienter.

Configuration Manager-klienter tar emot principer genom att regelbundet avsöka en Configuration Manager-hanteringsplats. Avsökningsintervallet för hämtning av grundläggande princip kan konfigureras, liksom andra inställningar. På grund av detta finns det inneboende fördröjningar i klientriktade åtgärder som initieras från Configuration Manager-platsservern.

  • Konsol: Binärfiler och filer för Fjärrkonfigurationshanteraren-konsolen uppdateras inte automatiskt när ändringar görs på platsservern. Ändringar och tillägg måste kopieras till system som kör Configuration Manager-konsolen, antingen manuellt eller med hjälp av Configuration Manager Application Management/Programvarudistribution.

  • SMS-provider jämfört med SQL Server: Även om Configuration Manager använder SQL Server för datalagring är SQL Server INTE det primära programmeringsgränssnittet till Configuration Manager. Det primära programmeringsgränssnittet för Configuration Manager är SMS-providern (WMI) – objektskapande och ändring måste göras via SMS-providern. Du bör betrakta SQL Server som skrivskyddad åtkomst till Configuration Manager-data i fråge- och rapporteringssyfte. Det här handlar inte om behörigheter, utan om att upprätthålla dataintegriteten.

Namnområden och klasser

Server

Primärt WMI-namnområde: ROOT\SMS\SITE_<platskod>

Server WMI-klasser:Configuration Manager API-referens

Klient

Primärt WMI-namnområde: ROOT\CCM

Klientens WMI-klasser:Configuration Manager API-referens

Viktigt

Programmeringsberättelsen på klientsidan för Configuration Manager utvecklas till att främst vara WMI-baserad. Tidigare var en uppsättning COM-klasser på klientsidan den primära metoden som användes för att komma åt klientfunktioner, även om ytterligare WMI-klasser/metoder på klientsidan också användes. I och med lanseringen av System Center 2012 Configuration Manager flyttas fokus till en uppsättning WMI-klasser i namnområdet: root/ccm/ClientSDK. En abstraktion i form av COM- eller specifika SDK-klasser ger förståeligt nog en användbar abstraktion från underliggande arkitekturändringar under produktuppdateringar.

Konsol

Konsolrelaterade hanterade klasser:

  • Microsoft.configurationmanagement.exe

  • Microsoft.configurationmanagement.managementprovider.dll

  • Microsoft.ConfigurationManagement.DialogFoundation.dll

  • AdminUI.DialogFoundation.dll

Inledande avsnitt om Configuration Manager-konsolen:

Grunderna i programmering

Avsnittet Grunderna för Configuration Manager-programmering i SDK innehåller exempel på hur du arbetar med de olika typerna av objekt och strukturer som är tillgängliga i Configuration Manager. Configuration Manager innehåller vissa objekt/begrepp som till en början kan vara förvirrande. Av särskilt intresse är inbäddade egenskaper (används primärt med platskontrollfilen) och lata egenskaper (används i configuration Manager-klasserna). Nedan visas länkar till grunderna för programmering (och andra underavsnitt) i SDK:et. De här avsnitten innehåller kodexempel som visar hur du arbetar med de olika objekttyperna.

Viktigt

SDK:t innehåller oftast kodexempel i VBScript och C#. Detta innebär inte att andra språk inte fungerar med SMS-providern. SMS-providern är språkagnostisk, så länge rätt objekt och konstruktioner kan utbytas. Använd det språk (verktyg) som passar bäst för din miljö. C# används internt som baslinje för att testa SDK-kodfragmenten, så exempel på objektmanipulering och kodkonstruktioner tillhandahålls oftast i C#. Om du använder ett annat språk bör du vara bekväm med att översätta från C# till ditt språk.

Grundläggande verktyg

WBEMTEST

Om du ägnar mycket tid åt Configuration Manager blir du medveten om att mycket av det går via WMI. WMI är "Windows Management Instrumentation" och är Microsofts implementering av en Internetstandard som kallas Web Based Enterprise Management (WBEM). Det finns många WMI-verktyg där ute. WBEMTEST är dock omedelbart tillgängligt på de flesta system, i stället för att behöva laddas ned först. Du kanske ser det som Notepad.exe – det finns textredigerare med mer omfattande funktioner, men Notepad.exe finns alltid där när du behöver visa eller skapa en textfil.

Introduktion till WBEMTEST

Tips

Internt är det vanligaste verktyget vid felsökning av SMS-providerrelaterade problem (objektskapande, ändring och borttagning) WBEMTEST.

CMTrace

CMTrace: CMTrace är ett anpassat loggfilsvisningsprogram som är användbart vid övervakning och felsökning av Configuration Manager. CMTrace ger en kontinuerlig vy över loggfilsändringarna (i stället för att behöva läsa in igen för att övervaka loggad aktivitet) och är särskilt användbart när du övervakar/felsöker skapande eller ändring av objekt via SMS-providern (se SMSProv.log nedan).

CMTrace finns på Configuration Manager-platsservern under mappen "<Configuration Manager Installation Directory>\tools".

SMSProv.log: SMS-providerloggfilen (<Configuration Manager Installation Directory>\Logs\SMSProv.log) loggar SMS-providerns aktivitet och tillhandahåller information på låg nivå som är användbar för att övervaka/felsöka problem när du programmatiskt skapar eller ändrar Configuration Manager-objekt via SMS-providern.

Klientspion och policyspion

Klientspion: Ett verktyg som hjälper dig att felsöka problem som rör programvarudistribution, inventering och avläsning av programvara på System Center 2012 Configuration Manager-klienter.

Policyspion: Ett principvisningsprogram som hjälper dig att granska och felsöka principsystemet på System Center 2012 Configuration Manager-klienter.

Exempel på Basic Configuration Manager-program

Nedan visas en länk till ett mycket enkelt Configuration Manager-program som visar några grundläggande åtgärder som är gemensamma för många Configuration Manager-program: