Microsofts WMI-teknik (Windows Management Instrumentation) är en implementering av det DMTF-standardbaserade (Distributed Management Task Force) WBEM-initiativet (Web-Based Enterprise Management) som använder CIM (Common Information Model) för att representera hanteringsobjekt i Windows-baserade hanteringsmiljöer. CIM-modellen, som också är en DMTF-standard, är en utökningsbar datamodell för logisk organisering av hanteringsobjekt i en hanterad miljö.

Det CIM-baserade WBEM är en DMTF-teknik som upprättar standarder för hanteringsinfrastruktur och erbjuder standardiserad tillgång till information från olika maskinvaru- och programvaruhanteringssystem i företagsmiljön. Med WBEM-standarder kan utvecklare skapa verktyg och tekniker som både förenklar företagshanteringen och minskar dess kostnader. Med dessa standarder bidrar WBEM till branschomfattande insatser för att sänka den totala ägandekostnaden. Den totala ägandekostnaden avser administrativa kostnader kopplade till inköp av maskin- och programvara, distribution och konfiguration, uppdatering av maskin- och programvara, utbildning, underhåll och teknisk support.

WBEM utgör en integreringspunkt som ger åtkomst till information från hanteringskällor. Dessutom kompletterar och utökar det befintliga hanteringsprotokoll och instrumentation som exempelvis SNMP (Simple Network Management Protocol), DMI (Desktop Management Interface) och CMIP (Common Management Information Protocol).

Windows Management Instrumentation-teknik

WMI-tekniken (Windows Management Instrumentation) är en hanteringsinfrastruktur som har stöd för CIM-syntax, MOF-syntax (Managed Object Format) och ett gemensamt programmeringsgränssnitt. MOF-syntaxen definierar strukturen och innehållet i CIM-schemat i en form som är läsbar för både maskiner och människor. Windows Management Instrumentation erbjuder kraftfulla tjänster, bland annat frågebaserad informationshämtning och händelsemeddelanden. Dessa tjänster och hanteringsdata öppnas genom ett COM-programmeringsgränssnitt (Component Object Model). WMI-skriptgränssnittet har också stöd för skript.

WMI-tekniken tillhandahåller:

  • Åtkomst till övervakning, kommandokörning och styrning av alla hanteringsobjekt via en gemensam uppsättning gränssnitt, oavsett den underliggande instrumentationsmekanismen. WMI är en åtkomstmekanism.

  • En enhetlig modell av Windows-operativsystemets funktion, konfiguration och status.

  • Ett COM API-gränssnitt (Application Programming Interface) med en enda åtkomstpunkt för all hanteringsinformation.

  • Samverkan med andra Windows-hanteringstjänster. Detta bidrar till att integrerade, välutformade hanteringslösningar lätt kan skapas.

  • En flexibel utökningsbar arkitektur. Utvecklare kan utöka informationsmodellen till att även omfatta nya enheter och program genom att skriva kodmoduler, så kallade WMI-providers.

  • Tillägg till WDM (Windows Driver Model) som samlar in instrumentationsdata och händelser från enhetsdrivrutiner och komponenter på kernelsidan.

  • En kraftfull händelsearkitektur. Ändringar i hanteringsinformationen kan identifieras, sättas samman, jämföras och kopplas ihop med annan hanteringsinformation. Ändringarna kan också vidarebefordras till lokala hanteringsprogram eller fjärrhanteringsprogram.

  • Ett rikt frågespråk för informationsmodellens detaljerade frågor.

  • Ett API som kan köras med skript och användas av utvecklare för att skapa hanteringsprogram. Skript-API:et har stöd för flera språk, bland annat Microsoft Visual Basic, Visual Basic for Applications (VBA), Visual Basic, Scripting Edition (VBScript), Microsoft JScript-utvecklingsprogramvara. Förutom VBScript och JScript kan utvecklare använda all skriptspråksimplementering som har stöd för Microsoft ActiveX-skriptteknik med detta API (till exempel en Perl-skriptmodul). Dessutom kan du använda Windows Script Host eller Microsoft Internet Explorer för att skriva skript med det här gränssnittet. Windows Script Host fungerar, liksom Internet Explorer, som kontrollantmodul för ActiveX-skriptmoduler. Windows Script Host har stöd för skript som är skrivna i VBScript och JScript.

Översikt över WMI-arkitektur

