Invoke-CimMethod
调用 CIM 类的 方法。
语法
Invoke-CimMethod
[-ClassName] <String>
[-ComputerName <String[]>]
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CimMethod
[-ClassName] <String>
-CimSession <CimSession[]>
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CimMethod
-ResourceUri <Uri>
[-ComputerName <String[]>]
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CimMethod
[-ResourceUri <Uri>]
[-InputObject] <CimInstance>
-CimSession <CimSession[]>
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CimMethod
[-ResourceUri <Uri>]
[-InputObject] <CimInstance>
[-ComputerName <String[]>]
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CimMethod
-ResourceUri <Uri>
-CimSession <CimSession[]>
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CimMethod
[-CimClass] <CimClass>
[-ComputerName <String[]>]
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CimMethod
[-CimClass] <CimClass>
-CimSession <CimSession[]>
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CimMethod
-Query <String>
[-QueryDialect <String>]
[-ComputerName <String[]>]
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CimMethod
-Query <String>
[-QueryDialect <String>]
-CimSession <CimSession[]>
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
说明
此 cmdlet 仅在 Windows 平台上可用。
cmdlet Invoke-CimMethod
使用 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:调用方法
此示例调用 Win32_Process 类的 Terminate 方法。
Invoke-CimMethod -Query 'select * from Win32_Process where name like "notepad%"' -MethodName "Terminate"
示例 2:使用 CIM 实例对象调用方法
此示例检索 CIM 实例对象,并使用 cmdlet 将其存储在名为 $x
的 Get-CimInstance
变量中。 然后,该变量的内容将用作 cmdlet 的 Invoke-CimMethod
InputObject。 为 CimInstance 调用 GetOwner 方法。
$x = Get-CimInstance -Query 'Select * from Win32_Process where name like "notepad%"'
Invoke-CimMethod -InputObject $x -MethodName GetOwner
示例 3:使用参数调用静态方法
此示例使用 Arguments 参数调用名为 Create 方法。
Invoke-CimMethod -ClassName Win32_Process -MethodName "Create" -Arguments @{
CommandLine = 'notepad.exe'; CurrentDirectory = "C:\windows\system32"
}
示例 4:客户端验证
此示例通过将 CimClass 对象Invoke-CimMethod
传递给 ,对 xyz 方法执行客户端验证。
$c = Get-CimClass -ClassName Win32_Process
Invoke-CimMethod -CimClass $c -MethodName "xyz" -Arguments @{ CommandLine = 'notepad.exe' }
参数
-Arguments
指定要传递给被调用方法的参数。 将此参数的值指定为存储在哈希表中的名称/值对。 输入的值的顺序并不重要。
Type: | IDictionary |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-CimClass
指定表示服务器上的 CIM 类定义的 CIM 类对象。 调用类的静态方法时,请使用此参数。
可以使用 Get-CimClass
cmdlet 从服务器检索类定义。
使用此参数可以更好地进行客户端架构验证。
Type: | CimClass |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-CimSession
使用指定的 CIM 会话运行命令。 输入包含 CIM 会话的变量,或创建或获取 CIM 会话的命令,例如 New-CimSession
或 Get-CimSession
cmdlet。 有关详细信息,请参阅 about_CimSession。
Type: | CimSession[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ClassName
指定要为其执行操作的 CIM 类的名称。 此参数仅用于静态方法。 可以使用 Tab 自动补全来浏览类列表,因为 PowerShell 从本地 WMI 服务器获取类列表,以提供类名称的列表。
Type: | String |
Aliases: | Class |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ComputerName
指定要运行 CIM 操作的计算机的名称。 可以指定完全限定的域名 (FQDN) 、NetBIOS 名称或 IP 地址。
使用此参数时,cmdlet 使用 WsMan 协议创建与指定计算机的临时会话。 否则,cmdlet 使用组件对象模型 (COM) 在本地计算机上执行操作。
在同一台计算机上执行多个操作时,使用 CIM 会话进行连接以提高性能。
Type: | String[] |
Aliases: | CN, ServerName |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
提示你在运行 cmdlet 之前进行确认。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
指定要用作调用方法的输入的 CIM 实例对象。 此参数只能用于调用实例方法。 若要调用类静态方法,请使用 Class 参数或 CimClass 参数。
Type: | CimInstance |
Aliases: | CimInstance |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-MethodName
指定要调用的 CIM 方法的名称。 此参数是必需的,不能为 null 或为空。 若要调用 CIM 类的静态方法,请使用 ClassName 或 CimClass 参数。
Type: | String |
Aliases: | Name |
Position: | 2 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Namespace
指定 CIM 操作的命名空间。 默认命名空间为 root/cimv2。 可以使用 Tab 自动补全来浏览命名空间列表,因为 PowerShell 从本地 WMI 服务器获取命名空间列表以提供命名空间列表。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-OperationTimeoutSec
指定 cmdlet 等待计算机响应的时间。 默认情况下,该值为 0,这意味着 cmdlet 使用服务器的默认超时值。
如果将 OperationTimeoutSec 参数设置为小于默认连接重试超时 3 分钟的值,则持续超过 OperationTimeoutSec 参数值的网络故障不可恢复。
Type: | UInt32 |
Aliases: | OT |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Query
指定要在 CIM 服务器上运行的查询。 对作为查询结果接收的实例调用 方法。 可以使用 QueryDialect 参数指定查询方言。
如果指定的值包含双引号 () "
、单引号 ('
) 或反斜杠 (\
) ,则必须用反斜杠 (\
) 字符作为前缀来转义这些字符。 如果指定的值使用 WQL LIKE 运算符,则必须通过将以下字符括在方括号 ([]
) 来转义以下字符:百分比 (%
) 、下划线 (_
) 或左方括号 ([
) 。
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-QueryDialect
指定用于 Query 参数的查询语言。 此参数的可接受值为: WQL 或 CQL。
默认值为 WQL。
Type: | String |
Position: | Named |
Default value: | WQL |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | 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 会话一起使用,或者在指定 ComputerName 参数(该参数使用 WSMan 创建 CIM 会话)时使用。
如果在未指定 ComputerName 参数的情况下指定此参数,或者指定使用 DCOM 协议创建的 CIM 会话,则会收到错误。 DCOM 协议不支持 ResourceURI 参数。
如果同时指定 了 ResourceUri 参数和 Filter 参数,则忽略 Filter 参数。
Type: | Uri |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
显示运行该 cmdlet 时会发生什么情况。 此 cmdlet 未运行。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
输入
可以通过管道将 CIM 类传递给此 cmdlet。
可以通过管道将 CIM 实例传递给此 cmdlet。
输出
此 cmdlet 返回 对象。
备注
PowerShell 包含以下别名 Invoke-CimMethod
:
- Windows:
icim
此 cmdlet 仅在 Windows 平台上可用。