Set-WmiInstance

建立或更新現有 Windows Management Instrumentation (WMI) 類別的執行個體。

Syntax

Set-WmiInstance
   [-Class] <String>
   [-Arguments <Hashtable>]
   [-PutType <PutType>]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-WmiInstance
   -InputObject <ManagementObject>
   [-Arguments <Hashtable>]
   [-PutType <PutType>]
   [-AsJob]
   [-ThrottleLimit <Int32>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-WmiInstance
   -Path <String>
   [-Arguments <Hashtable>]
   [-PutType <PutType>]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-WmiInstance
   [-PutType <PutType>]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-WmiInstance
   [-PutType <PutType>]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-WmiInstance
   [-PutType <PutType>]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

Cmdlet Set-WmiInstance 會建立或更新現有 Windows Management Instrumentation (WMI) 類別的實例。 建立或更新的執行個體會寫入 WMI 存放庫中。

已導入 Windows PowerShell 3.0 的新 CIM Cmdlet 可執行與 WMI Cmdlet 相同的工作。 CIM Cmdlet 符合WS-Management (WSMan) 標準,以及通用訊息模型 (CIM) 標準。 這可讓 Cmdlet 使用相同的技術來管理 Windows 電腦,以及執行其他作業系統的電腦。 不要使用 ,請考慮使用 Set-WmiInstanceSet-CimInstanceNew-CimInstance Cmdlet。

範例

範例 1:設定 WMI 記錄層級

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:建立環境變數及其值

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:設定數部遠端電腦的 WMI 記錄層級

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} 定義的雜湊表。 傳回的類別資訊會反映新的值。

參數

-Arguments

指定要變更之屬性的名稱和該屬性的新值。 名稱和值必須是名稱/值組。 名稱/值組會以雜湊表的形式在命令列上傳遞。 例如:

@{Setting1=1; Setting2=5; Setting3="test"}

Type:Hashtable
Aliases:Args, Property
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-AsJob

表示此 Cmdlet 會以背景作業的形式執行。 使用此參數執行需要很長時間才能完成的命令。

當您指定 AsJob 參數時,命令會傳回代表背景作業的物件,然後顯示命令提示字元。 工作完成後,您可以繼續在工作階段中工作。 如果 用於遠端電腦,則會在本機電腦上建立作業,而遠端電腦的結果會自動傳回至本機電腦。 若要管理作業,請使用包含 Job 名詞的 Cmdlet (Job Cmdlet) 。 若要取得作業結果,請使用 Receive-Job Cmdlet。

若要將此參數與遠端電腦搭配使用,必須設定本機和遠端電腦以進行遠端處理。 此外,您必須在 Windows Vista 和更新版本的 Windows 作業系統中使用 [以系統管理員身分執行] 選項來啟動Windows PowerShell。 如需詳細資訊,請參閱about_Remote_Requirements

如需背景工作Windows PowerShell的詳細資訊,請參閱about_Jobsabout_Remote_Jobs

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

指定必須與 WMI 連線搭配使用的驗證層級。 此參數可接受的值為:

  • -1:未變更。
  • 0:預設。
  • 1:無。 未執行任何驗證。
  • 2:連線。 只有在用戶端與應用程式建立關聯性時,才會執行驗證。
  • 3:呼叫。 只有在應用程式收到要求時,才會在每個呼叫的開頭執行驗證。
  • 4:封包。 驗證會在從用戶端接收的所有資料上執行。
  • 5:PacketIntegrity。 用戶端與應用程式之間傳輸的所有資料都會經過驗證和驗證。
  • 6:PacketPrivacy。 會使用其他驗證層級的屬性,並加密所有資料。
Type:AuthenticationLevel
Accepted values:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Authority

指定用來驗證 WMI 連線的授權單位。 您可以指定標準 NTLM 或 Kerberos 驗證。 若要使用 NTLM,請將授權設定設定為 ntlmdomain:<DomainName>,其中 <DomainName> 會識別有效的 NTLM 網域名稱。 若要使用 Kerberos,請指定 kerberos: < DomainName > \ < ServerName > 。 當您連線到本機電腦時,不能包含授權單位設定。

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Class

指定 WMI 類別的名稱。

Type:String
Position:0
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-ComputerName

指定執行這個 Cmdlet 的電腦名稱稱。 預設是本機電腦。

請輸入一部或多部電腦的 NetBIOS 名稱、IP 位址或完整網域名稱。 若要指定本機電腦,請輸入電腦名稱稱、點 () . 或 localhost。

此參數不必依賴 Windows PowerShell 遠端功能。 即使您的電腦未設定為執行遠端命令,您仍然可以使用 ComputerName 參數。

Type:String[]
Aliases:Cn
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Confirm

在執行 Cmdlet 前提示您確認。

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

指定具有執行此動作權限的使用者帳戶。 預設為目前使用者。

輸入使用者名稱,例如 User01 或 Domain01\User01,或輸入 PSCredential 物件,例如 Get-Credential Cmdlet 產生的物件。 如果您輸入使用者名稱,此 Cmdlet 會提示輸入密碼。

任何隨參數一起安裝的提供者都不支援此參數,任何與 Windows PowerShell 一起安裝的提供者都不支援此參數。

Type:PSCredential
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-EnableAllPrivileges

指出這個 Cmdlet 會在發出 WMI 呼叫的命令之前,啟用目前使用者的擁有權限。

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

指定要使用的模擬等級。 此參數可接受的值為:

  • 0:預設。 讀取預設模擬層級的本機登錄,通常設定為 3:模擬。
  • 1:匿名。 隱藏呼叫端的認證。
  • 2:識別。 允許物件查詢呼叫端的認證。
  • 3:模擬。 允許物件使用呼叫端的認證。
  • 4:委派。 允許物件許可其他物件使用呼叫端的認證。
Type:ImpersonationLevel
Accepted values:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-InputObject

指定要作為輸入的 ManagementObject 物件。 使用此參數時,除了 Arguments 參數以外,所有其他參數都會被忽略。

Type:ManagementObject
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-Locale

指定 WMI 物件的慣用地區設定。 Locale參數是以慣用的順序,以MS_ < LCID > 格式指定陣列。

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Namespace

指定當參考的 WMI 類別搭配 Class 參數使用時,所參考 WMI 類別所在的 WMI 存放庫命名空間。

Type:String
Aliases:NS
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Path

指定您想要建立或更新之實例的 WMI 物件路徑。

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-PutType

指出是否要建立或更新 WMI 實例。 此參數可接受的值為:

  • UpdateOnly更新現有的 WMI 實例。
  • CreateOnly 建立新的 WMI 實例。
  • UpdateOrCreate如果 WMI 實例存在,更新,如果實例不存在,則會建立新的實例。
Type:PutType
Accepted values:None, UpdateOnly, CreateOnly, UpdateOrCreate
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-ThrottleLimit

指定為執行此命令可建立的最大同時連線數。 此參數會與 AsJob 參數搭配使用。 節流限制僅適用於目前命令,不適用於工作階段或電腦。

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-WhatIf

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

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

輸入

None

此 Cmdlet 不接受輸入。

輸出

None

此 Cmdlet 不會產生任何輸出。