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>]
Description
此 Cmdlet 僅適用於 Windows 平臺。
此 Cmdlet 會修改 CIM 伺服器上的 CIM 實例。
如果未指定 InputObject 參數,Cmdlet 會以下列其中一種方式運作:
- 如果未指定 ComputerName 參數或 CimSession 參數,則此 Cmdlet 會使用元件物件模型 (COM) 會話在本機 Windows Management Instrumentation (WMI) 上運作。
- 如果指定 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-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
這個範例會使用 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 實例
此範例會使用 Cmdlet 建立具有指定屬性的 New-CimInstance
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
輸出。
類型: | CimSession[] |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-ComputerName
指定您要執行 CIM 作業的電腦名稱。 您可以指定完整功能變數名稱 (FQDN) 或 NetBIOS 名稱。
如果您未指定此參數,Cmdlet 會使用元件物件模型 (COM) 在本機計算機上執行作業。
如果您指定此參數,Cmdlet 會使用 WsMan 通訊協定,為指定的電腦建立暫存會話。
如果在相同電腦上執行多個作業,則使用 CIM 作業進行連線可提供更佳的效能。
類型: | String[] |
別名: | CN, ServerName |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Confirm
執行 Cmdlet 之前先提示您確認。
類型: | SwitchParameter |
別名: | cf |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-InputObject
指定要作為輸入的 CIM 實例物件。
InputObject 參數不會列舉集合。 如果傳遞集合,則會擲回錯誤。 使用集合時,使用管線傳送輸入來列舉值。
類型: | CimInstance |
別名: | CimInstance |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-Namespace
指定 CIM 作業的命名空間。 默認命名空間為 root/cimv2。 您可以使用索引標籤自動完成來瀏覽命名空間清單,因為 PowerShell 會從本機 WMI 伺服器取得命名空間清單,以提供命名空間清單。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-OperationTimeoutSec
指定 Cmdlet 等候電腦回應的時間量。 根據預設,此參數的值是0,這表示 Cmdlet 會使用伺服器的預設逾時值。
如果 OperationTimeoutSec 參數設定為小於強固連線重試逾時 3 分鐘的值,則無法復原最後超過 OperationTimeoutSec 參數值的網路失敗,因為伺服器上的作業會在用戶端重新連線之前逾時。
類型: | UInt32 |
別名: | OT |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-PassThru
會傳回 物件,代表您正在使用的專案。 根據預設,此 Cmdlet 不會產生任何輸出。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Property
將 CIM 實例的屬性指定為哈希表(使用名稱/值組)。 只會變更使用此參數指定的屬性。 CIM 實例的其他屬性不會變更。
類型: | IDictionary |
別名: | Arguments |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-Query
指定要在 CIM 伺服器上執行的查詢,以擷取要在其中執行 Cmdlet 的 CIM 實例。 您可以使用 QueryDialect 參數來指定查詢方言。
如果指定的值包含雙引號 ("
)、單引號 ('
) 或反斜杠 (\
),您必須在字元前面加上反斜杠 (\
) 字元,以逸出這些字元。 如果指定的值使用 WQL LIKE 運算子,則必須以方括弧 (): 百分比 (%
), 底線 (_
[]
), 或左方括弧 () 括住下列字元,[
以逸出下列字元。
類型: | String |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-QueryDialect
指定用於 Query 參數的查詢語言。 此參數可接受的值為: WQL 或 CQL。 預設值為 WQL。
類型: | String |
Position: | Named |
預設值: | None |
必要: | 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 會話搭配使用,或在指定 ComputerName 參數時使用 WSMan 建立 CIM 會話。 如果您在未指定 ComputerName 參數的情況下指定此參數,或指定使用 DCOM 通訊協定建立的 CIM 會話,您將會收到錯誤,因為 DCOM 通訊協定不支援 ResourceURI 參數。
如果同時 指定 ResourceUri 參數和 Filter 參數, 則會忽略 Filter 參數。
類型: | Uri |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-WhatIf
顯示執行 Cmdlet 後會發生的情況。 未執行 Cmdlet。
類型: | SwitchParameter |
別名: | wi |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
輸出
None
根據預設,此 Cmdlet 不會傳回任何輸出。
當您使用 PassThru 參數時,這個 Cmdlet 會傳回修改過的 CIM 實例物件。
備註
PowerShell 包含下列的 Set-CimInstance
別名:
- Windows:
scim
此 Cmdlet 僅適用於 Windows 平臺。