Zbieranie informacji dotyczących komputerów

Polecenia cmdlet z modułu CimCmdlets to najważniejsze polecenia cmdlet dla ogólnych zadań zarządzania systemem. Wszystkie krytyczne ustawienia podsystemu 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ż Windows PowerShell również współpracuje z obiektami i ma potok, który umożliwia traktowanie pojedynczych lub wielu obiektów w taki sam sposób, ogólny dostęp 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 zechcesz filtrować informacje:

Get-CimInstance -ClassName Win32_Processor | Select-Object -ExcludeProperty "CIM*"

Aby uzyskać ogólny ciąg opisu rodziny procesorów, wystarczy zwrócić właściwość SystemType :

Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -Property SystemType

SystemType
----------
X86-based PC

Wyświetlanie listy producent i model komputera

Informacje o modelu komputerów 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 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ą tylko 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  .

W przypadku bardziej zwięzłych danych wyjściowych 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 wartość HotFixID, spowoduje to zwrócenie większej ilości informacji, ponieważ wszystkie metadane są domyślnie wyświetlane:

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 Get-CimInstance programie ogranicza właściwości zwracane z wystąpień klas WMI, a nie obiekt zwracany 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 parametremSelect-Objectwłaściwość 's. 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 użytkowników lokalnych i właściciela

Lokalne ogólne informacje o użytkowniku — liczba licencjonowanych użytkowników, bieżąca liczba użytkowników i nazwa właściciela — można znaleźć z wyborem właściwości klasy Win32_OperatingSystem . Możesz jawnie wybrać właściwości do wyświetlenia w następujący sposób:

Get-CimInstance -ClassName Win32_OperatingSystem |
  Select-Object -Property NumberOfLicensedUsers,NumberOfUsers,RegisteredUser

Bardziej zwięzłą wersją z użyciem symboli wieloznacznych jest:

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 WMI. Musisz wyświetlić tylko wystąpienia z wartością DriveType 3 — wartość używana przez usługę WMI 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

Pobieranie zalogowanego użytkownika na komputerze

Można wyświetlić użytkownika zalogowanego 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 lokalnie użyć Get-Service polecenia cmdlet . 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 Stan, Nazwa i DisplayName, format danych wyjściowych będzie 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 dla okazjonalnych usług z bardzo długimi nazwami, możesz użyć parametrów Format-TableAutoSize i Wrap , aby zoptymalizować szerokość kolumny i zezwolić na zawijanie długich nazw zamiast obcinania:

Get-CimInstance -ClassName Win32_Service |
    Format-Table -Property Status,Name,DisplayName -AutoSize -Wrap