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-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 實例
此範例會使用 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 參數的查詢語言。 此參數可接受的值為: WQL 或 CQL。 預設值為 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 |
輸入
輸出
None
根據預設,此 Cmdlet 不會傳回任何輸出。
當您使用 Passthru 參數時,此 Cmdlet 會傳回修改過的 CIM 實例物件。
備註
PowerShell 包含下列的 Set-CimInstance
別名:
- Windows:
scim
此 Cmdlet 僅適用於 Windows 平臺。