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>]
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) 查詢的實例。
$instance = @ {
Query = 'Select * from Win32_Environment where name LIKE "testvar%"'
Property = @{VariableValue="abcd"}
}
Set-CimInstance @instance
範例 2:使用管線設定 CIM 實例屬性
此範例會使用 Cmdlet,擷取由 Get-CimInstance 參數篩選的 CIM 實例物件。
Set-CimInstance Cmdlet 會將 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
這個範例會使用 $x擷取由Query 參數篩選為變數 Get-CimInstance 的 CIM 實例對象,然後將變數的內容傳遞至 Set-CimInstance Cmdlet。
Set-CimInstance 接著將 VariableValue 屬性修改為 某些值。 由於使用 passThru 參數,此範例會傳回修改過的 CIM 實例物件。
範例 4:設定 CIM 實例屬性
這個範例會使用 Cmdlet,將 $x 參數中指定的 CIM 實例物件擷取至變數 Get-CimInstance,並變更要變更物件的 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 來指定不應該完成修改,但只會輸出完成時會發生什麼情況。
$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 Cmdlet 建立具有指定屬性的 CIM 實例,並將其內容擷取至變數 $x。 變數接著會傳遞至 Set-CimInstance Cmdlet,其會將 variableValue 屬性 的值修改為 somevalue。
由於使用 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
在遠端電腦上執行 Cmdlet。 輸入計算機名稱或會話物件,例如 New-CimSession 或 Get-CimSession Cmdlet 的輸出。
參數屬性
| 類型: | |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
CimInstanceSessionSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
QuerySessionSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-ComputerName
指定您要執行 CIM 作業的電腦名稱。 您可以指定完全合格的網域名稱(FQDN)或 NetBIOS 名稱。
如果您未指定此參數,Cmdlet 會使用元件物件模型 (COM) 在本機計算機上執行作業。
如果您指定此參數,Cmdlet 會使用 WsMan 通訊協定,為指定的電腦建立暫存會話。
如果在相同電腦上執行多個作業,則使用 CIM 作業進行連線可提供更佳的效能。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | 中國, 伺服器名稱 |
參數集
CimInstanceComputerSet
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
QueryComputerSet
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Confirm
在執行 Cmdlet 之前,提示您進行確認。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | cf |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-InputObject
指定要作為輸入的 CIM 實例物件。
InputObject 參數不進行集合的列舉操作。 如果傳遞集合,就會拋出錯誤。 使用資料集合時,透過管道傳送輸入以列舉值。
參數屬性
| 類型: | CimInstance |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | CimInstance |
參數集
CimInstanceComputerSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CimInstanceSessionSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Namespace
指定 CIM 作業的命名空間。 預設命名空間 根/CIMV2。 您可以使用標籤補全功能來瀏覽命名空間清單,因為 PowerShell 會從本機 WMI 伺服器獲取命名空間來提供此清單。
參數屬性
| 類型: | String |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
QuerySessionSet
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
QueryComputerSet
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-OperationTimeoutSec
指定 Cmdlet 等候電腦回應的時間量。 根據預設,此參數的值是0,這表示 Cmdlet 會使用伺服器的預設逾時值。
如果 OperationTimeoutSec 參數設定為小於 3 分鐘的穩固連線重試逾時,則當網路故障持續時間超過 OperationTimeoutSec 參數的值時,將無法復原,因為伺服器上的操作會在客戶端重新連接之前超時。
參數屬性
| 類型: | UInt32 |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | OT |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-PassThru
返回一個物件,代表您正在處理的項目。 根據預設,此 Cmdlet 不會產生任何輸出。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Property
將 CIM 實例的屬性指定為哈希表(使用名稱/值組)。 只會變更使用此參數指定的屬性。 CIM 實例的其他屬性不會變更。
參數屬性
| 類型: | IDictionary |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | 論點 |
參數集
CimInstanceComputerSet
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
CimInstanceSessionSet
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
QuerySessionSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
QueryComputerSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-Query
指定要在 CIM 伺服器上執行的查詢,以擷取要在其中執行 Cmdlet 的 CIM 實例。 您可以使用 QueryDialect 參數來指定查詢方言。
如果指定的值包含雙引號(")、單引號('),或反斜杠(\),您必須以反斜杠(\)字元前置詞來逸出這些字元。 如果指定的值使用 WQL LIKE 運算符,則必須以方括號([]):百分比(%)、底線(_)或左方括號([)括住下列字元來逸出下列字元。
參數屬性
| 類型: | String |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
QuerySessionSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
QueryComputerSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-QueryDialect
指定用於 Query 參數的查詢語言。 此參數可接受的值為:WQL 或 CQL 。 預設值為 WQL。
參數屬性
| 類型: | String |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
QuerySessionSet
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
QueryComputerSet
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-ResourceUri
指定資源類別或實例的資源統一資源標識碼(URI)。 URI 可用來識別電腦上的特定資源類型,例如磁碟或進程。
URI 包含前置詞和資源的路徑。 例如:
http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDiskhttp://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 |
| 不要顯示: | False |
參數集
CimInstanceComputerSet
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
CimInstanceSessionSet
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-WhatIf
顯示 Cmdlet 執行時會發生什麼事。 指令未執行。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | 無線 |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CommonParameters
此 Cmdlet 支援一般參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。
輸入
CimInstance
輸出
None
根據預設,此 Cmdlet 不會傳回任何輸出。
CimInstance
當您使用 PassThru 參數時,這個 Cmdlet 會傳回修改過的 CIM 實例物件。
備註
PowerShell 包含下列 Set-CimInstance的別名:
- 窗戶:
scim
此 Cmdlet 僅適用於 Windows 平臺。