Zbieranie informacji dotyczących komputerów
Ten przykład dotyczy tylko platform systemu Windows.
Polecenia cmdlet z modułu CimCmdlets to najważniejsze polecenia cmdlet dla ogólnych zadań zarządzania systemem. Wszystkie ustawienia podsystemu krytycznego są udostępniane za pośrednictwem usługi WMI. Ponadto usługa WMI traktuje dane jako obiekty, które znajdują się w kolekcjach co najmniej jednego elementu. Ponieważ program PowerShell współpracuje również z obiektami i ma potok, który umożliwia traktowanie pojedynczych lub wielu obiektów w taki sam sposób, ogólny dostęp do usługi WMI umożliwia wykonywanie niektórych zaawansowanych zadań z bardzo małą ilością pracy.
Wyświetlanie listy ustawień pulpitu
Zaczniemy od polecenia, które zbiera informacje o komputerach stacjonarnych na komputerze lokalnym.
Get-CimInstance -ClassName Win32_Desktop
Spowoduje to zwrócenie informacji dla wszystkich komputerów stacjonarnych, niezależnie od tego, czy są one używane, czy nie.
Uwaga
Informacje zwracane przez niektóre klasy WMI mogą być bardzo szczegółowe i często zawierają metadane dotyczące klasy WMI.
Ponieważ większość tych właściwości metadanych ma nazwy rozpoczynające się od modelu Cim, można filtrować właściwości przy użyciu polecenia Select-Object
. Określ parametr -ExcludeProperty z wartością "Cim*". Na przykład:
Get-CimInstance -ClassName Win32_Desktop | Select-Object -ExcludeProperty "CIM*"
Aby odfiltrować metadane, użyj operatora potoku (|), aby wysłać wyniki Get-CimInstance
polecenia do Select-Object -ExcludeProperty "CIM*"
.
Wyświetlanie informacji o systemie BIOS
Klasa WMI Win32_BIOS zwraca dość kompaktowe i kompletne informacje o systemie BIOS na komputerze lokalnym:
Get-CimInstance -ClassName Win32_BIOS
Wyświetlanie informacji o procesorze
Ogólne informacje o procesorze można pobrać przy użyciu klasy Win32_Processor usługi WMI, chociaż prawdopodobnie chcesz filtrować informacje:
Get-CimInstance -ClassName Win32_Processor | Select-Object -ExcludeProperty "CIM*"
W przypadku ogólnego ciągu opisu rodziny procesorów można po prostu zwrócić właściwość SystemType :
Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -Property SystemType
SystemType
----------
X86-based PC
Wyświetlanie listy producentów i modeli komputerów
Informacje o modelu komputera są również dostępne w Win32_ComputerSystem. Standardowe wyświetlane dane wyjściowe nie będą wymagały żadnego filtrowania w celu zapewnienia danych producenta OEM:
Get-CimInstance -ClassName Win32_ComputerSystem
Name PrimaryOwnerName Domain TotalPhysicalMemory Model Manufacturer
---- ---------------- ------ ------------------- ----- ------------
MyPC Jane Doe WORKGROUP 804765696 DA243A-ABA 6415cl NA910 Compaq Presario 06
Dane wyjściowe z poleceń takich jak te, które zwracają informacje bezpośrednio z niektórych sprzętu, są tak dobre, jak posiadane dane. Niektóre informacje nie są poprawnie skonfigurowane przez producentów sprzętu i dlatego mogą być niedostępne.
Wyświetlanie listy zainstalowanych poprawek
Listę wszystkich zainstalowanych poprawek można wyświetlić przy użyciu Win32_QuickFixEngineering:
Get-CimInstance -ClassName Win32_QuickFixEngineering
Ta klasa zwraca listę poprawek, które wyglądają następująco:
Source Description HotFixID InstalledBy InstalledOn PSComputerName
------ ----------- -------- ----------- ----------- --------------
Security Update KB4048951 Administrator 12/16/2017 .
Aby uzyskać bardziej zwięzłe dane wyjściowe, możesz wykluczyć niektóre właściwości. Mimo że można użyć parametru Właściwości parametru Get-CimInstance
, aby wybrać tylko parametr HotFixID, spowoduje to zwrócenie większej ilości informacji, ponieważ wszystkie metadane są wyświetlane domyślnie:
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
...
Zwracane są dodatkowe dane, ponieważ parametr Property w parametrze Get-CimInstance
ogranicza właściwości zwracane z wystąpień klas WMI, a nie obiektu zwróconego do programu PowerShell. Aby zmniejszyć dane wyjściowe, użyj polecenia Select-Object
:
Get-CimInstance -ClassName Win32_QuickFixEngineering -Property HotFixId |
Select-Object -Property HotFixId
HotFixId
--------
KB4048951
Wyświetlanie informacji o wersji systemu operacyjnego
Właściwości klasy Win32_OperatingSystem obejmują informacje o wersji i dodatku Service Pack. Możesz jawnie wybrać tylko te właściwości, aby uzyskać podsumowanie informacji o wersji z Win32_OperatingSystem:
Get-CimInstance -ClassName Win32_OperatingSystem |
Select-Object -Property BuildNumber,BuildType,OSType,ServicePackMajorVersion,ServicePackMinorVersion
Można również użyć symboli wieloznacznych z parametrem Property . Ponieważ wszystkie właściwości rozpoczynające się od kompilacji lub pakietu ServicePack są ważne w tym miejscu, możemy skrócić go do następującego formularza:
Get-CimInstance -ClassName Win32_OperatingSystem |
Select-Object -Property Build*,OSType,ServicePack*
BuildNumber : 18362
BuildType : Multiprocessor Free
OSType : 18
ServicePackMajorVersion : 0
ServicePackMinorVersion : 0
Wyświetlanie listy lokalnych użytkowników i właściciela
Ogólne informacje o użytkownikach lokalnych można znaleźć z wyborem właściwości Win32_OperatingSystem klasy. Możesz jawnie wybrać właściwości, które mają być wyświetlane w następujący sposób:
Get-CimInstance -ClassName Win32_OperatingSystem |
Select-Object -Property NumberOfLicensedUsers, NumberOfUsers, RegisteredUser
Bardziej zwięzła wersja używająca symboli wieloznacznych to:
Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object -Property *user*
Uzyskiwanie dostępnego miejsca na dysku
Aby wyświetlić miejsce na dysku i wolne miejsce dla dysków lokalnych, możesz użyć klasy Win32_LogicalDisk . Musisz zobaczyć tylko wystąpienia z wartością DriveType 3. Wartość WMI jest używana dla stałych dysków twardych.
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
Uzyskiwanie informacji o sesji logowania
Ogólne informacje o sesjach logowania skojarzonych z użytkownikami można uzyskać za pośrednictwem klasy Win32_LogonSession WMI:
Get-CimInstance -ClassName Win32_LogonSession
Logowanie użytkownika na komputerze
Możesz wyświetlić zalogowanego użytkownika do określonego systemu komputerowego przy użyciu Win32_ComputerSystem. To polecenie zwraca tylko użytkownika zalogowanego na pulpicie systemowym:
Get-CimInstance -ClassName Win32_ComputerSystem -Property UserName
Pobieranie czasu lokalnego z komputera
Bieżący czas lokalny można pobrać na określonym komputerze przy użyciu klasy 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 :
Wyświetlanie stanu usługi
Aby wyświetlić stan wszystkich usług na określonym komputerze, możesz użyć polecenia cmdlet lokalnego Get-Service
. W przypadku systemów zdalnych można użyć klasy Win32_Service WMI. Jeśli używasz Select-Object
również do filtrowania wyników na Status, Name i DisplayName, format danych wyjściowych jest prawie identyczny z tym z :Get-Service
Get-CimInstance -ClassName Win32_Service |
Select-Object -Property Status,Name,DisplayName
Aby zezwolić na pełne wyświetlanie nazw usług z długimi nazwami, użyj parametrów AutoSize i Wrap .Format-Table
Te parametry optymalizują szerokość kolumny i umożliwiają zawijanie długich nazw zamiast obcinania:
Get-CimInstance -ClassName Win32_Service |
Format-Table -Property Status, Name, DisplayName -AutoSize -Wrap