共用方式為


Set-CimInstance

藉由呼叫 CIM 類別的 ModifyInstance 方法,修改 CIM 伺服器上的 CIM 實例。

Syntax

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>]

Description

此 Cmdlet 僅適用於 Windows 平臺。

此 Cmdlet 會修改 CIM 伺服器上的 CIM 實例。

如果未指定 InputObject 參數,Cmdlet 會以下列其中一種方式運作:

  • 如果未指定 ComputerName 參數或 CimSession 參數,則此 Cmdlet 可在本機 Windows Management Instrumentation (WMI) 使用元件物件模型 (COM) 會話。
  • 如果指定 ComputerName 參數或 CimSession 參數,則此 Cmdlet 適用於 ComputerName 參數或 CimSession 參數所指定的 CIM 伺服器。

如果指定 InputObject 參數,Cmdlet 會以下列其中一種方式運作:

  • 如果未指定 ComputerName 參數或 CimSession 參數,則此 Cmdlet 會使用輸入物件的 CIM 會話或電腦名稱。
  • 如果指定 ComputerName 參數或 CimSession 參數,則此 Cmdlet 會使用 CimSession 參數值或 ComputerName 參數值。 這並不常見。

範例

範例 1:設定 CIM 實例

本範例會使用 Query 參數,將 VariableValue 屬性的值設定為 abcd。 您可以修改符合 Windows Management Instrumentation 查詢語言的實例, (WQL) 查詢。

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

範例 2:使用管線設定 CIM 實例屬性

此範例會使用 Get-CimInstance Cmdlet 擷取由Query 參數篩選的 CIM 實例物件。 Cmdlet 會將 Set-CimInstanceVariableValue 屬性的值修改為 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

這個範例會使用 Get-CimInstance擷取由Query參數篩選的 CIM 實例物件至變數$x,然後將變數的內容傳遞至 Set-CimInstance Cmdlet。 Set-CimInstance 然後將 VariableValue 屬性修改為 somevalue。 因為使用 Passthru 參數,所以這個範例會傳回已修改的 CIM 實例物件。

範例 4:設定 CIM 實例屬性

這個範例會使用 Get-CimInstance Cmdlet 將 Query 參數中指定的 CIM 實例物件擷取至變數$x,並變更物件的 VariableValue 屬性值以變更。 接著會使用 Set-CimInstance Cmdlet 儲存 CIM 實例物件。 因為使用 Passthru 參數,所以這個範例會傳回已修改的 CIM 實例物件。

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

範例 5:顯示使用 WhatIf 修改的 CIM 實例清單

本範例使用 Common 參數 WhatIf 來指定不應該完成修改,但只輸出完成時會發生什麼事。

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

範例 6:從使用者確認之後設定 CIM 實例

這個範例會使用 Common 參數 Confirm 來指定只有在使用者確認之後,才應該完成修改。

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

範例 7:設定建立的 CIM 實例

此範例會使用 New-CimInstance Cmdlet 建立具有指定屬性的 CIM 實例,並將其內容擷取至變數 $x。 變數接著會傳遞至 Set-CimInstance Cmdlet,將 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

在遠端電腦上執行 Cmdlet。 輸入計算機名稱或會話物件,例如 或 Get-CimSession Cmdlet 的New-CimSession輸出。

Type:CimSession[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ComputerName

指定您要執行 CIM 作業的電腦名稱。 您可以在 FQDN) 或 NetBIOS 名稱 (指定完整功能變數名稱。

如果您未指定此參數,Cmdlet 會使用元件物件模型 (COM) 在本機計算機上執行作業。

如果您指定此參數,Cmdlet 會使用 WsMan 通訊協定,對指定的電腦建立暫存會話。

如果在同一部計算機上執行多個作業,則使用 CIM 會話進行連線可提供更佳的效能。

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

-Confirm

在執行 Cmdlet 前提示您確認。

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

-InputObject

指定要做為輸入的 CIM 實例物件。

InputObject 參數不會列舉集合。 如果傳遞集合,則會擲回錯誤。 使用集合時,使用管線傳送輸入來列舉值。

Type:CimInstance
Aliases:CimInstance
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Namespace

指定 CIM 作業的命名空間。 默認命名空間為 root/cimv2。 您可以使用索引標籤完成來瀏覽命名空間清單,因為 PowerShell 會從本機 WMI 伺服器取得命名空間清單,以提供命名空間清單。

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

-OperationTimeoutSec

指定 Cmdlet 等候電腦回應的時間量。 根據預設,此參數的值是0,這表示 Cmdlet 會使用伺服器的預設逾時值。

如果 OperationTimeoutSec 參數設定為小於強固連線重試逾時 3 分鐘的值,則無法復原最後超過 OperationTimeoutSec 參數值的網路失敗,因為伺服器上的作業會在用戶端重新連線之前逾時。

Type:UInt32
Aliases:OT
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

傳回代表您正在使用之項目的物件。 根據預設,此 Cmdlet 不會產生任何輸出。

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

-Property

使用名稱/值組) ,將 CIM 實例的屬性指定為哈希表 (。 只會變更使用此參數指定的屬性。 CIM 實例的其他屬性不會變更。

Type:IDictionary
Aliases:Arguments
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Query

指定要在 CIM 伺服器上執行的查詢,以擷取要在其中執行 Cmdlet 的 CIM 實例。 您可以使用 QueryDialect 參數來指定查詢方言。

如果指定的值包含雙引號 () " 、單引號 (') 或反斜杠 () \ ,您必須在前面加上反斜杠 (\) 字元來逸出這些字元。 如果指定的值使用 WQL LIKE 運算符,則必須將下列字元括在方括號 () [] :百分比 (%) 、底線 (_) 或左方括號 ([) 。

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

-QueryDialect

指定用於 Query 參數的查詢語言。 此參數可接受的值為: WQLCQL。 預設值為 WQL

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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 會話搭配使用,或指定 ComputerName 參數時使用 WSMan 建立 CIM 會話。 如果您在未指定 ComputerName 參數的情況下指定此參數,或者如果您指定使用 DCOM 通訊協定建立的 CIM 會話,您將會收到錯誤,因為 DCOM 通訊協定不支援 ResourceURI 參數。

如果同時指定 ResourceUri 參數和 Filter 參數,則會忽略 Filter 參數。

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

-WhatIf

顯示執行 Cmdlet 後會發生的情況。 Cmdlet 並不會執行。

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

輸入

CimInstance

輸出

None

根據預設,此 Cmdlet 不會傳回任何輸出。

CimInstance

當您使用 Passthru 參數時,此 Cmdlet 會傳回修改過的 CIM 實例物件。

備註

PowerShell 包含下列的 Set-CimInstance別名:

  • Windows:
    • scim

此 Cmdlet 僅適用於 Windows 平臺。