Megosztás a következőn keresztül:


Windows távfelügyelet és WMI

A Windows Remote Management a Windows Management Instrumentation (WMI és MI) által közzétett adatok lekérésére használható. WMI-adatokat olyan szkriptekkel vagy alkalmazásokkal szerezhet be, amelyek a WinRM Scripting API- vagy a Winrm parancssori eszközén keresztül használják.

A WinRM támogatja a legtöbb ismert WMI-osztályt és -műveletet, beleértve a beágyazott objektumokat is. A WinRM a WMI használatával adatokat gyűjthet erőforrásokról vagy a Windows-alapú operációs rendszerek erőforrásairól. Ez azt jelenti, hogy a vállalaton belüli objektumokról, például lemezekről, hálózati adapterekről, szolgáltatásokról vagy folyamatokról a meglévő WMI-osztályokkeresztül szerezhet be adatokat. A szabványos WMI-IPMI-szolgáltatóelérhető hardveradatokat is elérheti.

WMI-erőforrás azonosítása

A WMI-osztályokat erőforrásként hivatkozhat a WinRM-ben és a WS-Management protokollban: egy felügyelt entitástípusra, például szolgáltatásra vagy lemezre.

A WMI-osztályokat vagy metódusokat egy URI-azonosítja, ugyanúgy, mint bármely más erőforrás a WS-Management protokoll használatakor. Az URI megadhat egy WMI-erőforrást (osztályt), egy WMI-műveletet (metódust), vagy azonosíthatja az osztály egy adott példányát üzenetekben, hálózaton keresztül küldött üzenetekben. További információ: erőforrás-URI-k.

A WMI-osztályok URI-előtagjának létrehozása

Az URI-előtag rögzített részt és WMI-névteret tartalmaz. Például a Windows Server URI előtagja, amely tartalmazza az előtag rögzített részét, a következő: http://schemas.microsoft.com/wbem/wsman/1/wmi/<WmiNamespace>. Ez lehetővé teszi, hogy az URI-előtag bármilyen WMI-névtérhez létrejönjön. Például a root\alapértelmezett WMI-névtér eléréséhez használja a következő URI-előtagot: http://schemas.microsoft.com/wbem/wsman/1/wmi/root/default/.

A wmi-osztályok többsége a root\cimv2 névtérben található. Az osztályok és példányok root\cimv2 névtérben való eléréséhez használja a következő URI-előtagot: http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/. További információ: erőforrás-URI-k.

Teljes URI létrehozása WMI-osztályokhoz

Az Winrm parancssori eszközhöz vagy parancsfájlhoz megadott URI az előtagból és az erőforrás-specifikációból áll.

Az alábbi eljárás azt ismerteti, hogyan hozhat létre erőforrás-URI-t WMI-osztály lekéréséhez vagy számbavételi művelethez.

Egy WMI-osztály erőforrás-URI-jának létrehozása

  1. Kezdje a WS-Management protokollséma használatát jelző előtaggal.

    https://schemas.microsoft.com/wbem/wsman/1

    A WMI-osztályok erőforrás-URI előtagja mindig ugyanaz. További információ: URI-előtagok.

  2. Adja hozzá a WMI-névteret az előtaghoz.

    http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/

  3. Adja hozzá az osztály nevét.

    http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service

  4. Egy tulajdonság értékének beállításához vagy egy adott metódus meghívásához adja hozzá az osztályhoz szükséges kulcsértéket vagy értékeket.

    http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Winmgmt

    Ha üresen hagyja a kulcsértéket, az eredeti tulajdonságértéket nem fogja módosítani.

    Jegyzet

    Ha üresen hagyja a kulcsértéket, a tulajdonság értéke a NULL lesz.

     

WMI-erőforrás keresése a WinRM használatával

WMI-adatokat a parancssori eszközzel, a Winrm vagy a WinRM Scripting API-használó Visual Basic-szkripttel szerezhet be. Az erőforrás megkereséséhez nem használ WMI-elérési utat. Ehelyett átalakítja a WMI-névteret és a hierarchiát egy URI-.

A WMI-osztály WinRM URI-ja két részből áll: a URI előtagból és a elérni kívánt osztályból.

A következő URI például a Session.Enumerate metódushoz adható meg a számítógépen található összes szolgáltatás listázásához. Az URI előtag http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/, az osztály pedig Win32_Service.

strResourceUri = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_CurrentTime"

A WMI-ben egy erőforrás vagy osztály összes példányának adatait többféleképpen listázhatja:

  • Az erőforrás összes példányának lekérdezése.

    Set colServices = objWMIService.ExecQuery("Select * from Win32_Service")

  • Hívás SWbemServices.InstancesOf vagy SWbemObject.Instances_.

    Set colServices = InstancesOf("Win32_Service")

A WinRM-ben egy módon listázhatja az erőforrás összes példányát: Session.Enumerate.

strResource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service"
Set colServices = objSession.Enumerate( strResource )

WMI-erőforrás adott példányának keresése

A WMI-ben kijelölhet egy osztály egy adott példányát a kulcstulajdonságok értékeinek megadásával, vagy a tulajdonságértékek listájával egyező példány lekérdezésével. A kulcstulajdonságok wmi-kulcs-minősítőrendelkeznek.

Az osztály egy adott példányát többféleképpen is beszerezheti:

  • Hívás Session.Enumerate a szűrővel és nyelvjárási paraméterekkel lekérdezés létrehozásához.

    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)
    
  • Hívás SWbemServices.Get. Az Session.Getesetében meg kell adnia egy vagy több konkrét kulcsértéket, amelyet kérdőjel (?) előz meg.

    Egy adott példány URI formátuma 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"
    

    Egy WMI-osztály több kulccsal is rendelkezhet. A kulcsnév-érték párokat "+" jel választja el egymástól. Ebben az esetben a formátum a következő: http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Key1=Value1+Key2=Value2.

    Az egytonos WMI-objektumok lekérésére vonatkozó WinRM-szintaxis eltér a WMI-től. A singleton egy WMI-osztály, amely úgy van definiálva, hogy csak egy példány legyen engedélyezve. Win32_CurrentTime vagy Win32_WMISetting egy WMI-egyenrangú osztályra mutatnak be példákat.

    Az egytonos WMI-szintaxis az alábbi VBScript-kód példában látható.

    Set TimeObject = objWMIService.Get("Win32_CurrentTime=@")
    

    Az alábbi példa a WinRM singleton szintaxisát mutatja be, amely nem használja a "@" kifejezést.

    strResourceUri = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_CurrentTime"
    
  • -választó hozzáadása ResourceLocator vagy IWSManResourceLocator objektumhoz.

    Az alábbi VBScript-kód példája bemutatja, hogyan használhat választót a Win32_Processoregy adott példányának lekéréséhez.

    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"
    

A Windows távfelügyeleti

URI-előtagok

erőforrás-URI-k

szkriptelés a Windows távfelügyeleti