WMI-objektumok lekérése a Get-CimInstance használatával
Ez a minta csak Windows-platformokra vonatkozik.
A Windows Management Instrumentation (WMI) a Windows rendszerfelügyeletének alapvető technológiája, mivel egységes módon teszi elérhetővé az információk széles skáláját. A WMI-objektumok elérésére szolgáló PowerShell-parancsmag a WMI-objektumok Get-CimInstance
elérésének köszönhetően az egyik legkedvesebb a tényleges munka elvégzéséhez. Bemutatjuk, hogyan használhatja a CIM-parancsmagokat a WMI-objektumok eléréséhez, majd hogyan használhat WMI-objektumokat bizonyos műveletek végrehajtásához.
WMI-osztályok listázása
A LEGTÖBB WMI-felhasználó első problémája az, hogy megpróbálja kideríteni, mit lehet tenni a WMI-vel. A WMI-osztályok a felügyelhető erőforrásokat írják le. Több száz WMI-osztály létezik, amelyek közül néhány több tucat tulajdonságot tartalmaz.
Get-CimClass
a WMI felderíthetővé tételével oldja meg ezt a problémát. A helyi számítógépen elérhető WMI-osztályok listáját a következő beírással szerezheti be:
Get-CimClass -Namespace root/CIMV2 |
Where-Object CimClassName -like Win32* |
Select-Object CimClassName
CimClassName
------------
Win32_DeviceChangeEvent
Win32_SystemConfigurationChangeEvent
Win32_VolumeChangeEvent
Win32_SystemTrace
Win32_ProcessTrace
Win32_ProcessStartTrace
Win32_ProcessStopTrace
Win32_ThreadTrace
Win32_ThreadStartTrace
Win32_ThreadStopTrace
...
Ugyanezeket az adatokat lekérheti egy távoli számítógépről a ComputerName paraméterrel, megadva a számítógép nevét vagy IP-címét:
Get-CimClass -Namespace root/CIMV2 -ComputerName 192.168.1.29
A távoli számítógépek által visszaadott osztálylista az adott operációs rendszertől függően változhat, és a telepített alkalmazások hozzáadják az adott WMI-bővítményeket.
Feljegyzés
Ha CIM-parancsmagokat használ egy távoli számítógéphez való csatlakozáshoz, a távoli számítógépnek WMI-t kell futtatnia, és a használt fióknak a távoli számítógép helyi Rendszergazda istrators csoportjában kell lennie. A távoli rendszernek nem kell telepítenie a PowerShellt. Ez lehetővé teszi a nem PowerShellt futtató operációs rendszerek felügyeletét, de rendelkezik WMI-val.
WMI-osztály részleteinek megjelenítése
Ha már ismeri egy WMI-osztály nevét, azonnal lekérheti az adatokat. A számítógép adatainak lekéréséhez gyakran használt WMI-osztályok egyike például Win32_OperatingSystem.
Get-CimInstance -Class Win32_OperatingSystem
SystemDirectory Organization BuildNumber RegisteredUser SerialNumber Version
--------------- ------------ ----------- -------------- ------------ -------
C:\WINDOWS\system32 Microsoft 22621 USER1 00330-80000-00000-AA175 10.0.22621
Bár az összes paramétert megjelenítjük, a parancs tömörebb módon is kifejezhető.
A ComputerName paraméter nem szükséges a helyi rendszerhez való csatlakozáskor. Bemutatjuk a legáltatásosabb esetet, és emlékeztetjük a paraméterre. A névtér alapértelmezés szerint a következő, root/CIMV2
és kihagyható is. Végül a legtöbb parancsmag lehetővé teszi, hogy kihagyja a gyakori paraméterek nevét. Ha Get-CimInstance
nincs megadva név az első paraméterhez, a PowerShell osztályparaméterként kezeli. Ez azt jelenti, hogy az utolsó parancsot a következő beírással lehetett volna kiadni:
Get-CimInstance Win32_OperatingSystem
A Win32_OperatingSystem osztály sokkal több tulajdonsággal rendelkezik, mint az itt láthatóak. A Get-Member használatával megtekintheti az összes tulajdonságot. A WMI-osztály tulajdonságai automatikusan elérhetők, mint más objektumtulajdonságok:
Get-CimInstance -Class Win32_OperatingSystem | Get-Member -MemberType Property
TypeName: Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_OperatingSystem
Name MemberType Definition
---- ---------- ----------
BootDevice Property string BootDevice {get;}
BuildNumber Property string BuildNumber {get;}
BuildType Property string BuildType {get;}
Caption Property string Caption {get;}
CodeSet Property string CodeSet {get;}
CountryCode Property string CountryCode {get;}
CreationClassName Property string CreationClassName {get;}
CSCreationClassName Property string CSCreationClassName {get;}
CSDVersion Property string CSDVersion {get;}
CSName Property string CSName {get;}
CurrentTimeZone Property int16 CurrentTimeZone {get;}
DataExecutionPrevention_32BitApplications Property bool DataExecutionPrevention_32BitApplications {get;}
DataExecutionPrevention_Available Property bool DataExecutionPrevention_Available {get;}
...
Nem alapértelmezett tulajdonságok megjelenítése Formátum parancsmagokkal
Ha azt szeretné, hogy a Win32_OperatingSystem osztály alapértelmezés szerint ne jelenjen meg, a Formátum parancsmagok használatával megjelenítheti azokat. Ha például a rendelkezésre álló memóriaadatokat szeretné megjeleníteni, írja be a következőt:
Get-CimInstance -Class Win32_OperatingSystem | Format-Table -Property TotalVirtualMemorySize, TotalVisibleMemorySize, FreePhysicalMemory, FreeVirtualMemory, FreeSpaceInPagingFiles
TotalVirtualMemorySize TotalVisibleMemorySize FreePhysicalMemory FreeVirtualMemory FreeSpaceInPagingFiles
---------------------- ---------------------- ------------------ ----------------- ----------------------
41787920 16622096 9537952 33071884 25056628
Feljegyzés
A helyettesítő karakterek tulajdonságnevekkel működnek, Format-Table
így a végső folyamatelem a következőre csökkenthető: Format-Table -Property Total*Memory*, Free*
A memóriaadatok olvashatóbbak lehetnek, ha listaként formázza a következő beírással:
Get-CimInstance -Class Win32_OperatingSystem | Format-List Total*Memory*, Free*
TotalVirtualMemorySize : 41787920
TotalVisibleMemorySize : 16622096
FreePhysicalMemory : 9365296
FreeSpaceInPagingFiles : 25042952
FreeVirtualMemory : 33013484
Name : Microsoft Windows 11 Pro|C:\Windows|\Device\Harddisk0\Partition2
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: