Get-WmiObject
Windows Management Instrumentation (WMI) クラスのインスタンスまたは使用可能なクラスに関する情報を取得します。
構文
Get-WmiObject
[-Class] <String>
[[-Property] <String[]>]
[-Filter <String>]
[-Amended]
[-DirectRead]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[[-Class] <String>]
[-Recurse]
[-Amended]
[-List]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-DirectRead]
-Query <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
説明
PowerShell 3.0 以降、このコマンドレットは Get-CimInstance
に置き換わりました。
Get-WmiObject
コマンドレットは、WMI クラスのインスタンスまたは使用可能な WMI クラスに関する情報を取得します。 リモート コンピューターを指定するには、ComputerName パラメーターを使用します。
List パラメーターが指定されている場合、コマンドレットは、指定した名前空間で使用可能な WMI クラスに関する情報を取得します。
Query パラメーターが指定されている場合、コマンドレットは WMI クエリ言語 (WQL) ステートメントを実行します。
Get-WmiObject
コマンドレットは、リモート操作を実行するために Windows PowerShell リモート処理を使用しません。
コンピューターが Windows PowerShell リモート処理の要件を満たしていない場合や、Windows PowerShell でリモート処理用に構成されていない場合でも、Get-WmiObject
コマンドレットの ComputerName パラメーターを使用できます。
Windows PowerShell 3.0 以降、Get-WmiObject
返されるオブジェクトの __Server プロパティには、PSComputerName エイリアスがあります。 これにより、出力とレポートにソース コンピューター名を簡単に含めることができます。
例
例 1: ローカル コンピューターでプロセスを取得する
この例では、ローカル コンピューター上のプロセスを取得します。
Get-WmiObject -Class Win32_Process
例 2: リモート コンピューター上のサービスを取得する
この例では、リモート コンピューター上のサービスを取得します。 ComputerName パラメーターは、リモート コンピューターの IP アドレスを指定します。 既定では、現在のユーザー アカウントは、リモート コンピューター上の Administrators グループのメンバーである必要があります。
Get-WmiObject -Class Win32_Service -ComputerName 10.1.4.62
例 3: ローカル コンピューターのルートまたは既定の名前空間で WMI クラスを取得する
この例では、ローカル コンピューターのルートまたは既定の名前空間の WMI クラスを取得します。
Get-WmiObject -Namespace "root/default" -List
例 4: 複数のコンピューターで名前付きサービスを取得する
この例では、ComputerName パラメーターの値で指定されたコンピューター上の WinRM サービスを取得します。
Get-WmiObject -Query "select * from win32_service where name='WinRM'" -ComputerName Server01, Server02 |
Format-List -Property PSComputerName, Name, ExitCode, Name, ProcessID, StartMode, State, Status
PSComputerName : SERVER01
Name : WinRM
ExitCode : 0
Name : WinRM
ProcessID : 844
StartMode : Auto
State : Running
Status : OK
PSComputerName : SERVER02
Name : WinRM
ExitCode : 0
Name : WinRM
ProcessID : 932
StartMode : Auto
State : Running
Status : OK
パイプライン演算子 (|
) は、Format-List
コマンドレットに出力を送信し、PSComputerName プロパティを既定の出力に追加します。
PSComputerName は、Get-WmiObject
が返すオブジェクトの __Server プロパティのエイリアスです。 このエイリアスは、PowerShell 3.0 で導入されました。
例 5: リモート コンピューターでサービスを停止する
次の使用例は、リモート コンピューターで WinRM サービスを停止します。
Get-WmiObject
は、Server01 上の WinRM サービス オブジェクトのインスタンスを取得します。 次に、そのオブジェクトの Win32_Service WMI クラスの StopService メソッドを呼び出します。
(Get-WmiObject -Class Win32_Service -Filter "name='WinRM'" -ComputerName Server01).StopService()
これは、Stop-Service
コマンドレットの使用と同じです。
例 6: ローカル コンピューターで BIOS を取得する
この例では、ローカル コンピューターから BIOS 情報を取得します。
Format-List
コマンドレットの Property パラメーターは、返されたオブジェクトのすべてのプロパティを一覧に表示するために使用されます。 既定では、Types.ps1xml
構成ファイルで定義されているプロパティのサブセットのみが表示されます。
Get-WmiObject -Class Win32_Bios | Format-List -Property *
Status : OK
Name : Phoenix ROM BIOS PLUS Version 1.10 A05
Caption : Phoenix ROM BIOS PLUS Version 1.10 A05
SMBIOSPresent : True
__GENUS : 2
__CLASS : Win32_BIOS
__SUPERCLASS : CIM_BIOSElement
__DYNASTY : CIM_ManagedSystemElement
__RELPATH : Win32_BIOS.Name="Phoenix ROM BIOS PLUS Version 1.10
__PROPERTY_COUNT : 27
__DERIVATION : {CIM_BIOSElement, CIM_SoftwareElement, CIM_LogicalElement,
__SERVER : Server01
__NAMESPACE : root\cimv2
__PATH : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
BiosCharacteristics : {7, 9, 10, 11...}
BIOSVersion : {DELL - 15, Phoenix ROM BIOS PLUS Version 1.10 A05}
BuildNumber :
CodeSet :
CurrentLanguage : en|US|iso8859-1
Description : Phoenix ROM BIOS PLUS Version 1.10 A05
IdentificationCode :
InstallableLanguages : 1
InstallDate :
LanguageEdition :
ListOfLanguages : {en|US|iso8859-1}
Manufacturer : Dell Inc.
OtherTargetOS :
PrimaryBIOS : True
ReleaseDate : 20101103000000.000000+000
SerialNumber : 8VDM9P1
SMBIOSBIOSVersion : A05
SMBIOSMajorVersion : 2
SMBIOSMinorVersion : 6
SoftwareElementID : Phoenix ROM BIOS PLUS Version 1.10 A05
SoftwareElementState : 3
TargetOperatingSystem : 0
Version : DELL - 15
Scope : System.Management.ManagementScope
Path : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
Options : System.Management.ObjectGetOptions
ClassPath : \\JUNE-PC\root\cimv2:Win32_BIOS
Properties : {BiosCharacteristics, BIOSVersion, BuildNumber, Caption...}
SystemProperties : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...}
Qualifiers : {dynamic, Locale, provider, UUID}
Site :
Container :
例 7: リモート コンピューターでサービスを取得する
この例では、Get-WmiObject
コマンドレットの Credential パラメーターを使用して、リモート コンピューター上のサービスを取得します。
Credential パラメーターの値は、ユーザー アカウント名です。 ユーザーにパスワードの入力を求められます。
Get-WmiObject Win32_Service -Credential FABRIKAM\administrator -ComputerName Fabrikam
手記
ローカル コンピューターを対象とする場合は、資格情報を使用できません。
パラメーター
-Amended
WMI から返されるオブジェクトに修正された情報を含めるかどうかを示す値を取得または設定します。 通常、修正された情報は、WMI オブジェクトにアタッチされている、オブジェクトやプロパティの説明などのローカライズ可能な情報です。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-AsJob
コマンドをバックグラウンド ジョブとして実行します。 このパラメーターを使用して、完了に時間がかかるコマンドを実行します。
AsJob パラメーターを使用すると、コマンドはバックグラウンド ジョブを表すオブジェクトを返し、コマンド プロンプトを表示します。 ジョブが完了している間も、セッションで作業を続けることができます。
Get-WmiObject
を ComputerName パラメーターと共に使用すると、ローカル コンピューターにジョブが作成され、リモート コンピューターからの結果がローカル コンピューターに自動的に返されます。 ジョブを管理するには、Job
名詞を含むコマンドレットを使用します。 ジョブの結果を取得するには、Receive-Job
コマンドレットを使用します。
Windows PowerShell バックグラウンド ジョブの詳細については、「about_Jobs と about_Remote_Jobs」を参照してください。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Authentication
WMI 接続で使用する認証レベルを指定します。 有効な値は次のとおりです。
-
-1
: 変更されていない -
0
: 既定の -
1
: [なし] を します (認証は実行されません)。 -
2
: Connect (認証は、クライアントがアプリケーションとの関係を確立した場合にのみ実行されます)。 -
3
: 呼び出し (認証は、アプリケーションが要求を受信したときに、各呼び出しの開始時にのみ実行されます)。 -
4
: パケット (認証は、クライアントから受信したすべてのデータに対して実行されます)。 -
5
: PacketIntegrity (クライアントとアプリケーションの間で転送されるすべてのデータが認証され、検証されます)。 -
6
: PacketPrivacy を します (他の認証レベルのプロパティが使用され、すべてのデータが暗号化されます)。
型: | AuthenticationLevel |
指定可能な値: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Authority
WMI 接続の認証に使用する権限を指定します。 標準の NTLM 認証または Kerberos 認証を指定できます。 NTLM を使用するには、機関の設定を ntlmdomain:<DomainName>
に設定します。ここで、<DomainName>
は有効な NTLM ドメイン名を識別します。 Kerberos を使用するには、kerberos:<DomainName>\<ServerName>
を指定します。 ローカル コンピューターに接続するときに、権限設定を含めることはできません。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Class
WMI クラスの名前を指定します。 このパラメーターを使用すると、コマンドレットは WMI クラスのインスタンスを取得します。
型: | String |
Aliases: | ClassName |
配置: | 1 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ComputerName
管理操作のターゲット コンピューターを指定します。 完全修飾ドメイン名 (FQDN)、NetBIOS 名、または IP アドレスを入力します。 リモート コンピューターがローカル コンピューターとは異なるドメインにある場合は、完全修飾ドメイン名が必要です。
既定値はローカル コンピューターです。 コンピューター名の一覧など、ローカル コンピューターを指定するには、localhost
、ローカル コンピューター名、またはドット (.
) を使用します。
リモート コンピューターを指定する場合、現在のアカウント、または Credential パラメーターで指定したアカウントには、情報にアクセスするための適切なアクセス許可が必要です。
このパラメーターは、WS-Management を使用する Windows PowerShell リモート処理には依存しません。 コンピューターがリモート コマンドを実行するように構成されていない場合でも、Get-WmiObject
の ComputerName パラメーター WS-Management 使用できます。
型: | String[] |
Aliases: | Cn |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Credential
このアクションを実行するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。
User01
、Domain01\User01
、User@Contoso.com
などのユーザー名を入力します。 または、PSCredential オブジェクト (Get-Credential
コマンドレットによって返されるオブジェクトなど) を入力します。 ユーザー名を入力すると、パスワードの入力を求められます。 ローカル コンピューターを対象とする場合は、資格情報を使用できません。
型: | PSCredential |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-DirectRead
指定したクラスに対して WMI プロバイダーへの直接アクセスを、その基底クラスまたは派生クラスに関係なく要求するかどうかを指定します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-EnableAllPrivileges
コマンドが WMI 呼び出しを行う前に、現在のユーザーのすべての特権を有効にします。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Filter
フィルターとして使用する Where 句を指定します。 WMI クエリ言語 (WQL) の構文を使用します。
大事な
パラメーターの値に Where キーワードを含めないでください。 たとえば、次のコマンドは、Where キーワードを使用せずに、c:
の DeviceID を持つ論理ディスクと、名前が "WinRM" のサービスのみを返します。
Get-WmiObject Win32_LogicalDisk -filter "DeviceID = 'c:' "
Get-WmiObject win32_service -filter "name='WinRM'"
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Impersonation
使用する偽装レベルを指定します。
このパラメーターに使用できる値は次のとおりです。
-
0
: 既定の をします。 既定の偽装レベルのローカル レジストリを読み取ります。 既定値は通常、を偽装に設定されます。 -
1
: 匿名 . 呼び出し元の資格情報を非表示にします。 -
2
: を識別。 オブジェクトが呼び出し元の資格情報を照会できるようにします。 -
3
: の偽装をします。 オブジェクトが呼び出し元の資格情報を使用できるようにします。 -
4
: デリゲート をします。 オブジェクトが他のオブジェクトに呼び出し元の資格情報の使用を許可できるようにします。
型: | ImpersonationLevel |
指定可能な値: | Default, Anonymous, Identify, Impersonate, Delegate |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-List
名前空間の パラメーターで指定された WMI リポジトリ名前空間内の WMI クラスの名前を取得します。
List パラメーターを指定するが、Namespace パラメーターを指定しない場合、Get-WmiObject
は既定で Root\Cimv2 名前空間を使用します。 このコマンドレットは、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting
レジストリ キーの Default Namespace レジストリ エントリを使用して既定の名前空間を決定しません。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Locale
WMI オブジェクトの優先ロケールを指定します。
MS_<LCID>
形式で値を入力します。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Namespace
Class パラメーターと共に使用する場合、名前空間 パラメーターは、指定した WMI クラスが配置されている WMI リポジトリ名前空間を指定します。 List パラメーターと共に使用する場合は、WMI クラス情報の収集元となる名前空間を指定します。
型: | String |
Aliases: | NS |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Property
このコマンドレットが情報を取得する WMI クラスのプロパティを指定します。 プロパティ名を入力します。
型: | String[] |
配置: | 1 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Query
指定した WMI クエリ言語 (WQL) ステートメントを実行します。 このパラメーターは、イベント クエリをサポートしていません。
型: | String |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Recurse
現在の名前空間とその他のすべての名前空間で、Class パラメーターで指定されたクラス名を検索します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ThrottleLimit
同時に実行できる WMI 操作の最大数を指定します。 このパラメーターは、AsJob パラメーターがコマンドで使用されている場合にのみ有効です。
型: | Int32 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
None
Get-WmiObject
に入力をパイプすることはできません。
出力
PSObject or System.Management.Automation.RemotingJob
AsJob パラメーターを使用すると、コマンドレットはジョブ オブジェクトを返します。 それ以外の場合、Get-WmiObject
返されるオブジェクトは、Class パラメーターの値によって異なります。
メモ
Windows PowerShell には、Get-WmiObject
の次のエイリアスが含まれています。
gwmi
リモート コンピューター上の WMI 情報にアクセスするには、リモート コンピューターのローカル管理者グループのメンバーであるアカウントでコマンドレットを実行する必要があります。 または、リモート リポジトリの WMI 名前空間の既定のアクセス制御を変更して、他のアカウントへのアクセス権を付与することもできます。
既定では、各 WMI クラスの一部のプロパティのみが表示されます。 各 WMI クラスに表示されるプロパティのセットは、Types.ps1xml
構成ファイルで指定されます。 WMI オブジェクトのすべてのプロパティを取得するには、Get-Member
または Format-List
コマンドレットを使用します。
関連リンク
PowerShell