Vzdálená správa systému Windows a rozhraní WMI
Vzdálenou správu systému Windows lze použít k načtení dat vystavených nástrojem Windows Management Instrumentation (rozhraní WMI a MI). Data rozhraní WMI můžete získat pomocí skriptů nebo aplikací, které používají rozhraní API pro skriptování WinRM nebo prostřednictvím nástroje příkazového řádku Winrm.
WinRM podporuje většinu známých tříd a operací rozhraní WMI, včetně vložených objektů. WinRM může využívat rozhraní WMI ke shromažďování dat o prostředcích nebo ke správě prostředků v operačním systému Windows. To znamená, že můžete získat data o objektech, jako jsou disky, síťové adaptéry, služby nebo procesy ve vašem podniku, prostřednictvím existující sady tříd rozhraní WMI . Můžete také přistupovat k hardwarovým datům dostupným od standardního poskytovatele rozhraní WMI IPMI.
Identifikace prostředku rozhraní WMI
Na třídu WMI můžete odkazovat jako na prostředek ve WinRM a v protokolu WS-Management: typ spravované entity, jako je služba nebo disk.
Třída nebo metoda rozhraní WMI je identifikována identifikátorem URI, stejně jako jakýkoli jiný prostředek je při použití protokolu WS-Management. Identifikátor URI může určit prostředek rozhraní WMI (třída), akci rozhraní WMI (metodu) nebo určit konkrétní instanci třídy v zpráv, odeslané přes síť. Další informace najdete v tématu identifikátory URI prostředků.
Vytvoření předpony identifikátoru URI pro třídy služby WMI
Předpona identifikátoru URI obsahuje pevnou část a obor názvů rozhraní WMI. Například předpona identifikátoru URI ve Windows Serveru, která obsahuje pevnou část předpony, je: http://schemas.microsoft.com/wbem/wsman/1/wmi/<WmiNamespace>
. To umožňuje vygenerovat předponu identifikátoru URI pro libovolný obor názvů rozhraní WMI. Pokud například chcete získat přístup ke kořenové\výchozí oboru názvů rozhraní WMI, použijte následující předponu identifikátoru URI: http://schemas.microsoft.com/wbem/wsman/1/wmi/root/default/
.
Většina tříd WMI pro správu je v root\cimv2 oboru názvů. Pro přístup ke třídám a instancím v root\cimv2 oboru názvů použijte předponu identifikátoru URI: http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/
. Další informace najdete v tématu identifikátory URI prostředků.
Generování kompletního identifikátoru URI pro třídy služby WMI
Identifikátor URI, který zadáte do nástroje příkazového řádku Winrm nebo skriptu, se skládá z předpony a specifikace prostředku.
Následující postup popisuje, jak vygenerovat identifikátor URI prostředku pro získání třídy WMI nebo použití v výčtu operace.
Vygenerování identifikátoru URI prostředku pro třídy rozhraní WMI
Začněte předponou, která indikuje, že se má použít schéma protokolu WS-Management.
https://schemas.microsoft.com/wbem/wsman/1
Předpona identifikátoru URI prostředku pro třídy služby WMI je vždy stejná. Další informace naleznete v tématu předpon URI.
Přidejte obor názvů rozhraní WMI do předpony.
http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/
Přidejte název třídy.
http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service
Chcete-li nastavit hodnotu vlastnosti nebo vyvolat konkrétní metodu, přidejte požadovanou hodnotu klíče nebo hodnoty pro třídu.
http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Winmgmt
Pokud necháte hodnotu klíče prázdnou, původní hodnotu vlastnosti nezměníte.
Poznámka
Když necháte prázdnou hodnotu klíče, nastaví hodnotu vlastnosti na hodnotu NULL.
Vyhledání prostředku rozhraní WMI pomocí WinRM
Data rozhraní WMI můžete získat prostřednictvím nástroje příkazového řádku, Winrmnebo prostřednictvím skriptu jazyka Visual Basic, který používá rozhraní API pro skriptování winRM. K vyhledání prostředku nepoužíváte cestu rozhraní WMI. Místo toho převedete obor názvů a hierarchii rozhraní WMI na identifikátor URI.
Identifikátor URI WinRM pro třídu služby WMI obsahuje dvě části: předponu identifikátoru URI a třídu, ke které chcete získat přístup.
Například následující identifikátor URI lze zadat do metody Session.Enumerate pro výpis všech služeb v počítači. Předpona identifikátoru URI je http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/
a třída je Win32_Service.
strResourceUri = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_CurrentTime"
Ve službě WMI vypište data pro všechny instance prostředku nebo třídy několika způsoby:
Dotaz pro všechny instance tohoto prostředku.
Set colServices = objWMIService.ExecQuery("Select * from Win32_Service")
Volání SWbemServices.InstancesOf nebo SWbemObject.Instances_.
Set colServices = InstancesOf("Win32_Service")
Ve WinRM existuje jeden ze způsobů, jak zobrazit seznam všech instancí prostředku: Session.Enumerate.
strResource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service"
Set colServices = objSession.Enumerate( strResource )
Vyhledání konkrétní instance prostředku služby WMI
Ve službě WMI můžete určit konkrétní instanci třídy zadáním hodnot klíče nebo dotazováním instance, která odpovídá seznamu hodnot vlastností. Vlastnosti klíče mají kvalifikátor klíč WMI.
Konkrétní instanci třídy můžete získat několika způsoby:
Volání Session.Enumerate s filtru a dialektu parametry pro vytvoření dotazu.
RemoteComputer = "servername.domain.com" strDialect = "http://schemas.microsoft.com/wbem/wsman/1/WQL" strResource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/*" Set objWsman = CreateObject("Wsman.Automation") Set objSession = objWsman.CreateSession("https://" & RemoteComputer) strFilter = "SELECT * FROM Win32_Share WHERE Name='Admin$'" Set objResultSet = objSession.Enumerate(strResource, strFilter, strDialect)
Volání SWbemServices.Get. Pro Session.Getmusíte zadat jednu nebo více konkrétních hodnot klíče před otazníkem (?).
Formát identifikátoru URI pro konkrétní instanci je
http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/WMI_Class?Key1=Value
.strResourceUri = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=winmgmt"
Třída služby WMI může mít více než jeden klíč. Dvojice název-hodnota klíče jsou oddělené symbolem +. V takovém případě je formát:
http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Key1=Value1+Key2=Value2
.Syntaxe WinRM pro získání jednoho objektu WMI se liší od rozhraní WMI. Singleton je třída WMI definovaná tak, aby byla povolena pouze jedna instance. Win32_CurrentTime nebo Win32_WMISetting jsou příklady jednoúčelové třídy WMI.
Syntaxe rozhraní WMI pro singletony je znázorněna v následujícím příkladu kódu jazyka VBScript.
Set TimeObject = objWMIService.Get("Win32_CurrentTime=@")
Následující příklad ukazuje syntaxi singleton WinRM, která nepoužívá znak @.
strResourceUri = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_CurrentTime"
Přidání selektoru do objektuResourceLocator nebo IWSManResourceLoc ator.
Následující příklad kódu jazyka VBScript ukazuje, jak pomocí selektoru získat konkrétní instanci Win32_Processor.
strUri = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Processor" Set objWsman = CreateObject("Wsman.Automation") Set Session = objWsman.CreateSession Set Locator = objWsman.CreateResourceLocator(strUri) Locator.AddSelector "DeviceID", "CPU0"
Související témata
-
o vzdálené správy systému Windows