次の方法で共有


Set-CimInstance

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

構文

CimInstanceComputerSet (既定)

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

CimInstanceSessionSet

Set-CimInstance
    [-InputObject] <CimInstance>
    -CimSession <CimSession[]>
    [-ResourceUri <Uri>]
    [-OperationTimeoutSec <UInt32>]
    [-Property <IDictionary>]
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

QuerySessionSet

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

QueryComputerSet

Set-CimInstance
    [-Query] <String>
    -Property <IDictionary>
    [-ComputerName <String[]>]
    [-Namespace <String>]
    [-OperationTimeoutSec <UInt32>]
    [-QueryDialect <String>]
    [-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) クエリに一致するインスタンスを変更できます。

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

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

この例では、 コマンドレットを使用して、Get-CimInstance パラメーターでフィルター処理された 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 インスタンス オブジェクトを $xを使用して変数 Get-CimInstance に取得し、変数の内容を Set-CimInstance コマンドレットに渡します。 次 Set-CimInstanceVariableValue プロパティを変更して、一部の値 します。 PassThru パラメーターが使用されているため、この例では変更された CIM インスタンス オブジェクトを返します。

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

この例では、Query パラメーターで指定された CIM インスタンス オブジェクトを、$x コマンドレットを使用して変数 Get-CimInstance に取得し、変更するオブジェクトの 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 共通パラメーターを使用して、変更を行う必要はなく、行われた場合に何が起こるかを出力するように指定します。

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

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

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

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

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

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

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

パラメーター

-CimSession

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

パラメーターのプロパティ

型:

CimSession[]

規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

CimInstanceSessionSet
配置:Named
必須:True
パイプラインからの値:True
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False
QuerySessionSet
配置:Named
必須:True
パイプラインからの値:True
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-ComputerName

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

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

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

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

パラメーターのプロパティ

型:

String[]

規定値:None
ワイルドカードのサポート:False
DontShow:False
Aliases:CN, サーバー名

パラメーター セット

CimInstanceComputerSet
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False
QueryComputerSet
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-Confirm

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

パラメーターのプロパティ

型:SwitchParameter
規定値:False
ワイルドカードのサポート:False
DontShow:False
Aliases:cf

パラメーター セット

(All)
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-InputObject

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

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

パラメーターのプロパティ

型:CimInstance
規定値:None
ワイルドカードのサポート:False
DontShow:False
Aliases:CimInstance

パラメーター セット

CimInstanceComputerSet
配置:0
必須:True
パイプラインからの値:True
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False
CimInstanceSessionSet
配置:0
必須:True
パイプラインからの値:True
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-Namespace

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

パラメーターのプロパティ

型:String
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

QuerySessionSet
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False
QueryComputerSet
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False

-OperationTimeoutSec

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

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

パラメーターのプロパティ

型:UInt32
規定値:None
ワイルドカードのサポート:False
DontShow:False
Aliases:OT

パラメーター セット

(All)
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-PassThru

作業中のアイテムを表すオブジェクトを返します。 既定では、このコマンドレットは出力を生成しません。

パラメーターのプロパティ

型:SwitchParameter
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

(All)
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-Property

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

パラメーターのプロパティ

型:IDictionary
規定値:None
ワイルドカードのサポート:False
DontShow:False
Aliases:論争

パラメーター セット

CimInstanceComputerSet
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False
CimInstanceSessionSet
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False
QuerySessionSet
配置:Named
必須:True
パイプラインからの値:False
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False
QueryComputerSet
配置:Named
必須:True
パイプラインからの値:False
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False

-Query

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

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

パラメーターのプロパティ

型:String
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

QuerySessionSet
配置:0
必須:True
パイプラインからの値:False
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False
QueryComputerSet
配置:0
必須:True
パイプラインからの値:False
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False

-QueryDialect

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

パラメーターのプロパティ

型:String
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

QuerySessionSet
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False
QueryComputerSet
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False

-ResourceUri

リソースクラスまたはインスタンスの統一リソース識別子 (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
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

CimInstanceComputerSet
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False
CimInstanceSessionSet
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False

-WhatIf

コマンドレットを実行した場合の動作を示します。 コマンドレットは実行されません。

パラメーターのプロパティ

型:SwitchParameter
規定値:False
ワイルドカードのサポート:False
DontShow:False
Aliases:ウィスコンシン

パラメーター セット

(All)
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

CommonParameters

このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。

入力

CimInstance

出力

None

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

CimInstance

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

メモ

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

  • ウィンドウズ:
    • scim

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