Invoke-CimMethod

调用 CIM 类的方法。

语法

ClassNameComputerSet (默认值)

Invoke-CimMethod
    [-ClassName] <String>
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    [-ComputerName <String[]>]
    [-Namespace <String>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ClassNameSessionSet

Invoke-CimMethod
    [-ClassName] <String>
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    -CimSession <CimSession[]>
    [-Namespace <String>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ResourceUriSessionSet

Invoke-CimMethod
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    -ResourceUri <Uri>
    -CimSession <CimSession[]>
    [-Namespace <String>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ResourceUriComputerSet

Invoke-CimMethod
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    -ResourceUri <Uri>
    [-ComputerName <String[]>]
    [-Namespace <String>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

CimInstanceComputerSet

Invoke-CimMethod
    [-InputObject] <CimInstance>
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    [-ResourceUri <Uri>]
    [-ComputerName <String[]>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

CimInstanceSessionSet

Invoke-CimMethod
    [-InputObject] <CimInstance>
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    -CimSession <CimSession[]>
    [-ResourceUri <Uri>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

CimClassSessionSet

Invoke-CimMethod
    [-CimClass] <CimClass>
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    -CimSession <CimSession[]>
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

CimClassComputerSet

Invoke-CimMethod
    [-CimClass] <CimClass>
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    [-ComputerName <String[]>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

QuerySessionSet

Invoke-CimMethod
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    -Query <String>
    -CimSession <CimSession[]>
    [-QueryDialect <String>]
    [-Namespace <String>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

QueryComputerSet

Invoke-CimMethod
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    -Query <String>
    [-QueryDialect <String>]
    [-ComputerName <String[]>]
    [-Namespace <String>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

说明

Invoke-CimMethod cmdlet 使用 Arguments 参数指定的名称/值对调用 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:调用方法

Invoke-CimMethod -Query 'select * from Win32_Process where name like "notepad%"' -MethodName "Terminate"

此命令在名为 Win32_Process 的 CIM 类上调用名为 Terminate 的方法。 CIM 类通过查询“Select * from Win32_Process where name like 'notepad%'”来检索。

示例 2:使用 CIM 实例对象调用方法

$x = Get-CimInstance -Query 'Select * from Win32_Process where name like "notepad%"'
Invoke-CimMethod -InputObject $x -MethodName GetOwner

这组命令检索 CIM 实例对象,并使用 Get-CimInstance cmdlet 将其存储在名为 $x 的变量中。 然后,将变量的内容用作 Invoke-CimMethod cmdlet 的 InputObject,并为 CimInstance 调用 GetOwner 方法。

示例 3:调用静态方法

Invoke-CimMethod -ClassName Win32_Process -MethodName "Create" -Arguments @{ Path = "notepad.exe" }

此命令在名为 Win32_Process 的类上调用静态方法 Create,其参数由 Arguments 参数指定。

示例 4:使用参数调用方法

Invoke-CimMethod -ClassName Win32_Process -MethodName "Create" -Arguments @{ CommandLine = 'notepad.exe'; CurrentDirectory = "C:\windows\system32" }

此命令使用 Arguments 参数调用名为 Create 的方法。

示例 5:客户端验证

$c = Get-CimClass -ClassName Win32_Process
Invoke-CimMethod -CimClass $c -MethodName "xyz" -Arguments @{ CommandLine = 'notepad.exe' }

这组命令通过将 CimClass 对象传递给 Invoke-CimMethod cmdlet 来对名为 xyz 的方法执行客户端验证。

参数

-Arguments

指定要传递给所调用方法的参数。 将此参数的值指定为存储在哈希表中的名称/值对。 输入值的顺序并不重要。

参数属性

类型:IDictionary
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:1
必需:False
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-CimClass

指定一个 CIM 类对象,该对象表示服务器上的 CIM 类定义。 调用类的静态方法时,请使用此参数。

可以使用 Get-CimClass cmdlet 从服务器检索类定义。

使用此参数可提供更好的客户端架构验证。

参数属性

类型:CimClass
默认值:None
支持通配符:False
不显示:False

参数集

CimClassSessionSet
Position:0
必需:True
来自管道的值:True
来自管道的值(按属性名称):False
来自剩余参数的值:False
CimClassComputerSet
Position:0
必需:True
来自管道的值:True
来自管道的值(按属性名称):False
来自剩余参数的值:False

-CimSession

使用指定的 CIM 会话运行命令。 输入包含 CIM 会话的变量,或创建或获取 CIM 会话的命令,例如 New-CimSession 或 Get-CimSession cmdlet。 有关详细信息,请参阅 about_CimSessions

参数属性

类型:

CimSession[]

默认值:None
支持通配符:False
不显示:False

参数集

ClassNameSessionSet
Position:Named
必需:True
来自管道的值:True
来自管道的值(按属性名称):False
来自剩余参数的值:False
CimInstanceSessionSet
Position:Named
必需:True
来自管道的值:True
来自管道的值(按属性名称):False
来自剩余参数的值:False
CimClassSessionSet
Position:Named
必需:True
来自管道的值:True
来自管道的值(按属性名称):False
来自剩余参数的值:False
QuerySessionSet
Position:Named
必需:True
来自管道的值:True
来自管道的值(按属性名称):False
来自剩余参数的值:False

-ClassName

指定要对其执行操作的 CIM 类的名称。 此参数仅用于静态方法。 注意:可以使用选项卡完成浏览类列表,因为 Windows PowerShell 从本地 WMI 服务器获取类列表以提供类名列表。

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False
别名:班级

参数集

ClassNameComputerSet
Position:0
必需:True
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False
ClassNameSessionSet
Position:0
必需:True
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-ComputerName

指定要在其中运行 CIM 操作的计算机的名称。 可以指定完全限定的域名(FQDN)、NetBIOS 名称或 IP 地址。

如果指定此参数,cmdlet 将使用 WsMan 协议创建到指定计算机的临时会话。

如果未指定此参数,cmdlet 将使用组件对象模型(COM)在本地计算机上执行该操作。

如果在同一台计算机上执行了多个操作,则使用 CIM 会话进行连接可提供更好的性能。

参数属性

类型:

String[]

默认值:None
支持通配符:False
不显示:False
别名:中国区, 服务器名称

参数集

ClassNameComputerSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False
ResourceUriComputerSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False
CimClassComputerSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False
QueryComputerSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-Confirm

在运行 cmdlet 之前,提示你进行确认。

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False
别名:cf

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-InputObject

指定要用作调用方法的输入的 CIM 实例对象。

此参数只能用于调用实例方法。 若要调用类静态方法,请使用 Class 参数或 CimClass 参数。

参数属性

类型:CimInstance
默认值:None
支持通配符:False
不显示:False
别名:CimInstance

参数集

CimInstanceComputerSet
Position:0
必需:True
来自管道的值:True
来自管道的值(按属性名称):False
来自剩余参数的值:False
CimInstanceSessionSet
Position:0
必需:True
来自管道的值:True
来自管道的值(按属性名称):False
来自剩余参数的值:False

-MethodName

指定要调用的 CIM 方法的名称。 此参数是必需的,不能为 null 或为空。

要调用 CIM 类的静态方法,请使用 ClassName 或 CimClass 参数。

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False
别名:名称

参数集

(All)
Position:2
必需:True
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-Namespace

指定 CIM 操作的命名空间。

默认命名空间为 root/cimv2。 可以使用 Tab 完成浏览命名空间列表,因为 PowerShell 从本地 WMI 服务器获取命名空间列表以提供命名空间列表。

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False

参数集

ClassNameComputerSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False
ClassNameSessionSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False
ResourceUriSessionSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False
ResourceUriComputerSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值: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

-Query

指定要在 CIM 服务器上运行的查询。 在查询结果收到的实例上调用方法。

可以使用 QueryDialect 参数指定查询方言。

如果指定的值包含双引号 ()、单引号 (') 或反斜杠 (\),则必须使用反斜杠 (\) 字符作为前缀来转义这些字符。 如果指定的值使用 WQL LIKE 运算符,则必须将以下字符括在方括号([]):百分比(%)、下划线(_)或左方括号([)中来转义以下字符。

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False

参数集

QuerySessionSet
Position:Named
必需:True
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False
QueryComputerSet
Position:Named
必需: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 由前缀和资源路径组成。 例如:

https://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

参数集

ResourceUriSessionSet
Position:Named
必需:True
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False
ResourceUriComputerSet
Position:Named
必需:True
来自管道的值: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

输入

CIM class

此 cmdlet 接受 CIM 类作为输入对象。

CIM instance

此 cmdlet 接受 CIM 实例作为输入对象。

输出

PSCustomObject

此 cmdlet 返回一个对象。