次の方法で共有


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 Query Language (WQL) ステートメントが実行されます。

コマンドレットはGet-WmiObject、リモート操作を実行するためにWindows PowerShellリモート処理を使用しません。 コンピューターがリモート処理のGet-WmiObject要件を満たしていない場合や、Windows PowerShell Windows PowerShellでリモート処理用に構成されていない場合でも、コマンドレットの 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-ListProperty パラメーターは、返されたオブジェクトのすべてのプロパティを一覧に表示するために使用されます。 既定では、構成ファイルで 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: リモート コンピューターでサービスを取得する

この例では、 コマンドレットの Credential パラメーターを Get-WmiObject 使用して、リモート コンピューター上のサービスを取得します。 Credential パラメーターの値は、ユーザー アカウント名です。 ユーザーにパスワードの入力を求めるメッセージが表示されます。

Get-WmiObject Win32_Service -Credential FABRIKAM\administrator -ComputerName Fabrikam

注意

ローカル コンピューターを対象とする場合、資格情報を使用できません。

パラメーター

-Amended

変更された情報を WMI から返されるオブジェクトに含めるかどうかを指定する値を取得または設定します。 通常、変更された情報は、オブジェクトやプロパティの説明など、WMI オブジェクトに付属するローカライズ可能な情報です。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AsJob

バックグラウンド ジョブとしてコマンドを実行します。 完了に時間のかかるコマンドを実行するには、このパラメーターを使用します。

AsJob パラメーターを使用すると、バックグラウンド ジョブを表すオブジェクトが返され、その後コマンド プロンプトが表示されます。 ジョブが完了しても、引き続きセッションで作業できます。 がリモート コンピューターで使用されている場合 Get-WmiObject 、ジョブはローカル コンピューターに作成され、リモート コンピューターからの結果は自動的にローカル コンピューターに返されます。 ジョブを管理するには、"Job" を含むコマンドレットを使用します。 ジョブの結果を取得するには、Receive-Job コマンドレットを使用します。

注意

このパラメーターをリモート コンピューターで使用するには、ローカル コンピューターおよびリモート コンピューターをリモート処理用に構成する必要があります。 さらに、Windows Vista 以降のバージョンの Windows では、[管理者として実行] を使用して Windows PowerShell を起動する必要があります。 詳細については、「about_Remote_Requirements」を参照してください。

バックグラウンド ジョブのWindows PowerShellの詳細については、「about_Jobsabout_Remote_Jobs」を参照してください。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Authentication

WMI 接続に使用する認証レベルを指定します。 有効な値は次のとおりです。

  • -1: Unchanged
  • 0: Default
  • 1: None (認証は行われません)
  • 2: Connect (認証は、クライアントとアプリケーションの関係が確立されるときのみ実行されます)
  • 3: Call (認証は、アプリケーションが要求を受信するときに各呼び出しの始めにだけ実行されます)
  • 4: Packet (認証はクライアントから受信されるすべてのデータで実行されます)
  • 5: PacketIntegrity (クライアントとアプリケーションの間で転送されるすべてのデータが認証され、検証されます)。
  • 6: PacketPrivacy (他の認証レベルのプロパティが使用され、すべてのデータが暗号化されます)
Type:AuthenticationLevel
Accepted values:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Authority

WMI 接続の認証に使用する機関を指定します。 標準の NTLM 認証または Kerberos 認証を指定できます。 NTLM を使用するには、機関の設定を に ntlmdomain:<DomainName>設定します。ここで、 <DomainName> 有効な NTLM ドメイン名を識別します。 Kerberos を使用するには、 を指定します kerberos:<DomainName>\<ServerName>。 ローカル コンピューターへの接続時に認証設定を指定することもできます。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Class

WMI クラスの名前を指定します。 このパラメーターを使用した場合は、WMI クラスのインスタンスが返されます。

Type:String
Aliases:ClassName
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

管理操作のターゲット コンピューターを指定します。 完全修飾ドメイン名 (FQDN)、NetBIOS 名、または IP アドレスを入力します。 リモート コンピューターがローカル コンピューターとは異なるドメインにある場合は、完全修飾ドメイン名が必要です。

既定値はローカル コンピューターです。 コンピューター名の一覧などでローカル コンピューターを指定するには、「localhost」、ローカル コンピューター名、またはドット (.) を使用します。

