Set-CimInstance

CIM クラスの ModifyInstance メソッドを呼び出して、CIM サーバー上の CIM インスタンスを変更します。

構文

Set-CimInstance
   [-ComputerName <String[]>]
   [-ResourceUri <Uri>]
   [-OperationTimeoutSec <UInt32>]
   [-InputObject] <CimInstance>
   [-Property <IDictionary>]
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-CimInstance
   -CimSession <CimSession[]>
   [-ResourceUri <Uri>]
   [-OperationTimeoutSec <UInt32>]
   [-InputObject] <CimInstance>
   [-Property <IDictionary>]
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-CimInstance
   -CimSession <CimSession[]>
   [-Namespace <String>]
   [-OperationTimeoutSec <UInt32>]
   [-Query] <String>
   [-QueryDialect <String>]
   -Property <IDictionary>
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-CimInstance
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [-OperationTimeoutSec <UInt32>]
   [-Query] <String>
   [-QueryDialect <String>]
   -Property <IDictionary>
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

説明

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

このコマンドレットは、CIM サーバー上の CIM インスタンスを変更します。

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

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

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

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

例 1: CIM インスタンスを設定する

次の使用例は、Query パラメーターを使用して、VariableValue プロパティの値を abcd に設定します。 Windows Management Instrumentation Query Language (WQL) クエリに一致するインスタンスを変更できます。

Set-CimInstance -Query 'Select * from Win32_Environment where name LIKE "testvar%"' -Property @{VariableValue="abcd"}

例 2: パイプラインを使用して CIM インスタンス プロパティを設定する

この例では、Get-CimInstance コマンドレットを使用して、Query パラメーターでフィルター処理された CIM インスタンス オブジェクトを取得します。 Set-CimInstance コマンドレットは、VariableValue プロパティの値を abcd に変更します。

Get-CimInstance -Query 'Select * from Win32_Environment where name LIKE "testvar%"' |
  Set-CimInstance -Property @{VariableValue="abcd"}

例 3: 入力オブジェクトを使用して CIM インスタンス・プロパティーを設定する

$x = Get-CimInstance -Query 'Select * from Win32_Environment where Name="testvar"'
Set-CimInstance -InputObject $x -Property @{VariableValue="somevalue"} -PassThru

この例では、クエリ パラメーターでフィルター処理された CIM インスタンス オブジェクトを、Get-CimInstanceを使用して$x変数に取得し、変数の内容を Set-CimInstance コマンドレットに渡します。 Set-CimInstance 次に、 VariableValue プロパティを somevalue に変更します。 Passthru パラメーターが使用されているため、この例では変更された CIM インスタンス オブジェクトを返します。

例 4: CIM インスタンス・プロパティーを設定する

この例では、Get-CimInstance コマンドレットを使用して、Query パラメーターで指定された CIM インスタンス オブジェクトを変数$xに取得し、変更するオブジェクトの VariableValue プロパティ値を変更します。 CIM インスタンス オブジェクトは、 Set-CimInstance コマンドレットを使用して保存されます。 Passthru パラメーターが使用されているため、この例では変更された CIM インスタンス オブジェクトを返します。

$x = Get-CimInstance -Query 'Select * from Win32_Environment where name="testvar"'
$x.VariableValue = "Change"
Set-CimInstance -CimInstance $x -PassThru

例 5: WhatIf を使用して変更する CIM インスタンスのリストを表示する

この例では、共通パラメーター WhatIf を使用して、変更を行う必要はなく、行われた場合に何が起こるかを出力するように指定します。

Set-CimInstance -Query 'Select * from Win32_Environment where name LIKE "testvar%"' -Property @{VariableValue="abcd"} -WhatIf

例 6: ユーザーからの確認後に CIM インスタンスを設定する

この例では、共通パラメーター Confirm を使用して、ユーザーからの確認後にのみ変更を行う必要があることを指定します。

Set-CimInstance -Query 'Select * from Win32_Environment where name LIKE "testvar%"' -Property @{VariableValue="abcd"} -Confirm

例 7: 作成された CIM インスタンスを設定する

この例では、 New-CimInstance コマンドレットを使用して、指定したプロパティを持つ CIM インスタンスを作成し、その内容を変数 $xに取得します。 その後、変数が Set-CimInstance コマンドレットに渡され、 VariableValue プロパティの値が somevalue に変更されます。 Passthru パラメーターが使用されているため、この例では変更された CIM インスタンス オブジェクトを返します。

$x = New-CimInstance -ClassName Win32_Environment -Property @{Name="testvar";UserName="domain\user"} -Key Name,UserName -ClientOnly
Set-CimInstance -CimInstance $x -Property @{VariableValue="somevalue"} -PassThru

パラメーター

-CimSession

リモート コンピューターでコマンドレットを実行します。 コンピューター名またはセッション オブジェクト ( New-CimSession または Get-CimSession コマンドレットの出力など) を入力します。

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

-ComputerName

CIM 操作を実行するコンピューターの名前を指定します。 完全修飾ドメイン名 (FQDN) または NetBIOS 名を指定できます。

このパラメーターを指定しない場合、コマンドレットはコンポーネント オブジェクト モデル (COM) を使用してローカル コンピューターで操作を実行します。

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

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

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

-Confirm

コマンドレットの実行前に確認を求めるメッセージが表示されます。

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

-InputObject

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

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

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

-Namespace

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

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

-OperationTimeoutSec

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

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

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

-PassThru

作業中の項目を表すオブジェクトを返します。 既定では、このコマンドレットによる出力はありません。

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

-Property

CIM インスタンスのプロパティをハッシュ テーブルとして指定します (名前と値のペアを使用)。 このパラメーターを使用して指定されたプロパティのみが変更されます。 CIM インスタンスの他のプロパティは変更されません。

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

-Query

CIM サーバーで実行して、コマンドレットを実行する CIM インスタンスを取得するクエリを指定します。 QueryDialect パラメーターを使用して、クエリ言語を指定できます。

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

型:String
配置:0
規定値: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

-WhatIf

コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

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

入力

CimInstance

出力

None

既定では、このコマンドレットは出力を返しません。

CimInstance

Passthru パラメーターを使用すると、このコマンドレットは変更された CIM インスタンス オブジェクトを返します。

メモ

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

  • Windows:
    • scim

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