Arkitekturen för WMI-tekniken består av följande:

  • En hanteringsinfrastruktur – Innehåller CIM Object Manager som förser program med enhetlig åtkomst till hanteringsdata och en central lagringsplats för hanteringsdata som kallas CIM Object Manager-databasen.

  • WMI-providers – Fungerar som mellanhänder mellan CIM Object Manager och hanterade objekt. Med hjälp av WMI API:er förser dessa providers CIM Object Manager med data från hanterade objekt, administrerar frågor åt hanteringsprogram och genererar händelsemeddelanden.

Hanteringsinfrastrukturen består av CIM Object Manager och CIM Object Manager-databasen. Programmen använder Object Manager för att hantera gränssnittet mellan hanteringsprogram och dataproviders. WMI underlättar denna kommunikation genom att tillhandahålla ett gemensamt programmeringsgränssnitt för Windows-hanteringstjänster med COM. COM API:et tillhandahåller händelsemeddelanden och frågebearbetningstjänster och kan användas i flera programmeringsmiljöer, t.ex. C och C++. CIM Object Manager-databasen innehåller scheman för CIM och tillägg, samt datainformation eller datakällsinformation. CIM Object Manager använder schemainformationen i den här databasen vid bearbetning av frågor från hanteringsprogram för hanterade objekt.

Hanterade objekt är antingen fysiska eller logiska företagskomponenter som modelleras med CIM. Ett hanterat objekt kan antingen vara maskinvara, exempelvis en kabel, eller programvara, t.ex. ett databasprogram. Hanteringsprogram kan öppna hanterade objekt via CIM Object Manager.

Hanteringsprogram är program eller tjänster i Windows som använder eller bearbetar information från hanterade objekt. Hanteringsprogram får åtkomst till information om hanterade objekt genom frågor till CIM Object Manager via en av metoderna i WMI API:et.

WMI-providers COM- och DCOM-standardservrar (Distributed Component Object Model) som fungerar som mellanhänder mellan hanterade objekt och CIM Object Manager. Om CIM Object Manager tar emot en fråga från ett hanteringsprogram om data som inte är tillgängliga från CIM Object Manager-databasen eller om händelsemeddelanden som inte stöds av CIM Object Manager, vidarebefordras frågan till en WMI-provider. Dessa providers tillhandahåller data och händelsemeddelanden för hanterade objekt som gäller deras särskilda domän.

Om du vill implementera en provider bör du använda en av följande servertyper som stöds:

• Microsoft Windows 2008-tjänster, lokalt eller fjärranslutet.

• Körbara standardfiler (.exe-filer), lokalt eller fjärranslutet.

• Aktiva DLL:er (Dynamic-Link Libraries).

Rekommenderade servertyper är lokala eller fjärranslutna Windows 2008-tjänster och körbara standardfiler.

WMI levereras med inbyggda providers (eller standardproviders) som tillhandahåller data från källor som systemregistret. Inbyggda providers är:

  • Active Directory – Fungerar som gateway för all lagrad information i Active Directory-tjänsten. Tillåter åtkomst till information från både WMI och Active Directory via ett enda API.

  • Windows Installer-provider – Tillåter fullständig kontroll över Windows Installer och installation av programvara via WMI. Ger även information om alla program som installeras med Windows Installer.

  • Provider av prestandaräknare – Visar rådata från prestandaräknaren som används för att beräkna prestandavärden som visas i verktyget Systemövervakaren. Alla prestandaräknare som är installerade på systemet visas automatiskt genom denna provider.

  • Registrerprovider - Tillåter att registernycklar skapas, läses och skrivs. WMI-händelser kan genereras när vissa registernycklar ändras

  • SNMP-provider – Fungerar som gateway för system och enheter som använder SNMP (Simple Network Management Protocol) för hantering. SNMP MIB-objektvariabler kan läsas och skrivas. SNMP-traps kan mappas automatiskt till WMI-händelser.

  • Händelseloggprovider – Ger åtkomst till data och händelsemeddelanden från händelseloggen i Windows Server 2008.

  • Win32-provider – Ger information om operativsystem, datorsystem, kringutrustning, filsystem och säkerhet.

  • WDM-provider – Tillhandahåller WDM-drivrutinsinformation på låg nivå för användarens indataenheter, lagringsenheter, nätverkskort och kommunikationsportar.

  • Vyprovider – Nya sammansatta klasser kan byggas upp från befintliga klasser. Källklasser kan filtreras så att endast relevant information visas, information från flera klasser kan kombineras till en enda klass och data från flera datorer kan sättas samman till en enda vy.

WMI-teknik ger också stöd för utomstående anpassade providers. Anpassade providers kan användas för att administrera frågor om hanterade objekt som är miljöspecifika. Providers använder vanligtvis MOF-språk för att definiera och skapa klasser. Providers använder WMI API för att få åtkomst till CIM Object Manager-databasen och svara på CIM Object Manager-frågor som ursprungligen ställts av program.

