Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tato ukázka platí jenom pro platformy Windows.
Rozhraní WMI (Windows Management Instrumentation) je základní technologií pro správu systému Windows, protože zpřístupňuje širokou škálu informací jednotným způsobem. Vzhledem k tomu, kolik WMI umožňuje, je rutina PowerShellu pro přístup k objektům Get-CimInstance
WMI jednou z nejužitečnějších pro skutečnou práci. Probereme, jak používat rutiny CIM pro přístup k objektům rozhraní WMI a jak pomocí objektů WMI provádět konkrétní věci.
Seznam tříd WMI
Prvním problémem, kterým čelí většina uživatelů rozhraní WMI, se snaží zjistit, co se dá s rozhraním WMI udělat. Třídy rozhraní WMI popisují prostředky, které je možné spravovat. Existují stovky tříd WMI, z nichž některé obsahují desítky vlastností.
Get-CimClass
řeší tento problém tím, že umožňuje rozhraní WMI být viditelným. Seznam tříd služby WMI, které jsou k dispozici v místním počítači, můžete získat zadáním:
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
...
Stejné informace můžete načíst ze vzdáleného počítače pomocí parametru ComputerName a zadat název počítače nebo IP adresu:
Get-CimClass -Namespace root/CIMV2 -ComputerName 192.168.1.29
Výpis tříd vrácený vzdálenými počítači se může lišit v důsledku konkrétního operačního systému, na kterém je počítač spuštěný, a nainstalované aplikace přidají konkrétní rozšíření rozhraní WMI.
Poznámka:
Při použití rutin CIM pro připojení ke vzdálenému počítači musí být vzdálený počítač spuštěný pomocí rozhraní WMI a účet, který používáte, musí být ve skupině místních správců na vzdáleném počítači. Vzdálený systém nemusí mít nainstalovaný PowerShell. To vám umožní spravovat operační systémy, které nepoužívají PowerShell, ale mají k dispozici rozhraní WMI.
Zobrazení podrobností třídy WMI
Pokud už znáte název třídy WMI, můžete ho použít k okamžitému získání informací. Například jedna z tříd rozhraní WMI, která se běžně používá pro načítání informací o počítači, je 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
I když zobrazujeme všechny parametry, příkaz se dá vyjádřit stručnějším způsobem.
Parametr ComputerName není nutný při připojování k místnímu systému. Ukážeme vám, abychom ukázali nejobecnější případ a připomněli vám parametr.
Obor názvů má výchozí hodnotu root/CIMV2 a lze ho také vynechat. Většina rutin nakonec umožňuje vynechat název běžných parametrů. Pokud Get-CimInstance
není pro první parametr zadán žádný název, PowerShell ho považuje za parametr Class . To znamená, že poslední příkaz mohl být vydán zadáním:
Get-CimInstance Win32_OperatingSystem
Třída Win32_OperatingSystem má mnohem více vlastností, než jsou zde zobrazené. Pomocí Get-Member můžete zobrazit všechny vlastnosti. Vlastnosti třídy WMI jsou automaticky dostupné, jako jsou jiné vlastnosti objektu:
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;}
...
Zobrazení jiných než výchozích vlastností pomocí rutin Format
Pokud chcete zobrazit informace obsažené ve třídě Win32_OperatingSystem, které se ve výchozím nastavení nezobrazují, můžete je zobrazit pomocí rutin Format. Pokud například chcete zobrazit dostupná data paměti, zadejte:
Get-CimInstance -Class Win32_OperatingSystem | Format-Table -Property TotalVirtualMemorySize, TotalVisibleMemorySize, FreePhysicalMemory, FreeVirtualMemory, FreeSpaceInPagingFiles
TotalVirtualMemorySize TotalVisibleMemorySize FreePhysicalMemory FreeVirtualMemory FreeSpaceInPagingFiles
---------------------- ---------------------- ------------------ ----------------- ----------------------
41787920 16622096 9537952 33071884 25056628
Poznámka:
Zástupné znaky pracují s názvy vlastností v Format-Table
, takže konečný prvek potrubí lze snížit na Format-Table -Property Total*Memory*, Free*
Data paměti můžou být čitelnější, pokud je naformátujete jako seznam zadáním:
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