共用方式為


收集計算機的相關信息

此範例僅適用於 Windows 平臺。

來自 CimCmdlets 模組的 Cmdlet 是一般系統管理工作最重要的 Cmdlet。 所有重要的子系統設定都會透過 WMI 公開。 此外,WMI 會將數據視為一或多個專案集合中的物件。 因為 PowerShell 也適用於物件,而且具有管線,可讓您以相同方式處理單一或多個物件,因此一般 WMI 存取可讓您執行一些很少工作的進階工作。

列出桌面設定

我們將從命令開始,以收集本機計算機上桌面的相關信息。

Get-CimInstance -ClassName Win32_Desktop

這會傳回所有桌面計算機的信息,無論它們是否正在使用中。

注意

某些 WMI 類別傳回的資訊可能非常詳細,而且通常包含 WMI 類別的相關元數據。

由於大部分的元數據屬性都有以 Cim 開頭的名稱,因此您可以使用 來篩選屬性 Select-Object。 使用 「Cim*」 指定 -ExcludeProperty 參數做為值。 例如:

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

若要篩選掉元資料,請使用管線運算子 (|) 將命令的結果 Get-CimInstance 傳送至 Select-Object -ExcludeProperty "CIM*"

列出 BIOS 資訊

WMI Win32_BIOS 類別會傳回相當精簡且完整的本機電腦上的系統 BIOS 相關信息:

Get-CimInstance -ClassName Win32_BIOS

列出處理器資訊

您可以使用 WMI 的 Win32_Processor 類別來擷取一般處理器資訊,不過您可能想要篩選資訊:

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

針對處理器系列的泛型描述字串,您可以只傳回 SystemType 屬性:

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

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

列出電腦製造商和型號

計算機模型資訊也可從 Win32_ComputerSystem取得。 標準顯示的輸出不需要任何篩選來提供 OEM 資料:

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

這類命令的輸出會直接從某些硬體傳回資訊,只與您擁有的數據一樣好。 硬體製造商未正確設定某些資訊,因此可能無法使用。

列出已安裝的 Hotfix

您可以使用Win32_QuickFixEngineering列出所有已安裝的 Hotfix

Get-CimInstance -ClassName Win32_QuickFixEngineering

此類別會傳回如下所示的 Hotfix 清單:

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

如需更簡潔的輸出,您可能會想要排除某些屬性。 雖然您可以使用 Get-CimInstanceProperty 參數只 選擇 HotFixID,但這樣做實際上會傳回更多資訊,因為預設會顯示所有元數據:

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

傳回其他數據,因為 中的 Get-CimInstance Property 參數會限制從 WMI 類別實例傳回的屬性,而不是傳回至 PowerShell 的物件。 若要減少輸出,請使用 Select-Object

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

列出操作系統版本資訊

Win32_OperatingSystem類別屬性包括版本和 Service Pack 資訊。 您可以明確地選取這些屬性,以從 Win32_OperatingSystem取得版本資訊摘要:

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

您也可以搭配 Property 參數使用通配符。 由於開頭 為 BuildServicePack 的所有屬性都很重要,因此我們可以將此內容縮短為下列格式:

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

列出本機用戶和擁有者

如需本機使用者的一 般資訊,請參閱選取Win32_OperatingSystem 類別屬性。 您可以明確地選取要顯示的屬性,如下所示:

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

使用通配符更簡潔的版本是:

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

取得可用的磁碟空間

若要查看本機磁碟驅動器的磁碟空間和可用空間,您可以使用 Win32_LogicalDisk 類別。 您只需要看到 DriveType 為 3 的實例,WMI 用於固定硬碟的值。

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

取得登入會話資訊

您可以透過 Win32_LogonSession WMI 類別取得與使用者相關聯之登入工作階段的一般資訊:

Get-CimInstance -ClassName Win32_LogonSession

讓使用者登入計算機

您可以使用 Win32_ComputerSystem,顯示登入特定電腦系統的使用者。 這個指令只會傳回登入系統桌面的使用者:

Get-CimInstance -ClassName Win32_ComputerSystem -Property UserName

從計算機取得當地時間

您可以使用 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 :

顯示服務狀態

若要檢視特定電腦上所有服務的狀態,您可以在本機使用 Get-Service Cmdlet。 針對遠端系統,您可以使用 Win32_Service WMI 類別。 如果您也用來 Select-Object 將結果篩選為 StatusNameDisplayName,則輸出格式與 中的 Get-Service輸出格式幾乎完全相同:

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

若要允許完整顯示具有長名稱之服務的名稱,請使用 Format-TableAutoSizeWrap 參數。 這些參數會優化數據行寬度,並允許長名稱換行,而不是被截斷:

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