Samla in information om datorer

Cmdlets från CimCmdlets-modulen är de viktigaste cmdletarna för allmänna systemhanteringsuppgifter. Alla kritiska undersystemsinställningar exponeras via WMI. Dessutom behandlar WMI data som objekt som finns i samlingar med ett eller flera objekt. Eftersom Windows PowerShell också fungerar med objekt och har en pipeline som gör att du kan hantera enskilda eller flera objekt på samma sätt, kan du med allmän WMI-åtkomst utföra vissa avancerade uppgifter med mycket lite arbete.

Visa en lista över Inställningar

Vi börjar med ett kommando som samlar in information om stationära datorer på den lokala datorn.

Get-CimInstance -ClassName Win32_Desktop

Detta returnerar information för alla stationära datorer, oavsett om de används eller inte.

Anteckning

Information som returneras av vissa WMI-klasser kan vara mycket detaljerad och innehåller ofta metadata om WMI-klassen.

Eftersom de flesta av dessa metadataegenskaper har namn som börjar med Cim kan du filtrera egenskaperna med hjälp av Select-Object . Ange parametern -ExcludeProperty med "Cim*" som värde. Exempel:

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

Om du vill filtrera bort metadata använder du en pipelineoperator (|) för att skicka resultatet av Get-CimInstance kommandot till Select-Object -ExcludeProperty "CIM*" .

Lista BIOS-information

WMI-Win32_BIOS returnerar ganska kompakt och fullständig information om systemets BIOS på den lokala datorn:

Get-CimInstance -ClassName Win32_BIOS

Visa information om processor

Du kan hämta allmän processorinformation med hjälp av WMI:s Win32_Processor, men du vill förmodligen filtrera informationen:

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

Om du vill ha en allmän beskrivningssträng för processorfamiljen behöver du bara returnera egenskapen SystemType:

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

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

Lista datortillverkare och modell

Information om datormodeller är också tillgängligt från Win32_ComputerSystem. Standardutdata som visas behöver ingen filtrering för att tillhandahålla OEM-data:

Get-CimInstance -ClassName Win32_ComputerSystem
Name PrimaryOwnerName Domain    TotalPhysicalMemory Model                   Manufacturer
---- ---------------- ------    ------------------- -----                   ------------
MyPC Jane Doe         WORKGROUP 804765696           DA243A-ABA 6415cl NA910 Compaq Presario 06

Dina utdata från kommandon som detta, som returnerar information direkt från viss maskinvara, är bara lika bra som de data du har. Viss information är inte korrekt konfigurerad av maskinvarutillverkare och kan därför vara otillgänglig.

Visa en lista över installerade snabbkorrigeringar

Du kan lista alla installerade snabbkorrigeringar med hjälp av Win32_QuickFixEngineering:

Get-CimInstance -ClassName Win32_QuickFixEngineering

Den här klassen returnerar en lista över snabbkorrigeringar som ser ut så här:

Source Description     HotFixID  InstalledBy   InstalledOn PSComputerName
------ -----------     --------  -----------   ----------- --------------
       Security Update KB4048951 Administrator 12/16/2017  .

Om du vill ha mer kortfattade utdata kanske du vill undanta vissa egenskaper. Även om du kan använda egenskapsparametern för att välja endast Get-CimInstance HotFixID returnerar detta faktiskt mer information, eftersom alla metadata visas som standard:

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
...

Ytterligare data returneras eftersom egenskapsparametern i begränsar de egenskaper som returneras från WMI-klassinstanser, inte objektet Get-CimInstance som returneras till PowerShell. Om du vill minska utdata använder du Select-Object :

Get-CimInstance -ClassName Win32_QuickFixEngineering -Property HotFixId |
    Select-Object -Property HotFixId
HotFixId
--------
KB4048951

Visa information om operativsystemversion

Klassegenskaperna Win32_OperatingSystem version och service pack information. Du kan uttryckligen välja endast dessa egenskaper för att få en sammanfattning av versionsinformation från Win32_OperatingSystem:

Get-CimInstance -ClassName Win32_OperatingSystem |
  Select-Object -Property BuildNumber,BuildType,OSType,ServicePackMajorVersion,ServicePackMinorVersion

Du kan också använda jokertecken med Select-Object parametern egenskap. Eftersom alla egenskaper som börjar med Build eller ServicePack är viktiga att använda här kan vi förkorta detta till följande format:

Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object -Property Build*,OSType,ServicePack*
BuildNumber             : 18362
BuildType               : Multiprocessor Free
OSType                  : 18
ServicePackMajorVersion : 0
ServicePackMinorVersion : 0

Lista lokala användare och ägare

Lokal allmän användarinformation – antal licensierade användare, aktuellt antal användare och ägarnamn – finns med ett urval av Win32_OperatingSystem klassegenskaper. Du kan uttryckligen välja de egenskaper som ska visas så här:

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

En mer kortfattad version med jokertecken är:

Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object -Property *user*

Hämta tillgängligt diskutrymme

Om du vill se diskutrymme och ledigt utrymme för lokala enheter kan du använda Win32_LogicalDisk WMI-klass. Du behöver bara se instanser med DriveType 3 – värdet som WMI använder för fasta hårddiskar.

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

Hämta information om inloggningssession

Du kan få allmän information om inloggningssessioner som är associerade med användare via Win32_LogonSession WMI-klass:

Get-CimInstance -ClassName Win32_LogonSession

Få användaren inloggad på en dator

Du kan visa användaren som är inloggad på ett visst datorsystem med hjälp av Win32_ComputerSystem. Det här kommandot returnerar endast användaren som är inloggad på systemdatorn:

Get-CimInstance -ClassName Win32_ComputerSystem -Property UserName

Hämta lokal tid från en dator

Du kan hämta aktuell lokal tid på en specifik dator med hjälp av Win32_LocalTime WMI-klass.

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 :

Visa tjänststatus

Om du vill visa status för alla tjänster på en specifik dator kan du använda Get-Service cmdleten lokalt. För fjärrsystem kan du använda Win32_Service WMI-klass. Om du även använder för att filtrera resultaten till Select-Object Status, Name och DisplayName är utdataformatet nästan identiskt med det från Get-Service :

Get-CimInstance -ClassName Win32_Service |
    Select-Object -Property Status,Name,DisplayName

Om du vill tillåta fullständig visning av namn för tillfälliga tjänster med mycket långa namn kanske du vill använda med parametrarna Format-Table AutoSize och Wrap för att optimera kolumnbredden och tillåta långa namn att omsluta i stället för att trunkeras:

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