次の方法で共有


Get-CimInstance

CIM サーバーからクラスの CIM インスタンスを取得します。

構文

Get-CimInstance
   [-ClassName] <String>
   [-ComputerName <String[]>]
   [-KeyOnly]
   [-Namespace <String>]
   [-OperationTimeoutSec <UInt32>]
   [-QueryDialect <String>]
   [-Shallow]
   [-Filter <String>]
   [-Property <String[]>]
   [<CommonParameters>]
Get-CimInstance
   -CimSession <CimSession[]>
   -ResourceUri <Uri>
   [-KeyOnly]
   [-Namespace <String>]
   [-OperationTimeoutSec <UInt32>]
   [-Shallow]
   [-Filter <String>]
   [-Property <String[]>]
   [<CommonParameters>]
Get-CimInstance
   -CimSession <CimSession[]>
   [-ResourceUri <Uri>]
   [-Namespace <String>]
   [-OperationTimeoutSec <UInt32>]
   -Query <String>
   [-QueryDialect <String>]
   [-Shallow]
   [<CommonParameters>]
Get-CimInstance
   -CimSession <CimSession[]>
   [-ClassName] <String>
   [-KeyOnly]
   [-Namespace <String>]
   [-OperationTimeoutSec <UInt32>]
   [-QueryDialect <String>]
   [-Shallow]
   [-Filter <String>]
   [-Property <String[]>]
   [<CommonParameters>]
Get-CimInstance
   -CimSession <CimSession[]>
   [-ResourceUri <Uri>]
   [-OperationTimeoutSec <UInt32>]
   [-InputObject] <CimInstance>
   [<CommonParameters>]
Get-CimInstance
   [-ResourceUri <Uri>]
   [-ComputerName <String[]>]
   [-OperationTimeoutSec <UInt32>]
   [-InputObject] <CimInstance>
   [<CommonParameters>]
Get-CimInstance
   -ResourceUri <Uri>
   [-ComputerName <String[]>]
   [-KeyOnly]
   [-Namespace <String>]
   [-OperationTimeoutSec <UInt32>]
   [-Shallow]
   [-Filter <String>]
   [-Property <String[]>]
   [<CommonParameters>]
