创建或更新现有 Windows Management Instrumentation (WMI) 类的实例。

语法

Set-WmiInstance [-类] <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>] [-命名空间 <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>] [-命名空间 <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>] [-命名空间 <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>] [-命名空间 <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>] [-命名空间 <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:不变

0:默认值

1:无(不执行身份验证。)

2:连接(仅当客户端与应用程序建立了关系时才执行身份验证。)

3:调用(应用程序收到请求时只在每次调用的开始执行身份验证。)

4:数据包(对从客户端收到的所有数据执行身份验证。)

5:数据包整体性(所有在客户端和应用程序之间传送的数据都经过身份验证和验证。)

6:数据包保密性(使用其他身份验证等级的属性,并且所有数据都加密。)

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Authority <string>

指定用于对 WMI 连接进行身份验证的授权机构。可以指定标准 NTLM 或 Kerberos 身份验证。若要使用 NTLM,请将授权机构设置设为“ntlmdomain:<DomainName>”,其中 <DomainName> 标识有效的 NTLM 域名。若要使用 Kerberos,请指定“kerberos:<DomainName>\<ServerName>”。连接到本地计算机时不能包含授权机构设置。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-类 <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:默认值(读取本地注册表的默认模拟级别,通常设置为“3:模拟”。)

1:匿名(隐藏调用方的凭据。)

2:标识(允许对象查询调用方的凭据。)

3:模拟(允许对象使用调用方的凭据。)

4:委派(允许对象允许其他对象使用调用方的凭据。)

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-InputObject <ManagementObject>

指定要用作输入的 ManagementObject 对象。如果使用此参数,则忽略 Arguments 参数之外的所有其他参数。

是否为必需?

true

位置?

named

默认值

是否接受管道输入?

true (ByValue)

是否接受通配符?

false

-Locale <string>

指定 WMI 对象的首选区域设置。按喜爱顺序将 Locale 参数指定为 MS_<LCID> 格式的数组。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-命名空间 <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 所返回对象的类型。

输入

None

此 cmdlet 不接受输入。

输出

None

此 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。此命令通过 argument 参数传递要设置的属性和值(二者合称为值对)。此参数接受由 @{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。此命令通过 argument 参数传递要设置的属性和值(二者合称为值对)。此参数接受由 @{property = value} 结构定义的哈希表。返回的类信息将反映出新值。






另请参阅




目录