Set-WmiInstance
建立或更新現有 Windows Management Instrumentation (WMI) 類別的執行個體。
語法
Set-WmiInstance [-Class] <string> [[-Arguments] <hashtable>] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-AsJob] [-PutType {<None> | <UpdateOnly> | <CreateOnly> | <UpdateOrCreate>}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]
Set-WmiInstance [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-AsJob] [-PutType {<None> | <UpdateOnly> | <CreateOnly> | <UpdateOrCreate>}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]
Set-WmiInstance -InputObject <ManagementObject> [-Arguments <hashtable>] [-AsJob] [-PutType {<None> | <UpdateOnly> | <CreateOnly> | <UpdateOrCreate>}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]
Set-WmiInstance -Path <string> [-Arguments <hashtable>] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-AsJob] [-PutType {<None> | <UpdateOnly> | <CreateOnly> | <UpdateOrCreate>}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]
Set-WmiInstance [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-AsJob] [-PutType {<None> | <UpdateOnly> | <CreateOnly> | <UpdateOrCreate>}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]
Set-WmiInstance [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-AsJob] [-PutType {<None> | <UpdateOnly> | <CreateOnly> | <UpdateOrCreate>}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]
描述
Set-WmiInstance Cmdlet 會建立或更新現有 WMI 類別的執行個體。建立或更新的執行個體會寫入 WMI 存放庫。
參數
-Arguments <hashtable>
指定要變更之屬性的名稱以及該屬性的新值。名稱和值必須是名稱值組的形式。此名稱值組會當做雜湊表傳遞給命令列。例如:
-argument @{Setting1=1; Setting2=5; Setting3="test"}。
必要? |
false |
位置? |
2 |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-AsJob
以背景工作執行命令。此參數可以用來執行需時甚久才能完成的命令。
使用 AsJob 參數時,此命令會傳回代表背景工作的物件,然後顯示命令提示字元。工作完成時,您可以繼續在工作階段中執行工作。如果對遠端電腦使用 Set-WmiObject,工作會建立在本機電腦上,而遠端電腦的結果會自動傳回到本機電腦。若要管理工作,請使用有 Job 名詞的 Cmdlet (Job Cmdlet)。若要取得工作結果,請使用 Receive-Job Cmdlet。
注意,若要搭配遠端電腦使用此參數,本機和遠端電腦就必須設定成使用遠端功能。此外,在 Windows Vista 和較新版本的 Windows 上必須使用 [以系統管理員身分執行] 選項啟動 Windows PowerShell。如需詳細資訊,請參閱 about_Remote_Requirements。
如需 Windows PowerShell 背景工作的詳細資訊,請參閱 about_Jobs 和 about_Remote_Jobs。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Authentication <AuthenticationLevel>
指定要與 WMI 連線一併使用的驗證層級。有效的值包括:
-1:Unchanged
0:Default
1:None (不執行驗證)。
2:Connect (只有當用戶端與應用程式建立關聯性時才會執行驗證)。
3:Call (當應用程式收到要求時只會在每個呼叫的開頭執行驗證)。
4:Packet (對所有從用戶端接收的資料執行驗證)。
5:PacketIntegrity (對所有在用戶端與應用程式之間傳輸的資料進行驗證及確認)。
6:PacketPrivacy (使用其他驗證等級的屬性,而且加密所有的資料)。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Authority <string>
指定要用來驗證 WMI 連線的授權單位。您可以指定標準 NTLM 或 Kerberos 驗證。若要使用 NTLM,請將授權單位設定設為 ntlmdomain:<DomainName>,其中 <DomainName> 可識別有效的 NTLM 網域名稱。若要使用 Kerberos,請指定 kerberos:<DomainName>\<ServerName>"。連線到本機電腦時不能包含授權單位設定。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Class <string>
指定 WMI 類別的名稱。
必要? |
true |
位置? |
1 |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-ComputerName <string[]>
指定要對其執行管理作業的電腦。此值可以是完整網域名稱、NetBIOS 名稱或 IP 位址。請使用本機電腦名稱、localhost 或點 (.),指定本機電腦。本機電腦為預設值。當遠端電腦所在的網域與使用者的網域不同時,必須使用完整網域名稱。您可以經由管道將值輸出至此參數,藉此設定其值。
此參數並不依存於 Windows PowerShell 遠端 (此遠端使用 WS-Management)。即使沒有將電腦設定成執行 WS-Management 遠端命令,也可以使用 Get-WmiObject 的 ComputerName 參數。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Credential <PSCredential>
指定具有執行此動作之權限的使用者帳戶。預設為目前使用者。請輸入使用者名稱,例如 "User01"、"Domain01\User01" 或 User@Contoso.com。或者輸入 PSCredential 物件,例如 Get-Credential Cmdlet 所傳回的物件。當您輸入使用者名稱時,會提示您輸入密碼。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-EnableAllPrivileges
在命令呼叫 WMI 之前啟用目前使用者的所有權限。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Impersonation <ImpersonationLevel>
指定要使用的模擬層級。有效的值包括:
0:Default (讀取預設模擬等級的本機登錄,該等級通常設為「3:Impersonate」)。
1:Anonymous (隱藏呼叫端的認證)。
2:Identify (允許物件查詢呼叫端的認證)。
3:Impersonate (允許物件使用呼叫端的認證)。
4:Delegate (讓物件允許其他物件使用呼叫端的認證)。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-InputObject <ManagementObject>
指定當做輸入使用的 ManagementObject 物件。使用這個參數時,會忽略除 Arguments 參數以外的所有其他參數。
必要? |
true |
位置? |
named |
預設值 |
|
接受管線輸入? |
true (ByValue) |
接受萬用字元? |
false |
-Locale <string>
指定 WMI 物件慣用的地區設定。您可以依照慣用順序以 MS_<LCID> 格式將 Locale 參數的值指定為陣列。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Namespace <string>
與 Class 參數搭配使用時,此參數指定所參照的 WMI 類別所在的 WMI 存放庫命名空間。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Path <string>
指定您要建立或更新之執行個體的 WMI 物件路徑。
必要? |
true |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-PutType <PutType>
表示應該建立還是更新 WMI 執行個體。有效的值包括:
UpdateOnly:更新現有的 WMI 執行個體。
CreateOnly:建立新的 WMI 執行個體。
UpdateOrCreate:如果有 WMI 執行個體則進行更新,否則建立新的執行個體。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-ThrottleLimit <int>
允許使用者為可同時執行的 WMI 作業數目指定節流值。此參數會與 AsJob 參數一起使用。節流閥限制只適用於目前的命令,並不適用於工作階段或電腦。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Confirm
在執行命令前先提示確認。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-WhatIf
說明執行命令時將會發生何種情況,但不會實際執行命令。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
<CommonParameters>
這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.
輸入和輸出
輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。
輸入 |
無 這個 Cmdlet 不接受輸入。 |
輸出 |
無 這個 Cmdlet 不會產生輸出。 |
範例 1
C:\PS>Set-WMIInstance -class Win32_WMISetting -argument @{LoggingLevel=2}
__GENUS : 2
__CLASS : Win32_WMISetting
__SUPERCLASS : CIM_Setting
__DYNASTY : CIM_Setting
__RELPATH : Win32_WMISetting=@
__PROPERTY_COUNT : 27
__DERIVATION : {CIM_Setting}
__SERVER : SYSTEM01
__NAMESPACE : root\cimv2
__PATH : \\SYSTEM01\root\cimv2:Win32_WMISetting=@
ASPScriptDefaultNamespace : \\root\cimv2
ASPScriptEnabled : False
AutorecoverMofs : {%windir%\system32\wbem\cimwin32.mof, %windir%\system32\wbem\ncprov.mof, %windir%\syst
em32\wbem\wmipcima.mof, %windir%\system32\wbem\secrcw32.mof...}
AutoStartWin9X :
BackupInterval :
BackupLastTime :
BuildVersion : 6001.18000
Caption :
DatabaseDirectory : C:\Windows\system32\wbem\repository
DatabaseMaxSize :
Description :
EnableAnonWin9xConnections :
EnableEvents : False
EnableStartupHeapPreallocation : False
HighThresholdOnClientObjects :
HighThresholdOnEvents : 20000000
InstallationDirectory : C:\Windows\system32\wbem
LastStartupHeapPreallocation :
LoggingDirectory : C:\Windows\system32\wbem\Logs\
LoggingLevel : 2
LowThresholdOnClientObjects :
LowThresholdOnEvents : 10000000
MaxLogFileSize : 65536
MaxWaitOnClientObjects :
MaxWaitOnEvents : 2000
MofSelfInstallDirectory :
SettingID :
描述
-----------
這個命令會將 WMI 記錄層次設定為 2,並在引數參數中傳遞要設定的屬性和值 (兩者一起視為值組)。此參數會採用雜湊表,此表是由 @{property = value} 建構所定義。傳回的類別資訊會反映新的值。
範例 2
C:\PS>set-wmiinstance -class win32_environment -argument @{Name="testvar";VariableValue="testvalue";UserName="<SYSTEM>"}
__GENUS : 2
__CLASS : Win32_Environment
__SUPERCLASS : CIM_SystemResource
__DYNASTY : CIM_ManagedSystemElement
__RELPATH : Win32_Environment.Name="testvar",UserName="<SYSTEM>"
__PROPERTY_COUNT : 8
__DERIVATION : {CIM_SystemResource, CIM_LogicalElement, CIM_ManagedSystemElement}
__SERVER : SYSTEM01
__NAMESPACE : root\cimv2
__PATH : \\SYSTEM01\root\cimv2:Win32_Environment.Name="testvar",UserName="<SYSTEM>"
Caption : <SYSTEM>\testvar
Description : <SYSTEM>\testvar
InstallDate :
Name : testvar
Status : OK
SystemVariable : True
UserName : <SYSTEM>
VariableValue : testvalue
描述
-----------
這個命令會建立值為 "testvalue" 的 testvar 環境變數。它是透過建立 Win32_Environment WMI 類別的新執行個體來完成這個動作。請注意,這項作業需要適當的認證,而且您必須重新啟動 Windows PowerShell 才能看見新的環境變數。
範例 3
C:\PS>Set-WMIInstance -class Win32_WMISetting -argument @{LoggingLevel=2} -computername system01, system02, system03
__GENUS : 2
__CLASS : Win32_WMISetting
__SUPERCLASS : CIM_Setting
__DYNASTY : CIM_Setting
__RELPATH : Win32_WMISetting=@
__PROPERTY_COUNT : 27
__DERIVATION : {CIM_Setting}
__SERVER : SYSTEM01
__NAMESPACE : root\cimv2
__PATH : \\SYSTEM01\root\cimv2:Win32_WMISetting=@
ASPScriptDefaultNamespace : \\root\cimv2
ASPScriptEnabled : False
AutorecoverMofs : {%windir%\system32\wbem\cimwin32.mof, %windir%\system32\wbem\ncprov.mof, %windir%\syst
em32\wbem\wmipcima.mof, %windir%\system32\wbem\secrcw32.mof...}
AutoStartWin9X :
BackupInterval :
BackupLastTime :
BuildVersion : 6001.18000
Caption :
DatabaseDirectory : C:\Windows\system32\wbem\repository
DatabaseMaxSize :
Description :
EnableAnonWin9xConnections :
EnableEvents : False
EnableStartupHeapPreallocation : False
HighThresholdOnClientObjects :
HighThresholdOnEvents : 20000000
InstallationDirectory : C:\Windows\system32\wbem
LastStartupHeapPreallocation :
LoggingDirectory : C:\Windows\system32\wbem\Logs\
LoggingLevel : 2
LowThresholdOnClientObjects :
LowThresholdOnEvents : 10000000
MaxLogFileSize : 65536
MaxWaitOnClientObjects :
MaxWaitOnEvents : 2000
MofSelfInstallDirectory :
SettingID :
...
描述
-----------
這個命令會將 WMI 記錄層次設定為 2,並在引數參數中傳遞要設定的屬性和值 (兩者一起視為值組)。此參數會採用雜湊表,此表是由 @{property = value} 建構所定義。傳回的類別資訊會反映新的值。
請參閱
概念
Get-WmiObject
Invoke-WmiMethod
Remove-WmiObject
Get-WSManInstance
Invoke-WSManAction
New-WSManInstance
Remove-WSManInstance