#navi(../)
* PowerShellでWMIを使用するサンプル [#n5b4c108]
PowerShellからWMIを使用する方法を以下に記します。
#contents
#htmlinsertpcsp(win-top.html,win-sp.html)
* 関連記事 [#m23e0f37]
以下、VBScriptでWMIを使用するサンプルコードを公開しています。
-[[Win32_ComputerSystemのサンプルスクリプト>WSH/Win32_ComputerSystemのサンプルスクリプト]]
-[[Win32_ComputerSystemProductのサンプルスクリプト>WSH/Win32_ComputerSystemProductのサンプルスクリプト]]
-[[Win32_OperatingSystemのサンプルスクリプト>WSH/Win32_OperatingSystemのサンプルスクリプト]]
-[[Win32_BIOSのサンプルスクリプト>WSH/Win32_BIOSのサンプルスクリプト]]
-[[Win32_LogicalDiskのサンプルスクリプト>WSH/Win32_LogicalDiskのサンプルスクリプト]]
-[[Win32_Processorのサンプルスクリプト>WSH/Win32_Processorのサンプルスクリプト]]
-[[Win32_NetworkAdapterConfigurationのサンプルスクリプト>WSH/Win32_NetworkAdapterConfigurationのサンプルスクリプト]]
-[[Win32_DiskDriveのサンプルスクリプト>WSH/Win32_DiskDriveのサンプルスクリプト]]
* Get-WmiObject コマンドレットを使用する [#q9d7775d]
Get-WmiObjectコマンドレットを使用することにより簡単にWMIにアクセスすることができます。
** Get-WmiObjectを使ってみる [#aff45c3b]
Get-WmiObjectにWin32_ComputerSystemを指定して実行した例です。
PS C:\> Get-WmiObject Win32_ComputerSystem
Domain : WORKGROUP
Manufacturer : LENOVO
Model : ABCDEFG
Name : THINKPAD
PrimaryOwnerName : sakura
TotalPhysicalMemory : 8428290048
WMIによる情報が簡単に取れていることが確認できます。
** SQLを記述する [#zb0c3184]
以下のように-queryを指定することによりSQL構文を記述し出力することができます。~
Win32_Serviceを指定し、StateがRunningになっているものを出力しています。~
ft(Format-Tableにて出力を整形しています。
PS C:\> Get-WmiObject -query "SELECT * FROM Win32_Service WHERE State=""Running""" | ft
ExitCode Name ProcessId StartMode State Status
-------- ---- --------- --------- ----- ------
0 AdobeARMservice 1600 Auto Running OK
0 AeLookupSvc 1020 Manual Running OK
0 Appinfo 1020 Manual Running OK
0 Apple Mobile Dev... 1640 Auto Running OK
0 AudioEndpointBui... 316 Auto Running OK
0 Audiosrv 988 Auto Running OK
0 AVControlCenter 1684 Auto Running OK
0 BFE 1400 Auto Running OK
0 BITS 1020 Auto Running OK
0 Bonjour Service 1796 Auto Running OK
0 BrokerInfrastruc... 680 Auto Running OK
0 Browser 1020 Manual Running OK
<snip>
** その他サンプル [#j80a8923]
以下は、Win32_Processorを出力した時の結果です。
PS C:\> Get-WmiObject Win32_Processor
Caption : Intel64 Family 6 Model 58 Stepping 9
DeviceID : CPU0
Manufacturer : GenuineIntel
MaxClockSpeed : 2501
Name : Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
SocketDesignation : CPU Socket - U3E1
以下は、Win32_LogicalDiskを指定し、Format-Table(ft)にて整形して出力した結果です。
PS C:\> Get-WmiObject Win32_LogicalDisk | Format-Table
DeviceID DriveType ProviderName FreeSpace Size VolumeName
-------- --------- ------------ --------- ---- ----------
C: 3 58719133696 126106988544 Windows8_OS
D: 5
E: 2 46781014016 63467155456
以上、PowerShellでWMIを使用するサンプルでした。
#htmlinsertpcsp(win-btm.html,win-sp.html)