Shromažďování informací o počítačích
Tato ukázka platí jenom pro platformy Windows.
Rutiny z modulu CimCmdlets jsou nejdůležitějšími rutinami pro obecné úlohy správy systému. Všechna důležitá nastavení subsystému jsou přístupná prostřednictvím rozhraní WMI. Rozhraní WMI navíc zpracovává data jako objekty, které jsou v kolekcích jedné nebo více položek. Vzhledem k tomu, že PowerShell pracuje s objekty a má kanál, který umožňuje pracovat s jedním nebo více objekty stejným způsobem, obecný přístup WMI umožňuje provádět některé pokročilé úlohy s velmi malou prací.
Výpis nastavení plochy
Začneme příkazem, který shromažďuje informace o plochách na místním počítači.
Get-CimInstance -ClassName Win32_Desktop
Vrátí informace pro všechny desktopy, ať už se používají, nebo ne.
Poznámka:
Informace vrácené některými třídami rozhraní WMI mohou být velmi podrobné a často obsahují metadata o třídě služby WMI.
Vzhledem k tomu, že většina těchto vlastností metadat má názvy začínající cim, můžete filtrovat vlastnosti pomocí Select-Object
. Jako hodnotu zadejte parametr -ExcludeProperty s parametrem Cim*. Příklad:
Get-CimInstance -ClassName Win32_Desktop | Select-Object -ExcludeProperty "CIM*"
Pokud chcete vyfiltrovat metadata, použijte operátor kanálu (|) k odeslání výsledků Get-CimInstance
příkazu do Select-Object -ExcludeProperty "CIM*"
.
Výpis informací o systému BIOS
Třída služby WMI Win32_BIOS vrací poměrně kompaktní a úplné informace o systému BIOS v místním počítači:
Get-CimInstance -ClassName Win32_BIOS
Výpis informací o procesoru
Obecné informace o procesoru můžete načíst pomocí třídy Win32_Processor WMI, i když budete pravděpodobně chtít informace filtrovat:
Get-CimInstance -ClassName Win32_Processor | Select-Object -ExcludeProperty "CIM*"
Pro obecný popis řetězec řady procesorů můžete vrátit pouze vlastnost SystemType :
Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -Property SystemType
SystemType
----------
X86-based PC
Výpis výrobce a modelu počítače
Informace o počítačovém modelu jsou k dispozici také v Win32_ComputerSystem. Standardní zobrazený výstup nebude k poskytování dat OEM potřebovat žádné filtrování:
Get-CimInstance -ClassName Win32_ComputerSystem
Name PrimaryOwnerName Domain TotalPhysicalMemory Model Manufacturer
---- ---------------- ------ ------------------- ----- ------------
MyPC Jane Doe WORKGROUP 804765696 DA243A-ABA 6415cl NA910 Compaq Presario 06
Výstup z příkazů, jako je tento, který vrací informace přímo z některého hardwaru, je stejně dobrý jako data, která máte. Některé informace nejsou správně nakonfigurované výrobci hardwaru a můžou být proto nedostupné.
Výpis nainstalovaných oprav hotfix
Všechny nainstalované opravy hotfix můžete zobrazit pomocí Win32_QuickFixEngineering:
Get-CimInstance -ClassName Win32_QuickFixEngineering
Tato třída vrátí seznam oprav hotfix, které vypadají takto:
Source Description HotFixID InstalledBy InstalledOn PSComputerName
------ ----------- -------- ----------- ----------- --------------
Security Update KB4048951 Administrator 12/16/2017 .
Pokud chcete výstižnější výstup, můžete některé vlastnosti vyloučit. I když můžete použít Get-CimInstance
parametr Vlastnost 's zvolit pouze HotFixID, tím se ve skutečnosti vrátí další informace, protože všechna metadata se ve výchozím nastavení zobrazují:
Get-CimInstance -ClassName Win32_QuickFixEngineering -Property HotFixID
InstalledOn :
Caption :
Description :
InstallDate :
Name :
Status :
CSName :
FixComments :
HotFixID : KB4533002
InstalledBy :
ServicePackInEffect :
PSComputerName :
CimClass : root/cimv2:Win32_QuickFixEngineering
CimInstanceProperties : {Caption, Description, InstallDate, Name…}
CimSystemProperties : Microsoft.Management.Infrastructure.CimSystemProperties
...
Vrátí se další data, protože parametr Property omezuje Get-CimInstance
vlastnosti vrácené z instancí třídy WMI, nikoli objekt vrácený do PowerShellu. Pokud chcete snížit výstup, použijte Select-Object
:
Get-CimInstance -ClassName Win32_QuickFixEngineering -Property HotFixId |
Select-Object -Property HotFixId
HotFixId
--------
KB4048951
Výpis informací o verzi operačního systému
Vlastnosti třídy Win32_OperatingSystem zahrnují informace o verzi a aktualizaci Service Pack. Pokud chcete získat souhrn informací o verzi z Win32_OperatingSystem, můžete explicitně vybrat pouze tyto vlastnosti:
Get-CimInstance -ClassName Win32_OperatingSystem |
Select-Object -Property BuildNumber,BuildType,OSType,ServicePackMajorVersion,ServicePackMinorVersion
S parametrem Property můžete také použít zástupné cardy. Vzhledem k tomu, že zde jsou důležité všechny vlastnosti začínající sestavením nebo balíčkem ServicePack, můžeme tuto možnost zkrátit na následující formulář:
Get-CimInstance -ClassName Win32_OperatingSystem |
Select-Object -Property Build*,OSType,ServicePack*
BuildNumber : 18362
BuildType : Multiprocessor Free
OSType : 18
ServicePackMajorVersion : 0
ServicePackMinorVersion : 0
Výpis místních uživatelů a vlastníka
Obecné informace o místních uživatelích najdete s výběrem Win32_OperatingSystem vlastností třídy. Můžete explicitně vybrat vlastnosti, které se mají zobrazit takto:
Get-CimInstance -ClassName Win32_OperatingSystem |
Select-Object -Property NumberOfLicensedUsers, NumberOfUsers, RegisteredUser
Stručnější verze s využitím zástupných znaků je:
Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object -Property *user*
Získání dostupného místa na disku
Pokud chcete zobrazit místo na disku a volné místo pro místní jednotky, můžete použít třídu Win32_LogicalDisk . Potřebujete zobrazit pouze instance s typem jednotky 3, přičemž hodnota WMI se používá pro pevné pevné disky.
Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3"
DeviceID DriveType ProviderName VolumeName Size FreeSpace PSComputerName
-------- --------- ------------ ---------- ---- --------- --------------
C: 3 Local Disk 203912880128 65541357568 .
Q: 3 New Volume 122934034432 44298250240 .
Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" |
Measure-Object -Property FreeSpace,Size -Sum |
Select-Object -Property Property,Sum
Property Sum
-------- ---
FreeSpace 109839607808
Size 326846914560
Získáníinformacích
Obecné informace o přihlašovacích relacích přidružených uživatelům můžete získat prostřednictvím třídy služby WMI Win32_LogonSession :
Get-CimInstance -ClassName Win32_LogonSession
Přihlášení uživatele k počítači
Uživatele přihlášeného k určitému počítači můžete zobrazit pomocí Win32_ComputerSystem. Tento příkaz vrátí pouze uživatele přihlášeného k systémové ploše:
Get-CimInstance -ClassName Win32_ComputerSystem -Property UserName
Získání místního času z počítače
Aktuální místní čas můžete načíst v určitém počítači pomocí třídy Win32_LocalTime WMI.
Get-CimInstance -ClassName Win32_LocalTime
Day : 23
DayOfWeek : 1
Hour : 8
Milliseconds :
Minute : 52
Month : 12
Quarter : 4
Second : 55
WeekInMonth : 4
Year : 2019
PSComputerName :
Zobrazení stavu služby
Pokud chcete zobrazit stav všech služeb na konkrétním počítači, můžete tuto rutinu Get-Service
použít místně. Pro vzdálené systémy můžete použít třídu služby WMI Win32_Service . Pokud také používáte Select-Object
k filtrování výsledků na Stav, Název a DisplayName, výstupní formát je téměř stejný jako z Get-Service
:
Get-CimInstance -ClassName Win32_Service |
Select-Object -Property Status,Name,DisplayName
Chcete-li povolit úplné zobrazení názvů pro služby s dlouhými názvy, použijte parametry AutoSize a Wrap parametru Format-Table
. Tyto parametry optimalizují šířku sloupce a umožňují zalomit dlouhé názvy místo zkrácení:
Get-CimInstance -ClassName Win32_Service |
Format-Table -Property Status, Name, DisplayName -AutoSize -Wrap