Set-CimInstance
通过调用 CIM 类的 ModifyInstance 方法修改 CIM 服务器上的 CIM 实例。
语法
CimInstanceComputerSet (默认值)
Set-CimInstance
[-InputObject] <CimInstance>
[-ComputerName <String[]>]
[-ResourceUri <Uri>]
[-OperationTimeoutSec <UInt32>]
[-Property <IDictionary>]
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
CimInstanceSessionSet
Set-CimInstance
[-InputObject] <CimInstance>
-CimSession <CimSession[]>
[-ResourceUri <Uri>]
[-OperationTimeoutSec <UInt32>]
[-Property <IDictionary>]
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
QuerySessionSet
Set-CimInstance
[-Query] <String>
-CimSession <CimSession[]>
-Property <IDictionary>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-QueryDialect <String>]
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
QueryComputerSet
Set-CimInstance
[-Query] <String>
-Property <IDictionary>
[-ComputerName <String[]>]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-QueryDialect <String>]
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
说明
此 cmdlet 仅在 Windows 平台上可用。
此 cmdlet 修改 CIM 服务器上的 CIM 实例。
如果未指定 InputObject 参数,则 cmdlet 的工作方式如下:
- 如果既未指定 ComputerName 参数,也没有指定 CimSession 参数,则此 cmdlet 使用组件对象模型 (COM) 会话在本地 Windows Management Instrumentation (WMI) 上运行。
- 如果指定了 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)查询匹配的实例。
$instance = @ {
Query = 'Select * from Win32_Environment where name LIKE "testvar%"'
Property = @{VariableValue="abcd"}
}
Set-CimInstance @instance
示例 2:使用管道设置 CIM 实例属性
此示例使用 cmdlet 检索由 Get-CimInstance
参数筛选的 CIM 实例对象。
Set-CimInstance
cmdlet 将 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
此示例使用 $x
检索查询参数筛选到变量 Get-CimInstance
筛选的 CIM 实例对象,然后将变量的内容传递给 Set-CimInstance
cmdlet。 然后,Set-CimInstance
将 VariableValue 属性修改为 某些值。 由于使用了 PassThru 参数,此示例返回修改后的 CIM 实例对象。
示例 4:设置 CIM 实例属性
此示例使用 cmdlet 将 $x
参数中指定的 CIM 实例对象检索到变量 Get-CimInstance
,并更改要更改的对象的 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 实例列表
此示例使用通用参数 WhatIf 来指定不应完成修改,但仅输出在完成修改时会发生什么情况。
$instance = @{
Query = 'Select * from Win32_Environment where name LIKE "testvar%"'
Property = @{VariableValue="abcd"}
WhatIf = $true
}
Set-CimInstance @instance
示例 6:在用户确认后设置 CIM 实例
此示例使用通用参数 Confirm 指定仅在用户确认后才能完成修改。
$instance = @{
Query = 'Select * from Win32_Environment where name LIKE "testvar%"'
Property = @{VariableValue="abcd"}
Confirm = $true
}
Set-CimInstance @instance
示例 7:设置创建的 CIM 实例
此示例使用 New-CimInstance
cmdlet 创建具有指定属性的 CIM 实例,并将其内容检索到变量 $x
。 然后将变量传递给 Set-CimInstance
cmdlet,该 cmdlet 将 VariableValue 属性的值修改为 某些值。
由于使用了 PassThru 参数,此示例返回修改后的 CIM 实例对象。
$instance = @{
ClassName = 'Win32_Environment'
Property = @{
Name="testvar"
UserName="domain\user"
}
Key = 'Name', 'UserName'
ClientOnly = $true
}
$x = New-CimInstance @instance
Set-CimInstance -CimInstance $x -Property @{VariableValue="somevalue"} -PassThru
参数
-CimSession
在远程计算机上运行 cmdlet。 输入计算机名或会话对象,例如 New-CimSession
或 Get-CimSession
cmdlet 的输出。
参数属性
类型: | |
默认值: | None |
支持通配符: | False |
不显示: | False |
参数集
CimInstanceSessionSet
Position: | Named |
必需: | True |
来自管道的值: | True |
来自管道的值(按属性名称): | False |
来自剩余参数的值: | False |
QuerySessionSet
Position: | Named |
必需: | True |
来自管道的值: | True |
来自管道的值(按属性名称): | False |
来自剩余参数的值: | False |
-ComputerName
指定要在其中运行 CIM 操作的计算机的名称。 可以指定完全限定的域名(FQDN)或 NetBIOS 名称。
如果未指定此参数,cmdlet 将使用组件对象模型(COM)在本地计算机上执行该操作。
如果指定此参数,cmdlet 将使用 WsMan 协议创建到指定计算机的临时会话。
如果在同一台计算机上执行了多个操作,则使用 CIM 会话进行连接可提供更好的性能。
参数属性
类型: | String[] |
默认值: | None |
支持通配符: | False |
不显示: | False |
别名: | 中国区, 服务器名称 |
参数集
CimInstanceComputerSet
Position: | Named |
必需: | False |
来自管道的值: | False |
来自管道的值(按属性名称): | False |
来自剩余参数的值: | False |
QueryComputerSet
Position: | Named |
必需: | False |
来自管道的值: | False |
来自管道的值(按属性名称): | False |
来自剩余参数的值: | False |
-Confirm
在运行 cmdlet 之前,提示你进行确认。
参数属性
类型: | SwitchParameter |
默认值: | False |
支持通配符: | False |
不显示: | False |
别名: | cf |
参数集
(All)
Position: | Named |
必需: | False |
来自管道的值: | False |
来自管道的值(按属性名称): | False |
来自剩余参数的值: | False |
-InputObject
指定要用作输入的 CIM 实例对象。
InputObject 参数不会枚举集合。 如果传递集合,则会引发错误。 使用集合时,通过管道传递输入来枚举值。
参数属性
类型: | CimInstance |
默认值: | None |
支持通配符: | False |
不显示: | False |
别名: | CimInstance |
参数集
CimInstanceComputerSet
Position: | 0 |
必需: | True |
来自管道的值: | True |
来自管道的值(按属性名称): | False |
来自剩余参数的值: | False |
CimInstanceSessionSet
Position: | 0 |
必需: | True |
来自管道的值: | True |
来自管道的值(按属性名称): | False |
来自剩余参数的值: | False |
-Namespace
指定 CIM 操作的命名空间。 默认命名空间 根/CIMV2。 可以使用 Tab 完成浏览命名空间列表,因为 PowerShell 从本地 WMI 服务器获取命名空间列表以提供命名空间列表。
参数属性
类型: | String |
默认值: | None |
支持通配符: | False |
不显示: | False |
参数集
QuerySessionSet
Position: | Named |
必需: | False |
来自管道的值: | False |
来自管道的值(按属性名称): | True |
来自剩余参数的值: | False |
QueryComputerSet
Position: | Named |
必需: | False |
来自管道的值: | False |
来自管道的值(按属性名称): | True |
来自剩余参数的值: | False |
-OperationTimeoutSec
指定 cmdlet 等待计算机响应的时间量。 默认情况下,此参数的值为 0,这意味着 cmdlet 使用服务器的默认超时值。
如果 OperationTimeoutSec 参数设置为小于可靠连接重试超时 3 分钟的值,则超过 OperationTimeoutSec 参数的值的网络故障不可恢复,因为服务器上的操作在客户端重新连接之前超时。
参数属性
类型: | UInt32 |
默认值: | None |
支持通配符: | False |
不显示: | False |
别名: | OT |
参数集
(All)
Position: | Named |
必需: | False |
来自管道的值: | False |
来自管道的值(按属性名称): | False |
来自剩余参数的值: | False |
-PassThru
返回一个对象,该对象表示你正在处理的项目。 默认情况下,此 cmdlet 不生成任何输出。
参数属性
类型: | SwitchParameter |
默认值: | None |
支持通配符: | False |
不显示: | False |
参数集
(All)
Position: | Named |
必需: | False |
来自管道的值: | False |
来自管道的值(按属性名称): | False |
来自剩余参数的值: | False |
-Property
将 CIM 实例的属性指定为哈希表(使用名称值对)。 仅更改使用此参数指定的属性。 CIM 实例的其他属性不会更改。
参数属性
类型: | IDictionary |
默认值: | None |
支持通配符: | False |
不显示: | False |
别名: | 论据 |
参数集
CimInstanceComputerSet
Position: | Named |
必需: | False |
来自管道的值: | False |
来自管道的值(按属性名称): | True |
来自剩余参数的值: | False |
CimInstanceSessionSet
Position: | Named |
必需: | False |
来自管道的值: | False |
来自管道的值(按属性名称): | True |
来自剩余参数的值: | False |
QuerySessionSet
Position: | Named |
必需: | True |
来自管道的值: | False |
来自管道的值(按属性名称): | True |
来自剩余参数的值: | False |
QueryComputerSet
Position: | Named |
必需: | True |
来自管道的值: | False |
来自管道的值(按属性名称): | True |
来自剩余参数的值: | False |
-Query
指定要在 CIM 服务器上运行的查询,以检索运行 cmdlet 的 CIM 实例。 可以使用 QueryDialect 参数指定查询方言。
如果指定的值包含双引号("
)、单引号('
)或反斜杠(\
),则必须用反斜杠(\
)字符作为前缀来转义这些字符。 如果指定的值使用 WQL LIKE 运算符,则必须将它们括在方括号([]
):百分比(%
)、下划线(_
)或左方括号([
)中来转义以下字符。
参数属性
类型: | String |
默认值: | None |
支持通配符: | False |
不显示: | False |
参数集
QuerySessionSet
Position: | 0 |
必需: | True |
来自管道的值: | False |
来自管道的值(按属性名称): | True |
来自剩余参数的值: | False |
QueryComputerSet
Position: | 0 |
必需: | True |
来自管道的值: | False |
来自管道的值(按属性名称): | True |
来自剩余参数的值: | False |
-QueryDialect
指定用于 Query 参数的查询语言。 此参数的可接受值为:WQL 或 CQL。 默认值为 WQL
参数属性
类型: | String |
默认值: | None |
支持通配符: | False |
不显示: | False |
参数集
QuerySessionSet
Position: | Named |
必需: | False |
来自管道的值: | False |
来自管道的值(按属性名称): | True |
来自剩余参数的值: | False |
QueryComputerSet
Position: | Named |
必需: | False |
来自管道的值: | False |
来自管道的值(按属性名称): | True |
来自剩余参数的值: | 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 会话一起使用,或者指定使用 WSMan 创建 CIM 会话的 ComputerName 参数时。 如果在未指定 ComputerName 参数的情况下指定此参数,或者指定使用 DCOM 协议创建的 CIM 会话,则会收到错误,因为 DCOM 协议不支持 ResourceUri 参数。
如果同时指定了 ResourceUri 参数和 Filter 参数,则忽略 Filter 参数。
参数属性
类型: | Uri |
默认值: | None |
支持通配符: | False |
不显示: | False |
参数集
CimInstanceComputerSet
Position: | Named |
必需: | False |
来自管道的值: | False |
来自管道的值(按属性名称): | True |
来自剩余参数的值: | False |
CimInstanceSessionSet
Position: | Named |
必需: | False |
来自管道的值: | False |
来自管道的值(按属性名称): | True |
来自剩余参数的值: | False |
-WhatIf
显示 cmdlet 运行时会发生什么情况。 命令脚本未运行。
参数属性
类型: | SwitchParameter |
默认值: | False |
支持通配符: | False |
不显示: | False |
别名: | 无线 |
参数集
(All)
Position: | Named |
必需: | False |
来自管道的值: | False |
来自管道的值(按属性名称): | False |
来自剩余参数的值: | False |
CommonParameters
此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters。
输入
CimInstance
输出
None
默认情况下,此 cmdlet 不返回任何输出。
CimInstance
使用 PassThru 参数时,此 cmdlet 返回修改后的 CIM 实例对象。
备注
PowerShell 包含以下与 Set-CimInstance
相关的别名:
- 窗户:
scim
此 cmdlet 仅在 Windows 平台上可用。