Dela via


Samla in information om datorer

Det här exemplet gäller endast för Windows-plattformar.

Cmdletar från CimCmdlets-modulen är de viktigaste cmdletarna för allmänna systemhanteringsuppgifter. Alla viktiga undersysteminställningar exponeras via WMI. Dessutom behandlar WMI data som objekt som finns i samlingar av ett eller flera objekt. Eftersom PowerShell också fungerar med objekt och har en pipeline som gör att du kan behandla 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 skrivbordsinställningar

Vi börjar med ett kommando som samlar in information om skrivborden på den lokala datorn.

Get-CimInstance -ClassName Win32_Desktop

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

Kommentar

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 .Select-Object Ange parametern -ExcludeProperty med "Cim*" som värde. Till 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

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

Get-CimInstance -ClassName Win32_BIOS

Lista processorinformation

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

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

För en allmän beskrivningssträng i processorfamiljen kan 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änglig 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 visa alla installerade snabbkorrigeringar med hjälp av Win32_QuickFixEngineering:

Get-CimInstance -ClassName Win32_QuickFixEngineering

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

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

För mer kortfattade utdata kanske du vill exkludera vissa egenskaper. Även om du kan använda Get-CimInstanceegenskapsparametern för att bara välja 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 Get-CimInstance begränsar de egenskaper som returneras från WMI-klassinstanser, inte objektet 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

De Win32_OperatingSystem klassegenskaperna innehåller information om version och Service Pack. Du kan uttryckligen bara välja dessa egenskaper för att hämta 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 parametern Egenskap . Eftersom alla egenskaper som börjar med antingen Build eller ServicePack är viktiga att använda här kan vi förkorta detta till följande formulär:

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

Allmän information om lokala användare finns med ett urval av Win32_OperatingSystem klassegenskaper. Du kan uttryckligen välja vilka 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 klassen Win32_LogicalDisk . Du behöver bara se instanser med en DriveType på 3, värdet 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 inloggningssessioner

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 den användare som är inloggad på systemskrivbordet:

Get-CimInstance -ClassName Win32_ComputerSystem -Property UserName

Hämta lokal tid från en dator

Du kan hämta den aktuella lokala tiden på en viss dator med hjälp av WMI-klassen Win32_LocalTime .

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 viss dator kan du använda cmdleten Get-Service lokalt. För fjärrsystem kan du använda WMI-klassen Win32_Service . Om du också använder Select-Object för att filtrera resultatet till Status, Namn 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 tjänster med långa namn använder du parametrarna AutoSize och Wrap i Format-Table. Dessa parametrar optimerar kolumnbredden och tillåter att långa namn radbryts i stället för att trunkeras:

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