Set-WmiInstance
创建或更新现有 Windows Management Instrumentation (WMI) 类的实例。
语法
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>]
说明
Set-WmiInstance
cmdlet 创建或更新现有 Windows Management Instrumentation (WMI) 类的实例。
创建或更新的实例将写入 WMI 存储库。
引入了 Windows PowerShell 3.0 的新 CIM cmdlet 执行与 WMI cmdlet 相同的任务。
CIM cmdlet 符合 WS-Management (WSMan) 标准和通用信息模型 (CIM) 标准。
这使 cmdlet 能够使用相同的技术来管理基于 Windows 的计算机和运行其他操作系统的计算机。
请考虑使用 Set-CimInstance 或 New-CimInstance cmdlet,而不是使用 Set-WmiInstance
。
示例
示例 1:设置 WMI 日志记录级别
PS C:\> 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:创建环境变量及其值
PS C:\> 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 日志记录级别
PS C:\> 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"}
类型: | Hashtable |
别名: | Args, Property |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-AsJob
指示此 cmdket 作为后台作业运行。 使用此参数可以运行需要很长时间才能完成的命令。
指定 AsJob 参数时,该命令返回一个对象,该对象表示后台作业,然后显示命令提示符。 作业完成后,可以继续在会话中工作。 如果 Set-WmiInstance 用于远程计算机,则会在本地计算机上创建作业,并且远程计算机的结果会自动返回到本地计算机。 若要管理作业,请使用包含 作业 名词的 cmdlet(Job cmdlet)。 若要获取作业结果,请使用 Receive-Job cmdlet。
若要将此参数与远程计算机一起使用,必须配置本地计算机和远程计算机进行远程处理。 此外,必须使用 Windows Vista 和更高版本的 Windows 操作系统中的“以管理员身份运行”选项启动 Windows PowerShell。 有关详细信息,请参阅about_Remote_Requirements。
有关 Windows PowerShell 后台作业的详细信息,请参阅about_Jobs和about_Remote_Jobs。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Authentication
指定必须与 WMI 连接一起使用的身份验证级别。 此参数的可接受值为:
- -1:未更改。
- 0:默认值。
- 1:无。 未执行身份验证。
- 2:连接。 仅当客户端与应用程序建立关系时,才会执行身份验证。
- 3:呼叫。 仅当应用程序收到请求时,才会在每个调用开始时执行身份验证。
- 4:数据包。 对从客户端接收的所有数据执行身份验证。
- 5:PacketIntegrity。 对客户端和应用程序之间传输的所有数据进行身份验证和验证。
- 6:PacketPrivacy。 使用其他身份验证级别的属性,并且所有数据都已加密。
类型: | AuthenticationLevel |
接受的值: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Authority
指定用于对 WMI 连接进行身份验证的颁发机构。 可以指定标准 NTLM 或 Kerberos 身份验证。 若要使用 NTLM,请将颁发机构设置设置为 ntlmdomain:<DomainName>,其中 <DomainName> 标识有效的 NTLM 域名。 若要使用 Kerberos,请指定 kerberos:<DomainName>\<ServerName>。 连接到本地计算机时,不能包含颁发机构设置。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Class
指定 WMI 类的名称。
类型: | String |
Position: | 0 |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-ComputerName
指定运行此 cmdlet 的计算机的名称。 默认值为本地计算机。
键入 NetBIOS 名称、IP 地址或一个或多个计算机的完全限定域名。 若要指定本地计算机,请键入计算机名称、点(.)或 localhost。
此参数不依赖于 Windows PowerShell 远程处理。 即使计算机未配置为运行远程命令,也可以使用 ComputerName 参数。
类型: | String[] |
别名: | Cn |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Confirm
在运行 cmdlet 之前,提示你进行确认。
类型: | SwitchParameter |
别名: | cf |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Credential
指定有权执行此操作的用户帐户。 默认值为当前用户。
键入用户名(如 User01 或 Domain01\User01),或输入 PSCredential 对象,例如由 Get-Credential cmdlet 生成的用户名。 如果键入用户名,此 cmdlet 会提示输入密码。
随参数一起安装的任何提供程序都不支持此参数。Windows PowerShell 中安装的任何提供程序都不支持此参数。
类型: | PSCredential |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-EnableAllPrivileges
指示此 cmdlet 在发出 WMI 调用的命令之前启用当前用户的所有权限。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Impersonation
指定要使用的模拟级别。 此参数的可接受值为:
- 0:默认值。 读取默认模拟级别的本地注册表,该级别通常设置为 3:模拟。
- 1:匿名。 隐藏调用方凭据。
- 2:标识。 允许对象查询调用方凭据。
- 3:模拟。 允许对象使用调用方凭据。
- 4:委托。 允许对象允许其他对象使用调用方凭据。
类型: | ImpersonationLevel |
接受的值: | Default, Anonymous, Identify, Impersonate, Delegate |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-InputObject
指定要用作输入的 ManagementObject 对象。 使用此参数时,将忽略除 参数 参数以外的所有其他参数。
类型: | ManagementObject |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-Locale
指定 WMI 对象的首选区域设置。 区域设置 参数以首选顺序以 MS_<LCID> 格式的数组指定。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Namespace
指定引用的 WMI 类与 类 参数一起使用时所引用的 WMI 存储库命名空间。
类型: | String |
别名: | NS |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Path
指定要创建或更新的实例的 WMI 对象路径。
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-PutType
指示是创建还是更新 WMI 实例。 此参数的可接受值为:
- UpdateOnly。 更新现有的 WMI 实例。
- CreateOnly。 创建新的 WMI 实例。
- UpdateOrCreate。 如果 WMI 实例存在,则更新 WMI 实例;如果实例不存在,则创建一个新实例。
类型: | PutType |
接受的值: | None, UpdateOnly, CreateOnly, UpdateOrCreate |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ThrottleLimit
指定可建立以运行此命令的最大并发连接数。 此参数与 AsJob 参数一起使用。 限制限制仅适用于当前命令,不适用于会话或计算机。
类型: | Int32 |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-WhatIf
显示 cmdlet 运行时会发生什么情况。 cmdlet 未运行。
类型: | SwitchParameter |
别名: | wi |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
None
此 cmdlet 不接受输入。
输出
None
此 cmdlet 不生成输出。