Översikt över SNMP (Simple Network Management Protocol)

SNMP (Simple Network Management Protocol) är en nätverkshanteringsstandard som definierar en hanteringsstrategi för TCP/IP-nätverk.

SNMP använder en distribuerad arkitektur som består av:

  • Flera hanterade noder, var och en med en SNMP-entitet som kallas agent, och som ger fjärråtkomst till Management Instrumentation.

  • Minst en SNMP-entitet som kallas hanterare och som kör hanteringsprogram för att övervaka och styra hanterade element. Hanterade element är enheter som värdar, routrar och så vidare. De övervakas och styrs via sin hanteringsinformation.

  • Ett hanteringsprotokoll, SNMP, används för att skicka hanteringsinformation mellan hanteringsstationerna och agenterna. Hanteringsinformation avser en samling hanterade objekt i ett virtuell informationsarkiv som kallas MIB (Management Information Base).

SNMP-meddelanden

Hanteringssystem och agenter använder SNMP-meddelanden för att förmedla värdinformation. Meddelandena skickas via UDP (User Datagram Protocol) och vidarebefordras mellan hanteringssystemet och värden via IP (Internet Protocol).

En MIB (Management Information Base) innehåller den information som hanteringssystemet kräver. MIB för en nätverksdator kan innehålla information om ett nätverkskorts konfigurering och prestanda, tillgängligt hårddiskutrymme, en drivrutins eller ett programs version, och så vidare. Det går att skriva och läsa in fler MIB:er och visa de data som ska samlas in, så länge själva systemet har stöd för insamling av den begärda informationen.

Bearbeta begäran om information

När ett hanteringssystem efterfrågar information händer följande:

  1. Hanteringssystemet skickar en fråga till en agent med agentens IP-adressen.

  2. Agenten utformar ett SNMP-datagram som innehåller ett SNMP-meddelande och namnet på SNMP-gruppen som hanteringssystemet tillhör.

  3. SNMP-agenten tar emot datagrammet och bekräftar namnet. Om gruppnamnet är giltigt hämtar SNMP-agenten den information som krävs. Om namnet däremot är ogiltigt avvisas begäran. Om agenten har konfigurerats att skicka ett autentiseringsmeddelande skickas ett sådant.

  4. SNMP-datagrammet returneras till hanteringssystemet med den begärda informationen.

Meddelanden

Följande typer av SNMP-meddelanden används:

  • GetThis är ett begäranmeddelande. SNMP-hanteringssystemen använder Get-meddelanden för att begära information om en MIB-post hos en SNMP-agent.

  • Getnext – Typ av begäranmeddelande som kan användas för att bläddra i hela trädet med hanterade objekt.

  • Getbulk – Typ av begäran som anger att agenten över så mycket data som möjligt inom gränserna för meddelandets storlek.

  • SetThis används för att skicka och tilldela en agent ett uppdaterat MIB-värde.

  • Notify (eller Trap) Detta är ett obeställt meddelande som en agent skickar till ett SNMP-hanteringssystem när det identifierat en viss typ av händelse som har inträffat på den hanterade värden.

SNMP-händelser (eller traps) skickas obeställda till en hanteringsstation som filtrerar händelserna. Ingen nätverkstrafik är därför inblandad. Med WMI filtreras händelserna lokalt och endast de som överensstämmer med filterkriterierna skickas över nätverket. Detta minskar den bandbredd som krävs för de relevanta händelserna.

WMI SDK-stöd för SNMP

SNMP-provider innehåller följande komponenter:

  • Klass, instans och händelseproviders som integrerar utformningen och bearbetningen av SNMP-information till WMI. Dessa SNMP-providers mappar insamlade objektvärden till egenskapsvärden för CIM-klassinstanser.

  • En kompilerarmodul för SNMP-information som kompilerar inbyggd SNMP-schemainformation till ett format som CIM använder.

SNMP-providers

SNMP-providers returnerar dynamisk information. Du kan ange vilken klassuppsättning som instansprovidern ska verka mot på ett av två sätt:

  • Statiskt – genom att skapa klasser i namnområdet för CIM-objektdatabasen som är kopplad till proxyenheten.

  • Dynamiskt – genom att använda SNMP-klassprovidern, som returnerar uppsättningen klasser inom SMIR-namnområdet (SNMP Module Information Repository).