Get-CimInstance
   [-ResourceUri <Uri>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [-OperationTimeoutSec <UInt32>]
   -Query <String>
   [-QueryDialect <String>]
   [-Shallow]
   [<CommonParameters>]

説明

このコマンドレットは、Windows プラットフォームでのみ使用できます。

Get-CimInstance コマンドレットは、CIM サーバーからクラスの CIM インスタンスを取得します。 このコマンドレットのクラス名またはクエリを指定できます。 このコマンドレットは、CIM サーバー上に存在する CIM インスタンスのスナップショットを表す 1 つ以上の CIM インスタンス オブジェクトを返します。

InputObject パラメーターが指定されていない場合、コマンドレットは次のいずれかの方法で動作します。

  • ComputerName パラメーターも CimSession パラメーターも指定されていない場合、このコマンドレットはコンポーネント オブジェクト モデル (COM) セッションを使用してローカル Windows Management Instrumentation (WMI) で動作します。
  • ComputerName パラメーターまたは CimSession パラメーターが指定されている場合、このコマンドレットは、ComputerName パラメーターまたは CimSession パラメーターで指定された CIM サーバーに対して動作します。

InputObject パラメーターが指定されている場合、コマンドレットは次のいずれかの方法で動作します。

  • ComputerName パラメーターも CimSession パラメーターも指定されていない場合、このコマンドレットは入力オブジェクトの CIM セッションまたはコンピューター名を使用します。
  • ComputerName パラメーターまたは CimSession パラメーターが指定されている場合、このコマンドレットは CimSession パラメーター値または ComputerName パラメーター値を使用します。

例 1: 指定したクラスの CIM インスタンスを取得する

この例では、Win32_Processという名前のクラスの CIM インスタンスを取得します。

Get-CimInstance -ClassName Win32_Process

例 2: WMI サーバーから名前空間の一覧を取得する

次の使用例は、WMI サーバー上の ルート 名前空間の下にある名前空間の一覧を取得します。

Get-CimInstance -Namespace root -ClassName __Namespace

例 3: クエリを使用してフィルター処理されたクラスのインスタンスを取得する

この例では、Query パラメーターで指定されたクエリを使用して、Win32_Process という名前のクラスの文字 P で始まるすべての CIM インスタンスを取得します。

Get-CimInstance -Query "SELECT * from Win32_Process WHERE name LIKE 'P%'"

例 4: クラス名とフィルター式を使用してフィルター処理されたクラスのインスタンスを取得する

この例では、Filter パラメーターを使用して、Win32_Process という名前のクラスの文字 P で始まるすべての CIM インスタンスを取得します。

Get-CimInstance -ClassName Win32_Process -Filter "Name like 'P%'"

例 5: キー プロパティのみが入力された CIM インスタンスを取得する

この例では、キー プロパティ を使用して @{ "Handle"=0 } という名前のクラスのメモリに新しい CIM インスタンスを作成し、$xという名前の変数に格納します。 変数は CIM インスタンスとして Get-CimInstance コマンドレットに渡され、特定のインスタンスを取得します。

$instance = @{
    ClassName = 'Win32_Process'
    Namespace = 'root/cimv2'
    Properties = @{
        Handle = 0
    }
    Key = 'Handle'
    ClientOnly = $true
}
$x = New-CimInstance @instance
Get-CimInstance -CimInstance $x

例 6: CIM インスタンスを取得して再利用する

この例では、Win32_Process という名前のクラスの CIM インスタンスを取得し、変数 $x および $yに格納します。 その後、$x 変数は、名の と kernelModeTime プロパティのみを含むテーブルに書式設定され、テーブル AutoSizeに設定されます。

$x, $y = Get-CimInstance -ClassName Win32_Process
$x | Format-Table -Property Name, KernelModeTime -AutoSize

Name                 KernelModeTime
----                 --------------
System Idle Process 157238797968750

例 7: リモート コンピューターから CIM インスタンスを取得する

この例では、Win32_ComputerSystem という名前のクラスの CIM インスタンスを、Server01 および Server02という名前のリモート コンピューターから取得します。

Get-CimInstance -ClassName Win32_ComputerSystem -ComputerName Server01, Server02

例 8: すべてのプロパティではなく、キー プロパティのみを取得する

この例では、オブジェクトとネットワーク トラフィックのサイズを小さくするキー プロパティのみを取得します。

$x = Get-CimInstance -Class Win32_Process -KeyOnly
$x | Invoke-CimMethod -MethodName GetOwner

例 9: すべてのプロパティではなく、プロパティのサブセットのみを取得する

この例では、プロパティのサブセットのみを取得します。これにより、オブジェクトとネットワーク トラフィックのサイズが小さくなります。

Get-CimInstance -Class Win32_Process -Property Name, KernelModeTime
$x = Get-CimInstance -Class Win32_Process -Property Name, KernelModeTime
$x | Invoke-CimMethod -MethodName GetOwner

Property パラメーターを使用して取得したインスタンスは、Set-CimInstanceInvoke-CimMethodなどの他の CIM 操作を実行するために使用できます。

例 10: CIM セッションを使用して CIM インスタンスを取得する

この例では、 コマンドレットを使用して Server01 および New-CimSession という名前のコンピューターに CIM セッションを作成し、セッション情報を $sという名前の変数に格納します。 変数の内容は、Get-CimInstance パラメーターを使用して に渡され、Win32_ComputerSystemという名前のクラスの CIM インスタンスを取得します。

$s = New-CimSession -ComputerName Server01, Server02
Get-CimInstance -ClassName Win32_ComputerSystem -CimSession $s

パラメーター

-CimSession

このコマンドレットに使用する CIM セッションを指定します。 CIM セッションを含む変数、または CIM セッションを作成または取得するコマンド (New-CimSessionGet-CimSession コマンドレットなど) を入力します。 詳細については、about_CimSessionを参照してください。

型:CimSession[]
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-ClassName

CIM インスタンスを取得する CIM クラスの名前を指定します。 PowerShell はローカル WMI サーバーからクラスの一覧を取得してクラス名の一覧を提供するため、タブ補完を使用してクラスの一覧を参照できます。

型:String
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-ComputerName

CIM 操作を実行するコンピューターを指定します。 完全修飾ドメイン名 (FQDN)、NetBIOS 名、または IP アドレスを指定できます。 このパラメーターを指定しない場合、コマンドレットはコンポーネント オブジェクト モデル (COM) を使用してローカル コンピューターで操作を実行します。

このパラメーターを指定すると、コマンドレットは WsMan プロトコルを使用して、指定されたコンピューターへの一時的なセッションを作成します。

同じコンピューターで複数の操作が実行されている場合は、CIM セッションを使用して接続してパフォーマンスを向上させます。

型:String[]
Aliases:CN, ServerName
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Filter

フィルターとして使用する where 句を指定します。 WQL または CQL クエリ言語で句を指定します。 パラメーターの値に WHERE キーワードを含めないでください。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-InputObject

入力として使用する CIM インスタンス オブジェクトを指定します。

CIM インスタンス オブジェクトを既に使用している場合は、CIM サーバーから最新のスナップショットを取得するために、このパラメーターを使用して CIM インスタンス オブジェクトを渡すことができます。 CIM インスタンス オブジェクトを入力として渡すと、Get-CimInstance は、列挙操作またはクエリ操作ではなく、CIM 取得操作を使用してサーバーからオブジェクトを返します。 CIM の取得操作を使用する方が、すべてのインスタンスを取得してフィルター処理するよりも効率的です。

InputObject パラメーターはコレクションを列挙しません。 コレクションが渡されると、エラーがスローされます。 コレクションを操作する場合は、入力をパイプして値を列挙します。

CIM クラスが get 操作を実装していない場合は、InputObject パラメーターを指定するとエラーが返されます。

型:CimInstance
Aliases:CimInstance
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-KeyOnly

キー プロパティが設定されたオブジェクトのみが返されることを示します。 KeyOnly パラメーターを指定すると、ネットワーク経由で転送されるデータの量が減ります。

KeyOnly パラメーターを使用して、オブジェクトのごく一部のみを返します。これは、Set-CimInstanceGet-CimAssociatedInstance コマンドレットなどの他の操作に使用できます。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Namespace

CIM クラスの名前空間を指定します。

既定の名前空間はルート/CIMV2 です。 PowerShell はローカル WMI サーバーから名前空間の一覧を取得して名前空間の一覧を提供するため、タブ補完を使用して名前空間の一覧を参照できます。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-OperationTimeoutSec

コマンドレットがコンピューターからの応答を待機する時間を指定します。 既定では、このパラメーターの値は 0 です。これは、コマンドレットがサーバーの既定のタイムアウト値を使用することを意味します。

OperationTimeoutSec パラメーターが、堅牢な接続再試行タイムアウトの 3 分未満の値に設定されている場合、OperationTimeoutSec パラメーターの値を超えるネットワーク 障害は復旧できません。これは、クライアントが再接続する前にサーバーでの操作がタイムアウトするためです。

型:UInt32
Aliases:OT
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Property

取得するインスタンス プロパティのセットを指定します。 メモリ内またはネットワーク経由で返されるオブジェクトのサイズを小さくする必要がある場合は、このパラメーターを使用します。 返されるオブジェクトには、Property パラメーターを使用してリストされていない場合でも、キー プロパティも含まれます。 クラスの他のプロパティは存在しますが、設定されません。

型:String[]
Aliases:SelectProperties
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Query

CIM サーバーで実行するクエリを指定します。 指定した値に二重引用符 "、単一引用符 '、または円記号 \が含まれている場合は、円記号の前に円記号を付けてエスケープする必要があります。 指定した値で WQL LIKE 演算子を使用する場合は、次の文字を角かっこで囲み、[]で囲む必要があります。パーセント %、アンダースコア _、または角かっこ [

メタデータ クエリを使用してクラスの一覧やイベント クエリを取得することはできません。 クラスの一覧を取得するには、Get-CimClass コマンドレットを使用します。 イベント クエリを取得するには、Register-CimIndicationEvent コマンドレットを使用します。

クエリ言語は、QueryDialect パラメーターを使用して指定できます。

型:String
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-QueryDialect

Query パラメーターに使用するクエリ言語を指定します。 このパラメーターに使用できる値は、WQL または CQL です。 既定値は WQL です。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-ResourceUri

リソース クラスまたはインスタンスのリソース Uniform Resource Identifier (URI) を指定します。 URI は、コンピューター上のディスクやプロセスなどの特定の種類のリソースを識別するために使用されます。

URI は、プレフィックスとリソースへのパスで構成されます。 例えば:

  • http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk
  • http://intel.com/wbem/wscim/1/amt-schema/1/AMT_GeneralSettings

既定では、このパラメーターを指定しない場合は、DMTF 標準リソース URI http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/ が使用され、クラス名が追加されます。

ResourceUri は、WSMan プロトコルを使用して作成された CIM セッション、または WSMan を使用して CIM セッションを作成する ComputerName パラメーターを指定する場合にのみ使用できます。 ComputerName パラメーターを指定せずにこのパラメーターを指定した場合、または DCOM プロトコルを使用して作成された CIM セッションを指定した場合、DCOM プロトコルは ResourceUri パラメーターをサポートしていないため、エラーが発生します。

ResourceUri パラメーターと Filter パラメーターの両方を指定した場合、Filter パラメーターは無視されます。

型:Uri
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Shallow

子クラスのインスタンスを含めずに、クラスのインスタンスが返されることを示します。 既定では、コマンドレットはクラスとその子クラスのインスタンスを返します。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

CimInstance

CIM インスタンス オブジェクトをこのコマンドレットにパイプできます。

出力

CimInstance

このコマンドレットは、CIM サーバー上の CIM インスタンスのスナップショットを表す 1 つ以上の CIM インスタンス オブジェクトを返します。

メモ

PowerShell には、Get-CimInstanceの次のエイリアスが含まれています。

  • ウィンドウズ:
    • gcim

このコマンドレットは、Windows プラットフォームでのみ使用できます。