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