查詢物件
CIM / WMI 最常用於查詢裝置上的資訊或配置。表示配置,程序,使用者等的類。在 PowerShell 中,有多種方法可以訪問這些類和例項,但最常見的方法是使用 Get-CimInstance
(CIM)或 Get-WmiObject
(WMI)cmdlet。
列出 CIM 類的所有物件
你可以列出類的所有例項。
Version >= 3.0
CIM:
> Get-CimInstance -ClassName Win32_Process
ProcessId Name HandleCount WorkingSetSize VirtualSize
--------- ---- ----------- -------------- -----------
0 System Idle Process 0 4096 65536
4 System 1459 32768 3563520
480 Secure System 0 3731456 0
484 smss.exe 52 372736 2199029891072
....
....
WMI:
Get-WmiObject -Class Win32_Process
使用過濾器
你可以應用篩選器以僅獲取 CIM / WMI 類的特定例項。過濾器使用 WQL
(預設)或 CQL(新增 -QueryDialect CQL
)編寫。-Filter
使用完整 WQL / CQL 查詢的 WHERE
部分。
Version >= 3.0
CIM:
Get-CimInstance -ClassName Win32_Process -Filter "Name = 'powershell.exe'"
ProcessId Name HandleCount WorkingSetSize VirtualSize
--------- ---- ----------- -------------- -----------
4800 powershell.exe 676 88305664 2199697199104
WMI:
Get-WmiObject -Class Win32_Process -Filter "Name = 'powershell.exe'"
...
Caption : powershell.exe
CommandLine : "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
CreationClassName : Win32_Process
CreationDate : 20160913184324.393887+120
CSCreationClassName : Win32_ComputerSystem
CSName : STACKOVERFLOW-PC
Description : powershell.exe
ExecutablePath : C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
ExecutionState :
Handle : 4800
HandleCount : 673
....
使用 WQL 查詢:
你還可以使用 WQL / CQL 查詢來查詢和過濾例項。
Version >= 3.0
CIM:
Get-CimInstance -Query "SELECT * FROM Win32_Process WHERE Name = 'powershell.exe'"
ProcessId Name HandleCount WorkingSetSize VirtualSize
--------- ---- ----------- -------------- -----------
4800 powershell.exe 673 88387584 2199696674816
查詢不同名稱空間中的物件:
Version >= 3.0
CIM:
> Get-CimInstance -Namespace "root/SecurityCenter2" -ClassName AntiVirusProduct
displayName : Windows Defender
instanceGuid : {D68DDC3A-831F-4fae-9E44-DA132C1ACF46}
pathToSignedProductExe : %ProgramFiles%\Windows Defender\MSASCui.exe
pathToSignedReportingExe : %ProgramFiles%\Windows Defender\MsMpeng.exe
productState : 397568
timestamp : Fri, 09 Sep 2016 21:26:41 GMT
PSComputerName :
WMI:
> Get-WmiObject -Namespace "root\SecurityCenter2" -Class AntiVirusProduct
__GENUS : 2
__CLASS : AntiVirusProduct
__SUPERCLASS :
__DYNASTY : AntiVirusProduct
__RELPATH : AntiVirusProduct.instanceGuid="{D68DDC3A-831F-4fae-9E44-DA132C1ACF46}"
__PROPERTY_COUNT : 6
__DERIVATION : {}
__SERVER : STACKOVERFLOW-PC
__NAMESPACE : ROOT\SecurityCenter2
__PATH : \\STACKOVERFLOW-PC\ROOT\SecurityCenter2:AntiVirusProduct.instanceGuid="{D68DDC3A-831F-4fae-9E44-DA132C1ACF46}"
displayName : Windows Defender
instanceGuid : {D68DDC3A-831F-4fae-9E44-DA132C1ACF46}
pathToSignedProductExe : %ProgramFiles%\Windows Defender\MSASCui.exe
pathToSignedReportingExe : %ProgramFiles%\Windows Defender\MsMpeng.exe
productState : 397568
timestamp : Fri, 09 Sep 2016 21:26:41 GMT
PSComputerName : STACKOVERFLOW-PC