Dessutom kan du ange om du vill använda korrelation eller inte för uppsättningen klasser som returneras från SMIR-namnområdet. Korrelerade klasser definierar uppsättningen klasser som en given SNMP-agent ska stödja då uppräkningen sker. Icke-korrelerade uppräkningar returnerar alla klasser inom SMIR-namnområdet oavsett om agentenheten har stöd för dem eller inte.

SNMP-providers innehåller:

  • SNMP-klass och instans-providers som program använder för att få åtkomst till och ändra data som avser SNMP-enheter.

  • SNMP-händelseproviders som genererar händelser från SNMP-traps och meddelanden. De rapporterar samma typ av händelser men i olika format: Inkapslat och referens. Inkapslat betyder att händelseklassen har enkla egenskaper som beskriver den mappade informationen direkt från makrona TRAP-TYPE och NOTIFICATION-TYPE, som beskrivs i nästa avsnitt. Referensklasserna abstraherar den aktuella informationen i makrona så att egenskaperna som delar klass och instans presenteras som inbäddade objekt. Detta möjliggör extrahering av __RELPATH så att den unika instansen som en trap är kopplad till kan hämtas när händelsen har tagits emot. Användare registrerar en viss händelseklass och kan sedan välja format.

Mappa enhetsdata till CIM-klasser

SNMP-providers mappar enhetsdata till CIM-klasser på följande sätt:

  • Räkna upp SNMP-klassdefinitioner. Program anropar IWbemServices::CreateClassEnum eller IWbemServices::CreateClassEnumAsync för att räkna upp en uppsättning klassdefinitioner.

    MIB-objekt mappas till SNMP CIM-klasser med makrot OBJECT-TYPE. Händelser mappas till klasser med makrona TRAP-TYPE och NOTIFICATION-TYPE.

    Makrot OBJECT-TYPE används för att beskriva de grundläggande egenskaperna hos ett MIB-objekt. Makrona SNMPv1 TRAP-TYPE och SNMPv2C NOTIFICATION-TYPE beskriver egenskaperna hos en SNMP-händelse.

  • Skapa instanser av SNMP-klassdefinitioner. Program anropar IWbemServices::GetObject eller IWbemServices::GetObjectAsync för att skapa en instans av en klassdefinition.

  • Räkna upp SNMP-klassinstanser. SNMP-instansprovidern hanterar begäran om att räkna upp instanser som är kopplade till klasser som representerar enhets-MIB:er.

  • Skapa instanser av SNMP-klassinstanser. SNMP-instansprovidern bearbetar begäran om att skapa instanser av klasser som representerar MIB-objekt.

  • Hämta SNMP-klassinstanser. Program anropar IWbemServices::GetObject eller IWbemServices::GetObjectAsync för att hämta en viss instans av en SNMP CIM-klass.

SNMP och CIM-schemat

Schemat som SNMP använder för att definiera objekt skiljer sig från det som används i WMI CIM. SNMPv1- och SNMPv2-schemat kallas SMI (Structure of Management Information) och är paketerat som MIB-filer. MIB-filerna använder standardspråket ASN.1 (Abstract Syntax Notation 1) för att definiera objekt, och makrodefinitioner som mallar för att beskriva objekten. Makrona tillhandahåller information om objektet i form av namn, identifierare, syntax, beskrivning, åtkomstbehörighet och så vidare.

WMI SNMP-providers konverterar MIB-makrona:

  • OBJECT-TYPE Beskriver ett objekts grundläggande egenskaper, t.ex. namn, syntax, åtkomstbehörighet med mera. Avser SNMPv1 och SNMPv2C.

  • TEXTUAL-CONVENTION Tilldelar en befintlig datatyp ett namn och i vissa fall ett värdeintervall. Avser endast SNMPv2C.

  • TRAP-TYPE Beskriver händelsemeddelanden (traps). Avser endast SNMPv1.

  • NOTIFICATION-TYPE Beskriver händelsemeddelanden. Avser endast SNMPv2C.

SNMP-klassprovidern räknar upp och skapar en instans av en uppsättning klassdefinitioner mot ett CIM-namnområde. Detta sker genom en MIB-korrelator och SNMP MIR, en SNMP-schemadatabas. SNMP-klassprovidern har stöd för korrelerade och icke-korrelerade lägen. Du fastställer ett läge genom att ange en motsvarighet till ett kontextvärde (IWbemContext) av boolesk typ och skicka det till metoden IWbemServices. SNMP-klassprovidern har stöd för både uppräkning av klassdefinitioner och hämtning av en klassdefinition.

SNMP-instansprovidern mappar SNMP MIB-objekt till klassinstanser.