このパラメーターは、WS-Management を使用する Windows PowerShell リモート処理に依存しません。 コンピューターがリモート コマンドを実行するように構成されていない場合でも、 の Get-WmiObjectComputerName パラメーター WS-Management 使用できます。

Type:String[]
Aliases:Cn
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

この処理を実行するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。 "User01"、"Domain01\User01"、または などのユーザー名を入力します User@Contoso.com。 または、 コマンドレットで返されるような Get-Credential オブジェクトを入力します。 ユーザー名を入力すると、パスワードの入力を促すメッセージが表示されます。 ローカル コンピューターを対象とする場合、資格情報を使用できません。

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DirectRead

基底クラスまたは派生クラスに関係なく、指定したクラスには WMI プロバイダーへの直接アクセスが必要かどうかを指定します。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EnableAllPrivileges

コマンドが WMI 呼び出しを実行する前に、現在のユーザーのすべての特権を有効にします。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Filter

フィルターとして使用する Where 句を指定します。 WMI Query Language (WQL) の構文を使用します。

重要

パラメーターの値には Where キーワードを含めないでください。 たとえば、次のコマンドは、Where キーワードを使用しないで、DeviceID が "c:" の論理ディスクと名前が "WinRM" のサービスのみを返します。

Get-WmiObject Win32_LogicalDisk -filter "DeviceID = 'c:' "

Get-WmiObject win32_service -filter "name='WinRM'"

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Impersonation

使用する偽装レベルを指定します。

このパラメーターの有効値は、次のとおりです。

  • 0: Default。 既定の偽装レベルのローカル レジストリを読み取ります。 通常、既定値は Impersonate に設定されます。
  • 1: Anonymous。 呼び出し元の資格情報は非表示になります。
  • 2: Identify。 オブジェクトによる呼び出し元の資格情報のクエリが許可されます。
  • 3: Impersonate。 オブジェクトによる呼び出し元の資格情報の使用が許可されます。
  • 4: Delegate。 オブジェクトが呼び出し元の資格情報の使用を他のオブジェクトに許可できるようにします。
Type:ImpersonationLevel
Accepted values:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-List

Namespace パラメーターで指定された、WMI リポジトリ名前空間にある WMI クラスの名前を取得します。

List パラメーターを指定し、Namespace パラメーターを指定しない場合、Get-WmiObject既定では Root\Cimv2 名前空間が使用されます。 このコマンドレットは、レジストリ キーの 既定の名前空間 レジストリ エントリを使用して既定の HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting 名前空間を決定しません。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Locale

WMI オブジェクトの優先ロケールを指定します。 MS_<LCID 形式で値を> 入力します。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Namespace

Class パラメーターと共に使用する場合、Namespace パラメーターは、指定された WMI クラスがある WMI リポジトリ名前空間を指定します。 List パラメーターと共に使用する場合は、WMI クラス情報を収集する名前空間を指定します。

Type:String
Aliases:NS
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Property

このコマンドレットが情報を取得する WMI クラスのプロパティを指定します。 プロパティ名を入力します。

Type:String[]
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Query

指定された WMI Query Language (WQL) のステートメントを実行します。 このパラメーターは、イベント クエリをサポートしていません。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Recurse

Class パラメーターで指定されたクラス名を現在の名前空間および他のすべての名前空間で検索します。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ThrottleLimit

同時に実行できる WMI 操作の最大数を指定します。 このパラメーターは、AsJob パラメーターがコマンドで使用されている場合にのみ有効です。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

入力

None

入力を に Get-WmiObjectパイプすることはできません。

出力

PSObject or System.Management.Automation.RemotingJob

AsJob パラメーターを使用すると、コマンドレットはジョブ オブジェクトを返します。 それ以外の場合、 を返す Get-WmiObject オブジェクトは 、Class パラメーターの値によって異なります。

メモ

リモート コンピューターの WMI 情報にアクセスするには、リモート コンピューターのローカル管理者グループに属しているアカウントでこのコマンドレットを実行する必要があります。 また、リモート リポジトリの WMI 名前空間に対する既定のアクセス制御を変更して、他のアカウントにアクセス権を許可する方法もあります。

既定では、各 WMI クラスの一部のプロパティのみが表示されます。 各 WMI クラスで表示されるプロパティのセットは、構成ファイル Types.ps1xml で指定します。 WMI オブジェクトのすべてのプロパティを取得するには、 または Format-List コマンドレットをGet-Member使用します。