0

我正在尝试在同一域中的远程计算机上执行脚本,并使用相同的用户帐户登录到两台计算机。请注意,该脚本也存储在另一台机器上。

代码

string prop = propertyName
object[] cmd = { String.Format("cscript \\\\machine\\script.wsf", envId, application) };
ManagementClass mc = new ManagementClass("\\\\" + prop + "\\root\\cimv2\\Win32_Process");

mc.InvokeMethod("Create", cmd);

例外

[InvalidOperationException: Operation is not valid due to the current state of the object.]
   System.Management.ManagementObject.InvokeMethod(String methodName, Object[] args) +388806

结论

我是使用 WMI 的新手,所以我不确定我做错了什么是否明显,尽管在许多情况下都使用这种异常类型,并且很难找出实际问题是什么,所以请帮助将不胜感激。

4

3 回答 3

3

你的 "\root\cimv2\Win32_Process" 应该是 "\root\cimv2:Win32_Process"

注意冒号,这是我使用的。祝你好运!

于 2011-03-11T00:36:18.080 回答
1

我遇到过同样的问题。

result.InvokeMethod("GetOwner", ownerArgs)

问题是我试图在使用以下 WMI 查询检索到的对象上执行该操作。

SELECT ProcessId, ExecutablePath, CommandLine FROM Win32_Process

更改它以SELECT * FROM Win32_Process修复它。

我也可能特别要求用户名和域。

于 2016-05-07T17:45:50.683 回答
0

事实证明,托管该进程的 Windows 服务未在有权在目标计算机上执行的帐户下运行。

我的错!

于 2012-08-07T00:37:57.607 回答