SNMP-namnområde

Ett SNMP-namnområde används för att definiera en vy av en nätverksenhet. Du kan skapa ett SNMP-namnområde med WMI SDK:s WMI CIM Studio-program genom att kompilera en MOF-fil eller via programmering med WMI API:et.

Systemklassen Namnområde används för att representera ett SNMP-namnområde. Skapa en instans av den här klassen när du ska generera ett nytt namnområde. Du måste koppla minst en beskrivning (eller kvalificerare) till klassinstansen. Kvalificerarna innehåller implementeringsspecifik kontextinformation och transportegenskaper som definierar SNMP-providers åtkomst till en SNMP-agent.

Representation av SNMP-enheter

SNMP-enheter representeras i WMI genom ett proxynamnområde som innehåller en uppsättning instanskvalificerare. Kvalificerarna beskriver enhetens transportegenskaper. WMI använder en MOF-fil, snmpreg.mof, för att skapa namnområdet \\.\root\snmp\localhost. Detta är ett standardområde som motsvarar den lokala SNMP-agenten.

SNMPv2C

SNMPv2C har stöd i WMI-kontexten. SNMPv2C huvudsakliga syfte är att tillhandahålla en starkare säkerhetskontext för SNMP. Den här versionen använder den enkla och osäkra lösenordsbaserade autentiseringsfunktionen som kallas SNMP-gruppfunktionen (finns i SNMPv1). SNMPv2 SMI innehåller vissa tillägg och förbättringar av gruppsäkerheten, till exempel bit-strängar, nätverksadresser och räknare för SNMPv1 SMI-specifika datatyper. Dessutom anger SNMPv2 SMI informationsmoduler som anger en grupp relaterade definitioner. SNMPv2 definierar också två nya protokollåtgärder: GetBulk och Inform.

Säkerhet

Med WMI-säkerhet kontrolleras användarens inloggningsinformation både på den lokala datorn och för fjärranslutningar. WMI beviljar en godkänd användare någon form av kontrollerad åtkomst till hela CIM-databasen. I WMI:s nuvarande version tillhandahålls ingen säkerhet för systemresurser som exempelvis enskilda klasser och instanser. Administratörer kan dock använda WMI för att kontrollera globala behörigheter för schemaverksamhet, till exempel begränsa åtkomst för vissa användare till skrivskyddade åtgärder. WMI har också stöd för namnområdessäkerhet. Dessutom har SNMP-providern stöd för all SNMP-baserad säkerhet, inklusive säkerhetsförbättringarna i SNMPv2C.

Kompilerare för SNMP-informationsmodul

Kompileraren för SNMP-informationsmodul används för att kompilera inbyggd SNMP-hanteringsinformation som definieras i en MIB till en motsvarande CIM-schemadefinition som kan användas med SNMP-providers. CIM-schemat kan vara utdata i en MOF-fil eller läsas in i en SNMP-schemadatabas (SMIR, eller SNMP Module Information Repository). Den dynamiska SNMP-klassprovidern använder SNMP MIR för att skapa och hämta instanser av klassdefinitioner.

Kompileraren för SNMP-informationsmodul körs i kommandoradsläge som körbar fil med en SNMP-informationsmodul som indata och andra eventuella filer som behövs för att lösa externa referenser. SNMP-informationsmoduler är en uppsättning hanteringsinformation som vanligtvis består av en kombination av MIB-moduler och satserna AGENT-CAPABILITIES och MODULE-COMPLIANCE. AGENT-CAPABILITIES-satser beskriver en agents överensstämmelse med uppsättningen MIB-moduler som den stöder. MODULE-COMPLIANCE-satser beskriver en agents kapacitet vad gäller objektdefinitioner.

Kompileraren för SNMP-informationsmodul har även följande funktioner:

  • Utför kontrollåtgärder på informationsmodulen. Exempelvis kontrolleras lokal syntax och externa referenser mot information i underordnade moduler.

  • Tar bort alla tidigare inlästa data från SMIR, eller tar bort inlästa data från en informationsmodul.

  • Returnerar antingen ASN.1-modulnamnet för en viss fil, eller ASN.1-modulnamnen för alla importerade moduler i en viss fil.

  • Returnerar ASN.1-modulnamnet för alla SNMP-informationsmoduler som för tillfället är inlästa i SMIR.

  • Utför automatisk upplösning av importerade moduler i stället för att uppmana användare att manuellt ange de begärda modulerna.

  • Utför åtgärdsläget tyst inläsning som inte genererar utdata men kan användas för att läsa in data i SMIR under en installation.

Se även


Innehåll