我试图在同一域中的远程计算机上执行脚本,并将同一用户帐户登录到两个计算机。注意该脚本还存储在另一台计算机上。

代码

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的新手,所以我不确定我做错了什么是显而易见的,尽管在许多情况下都使用了这种异常类型,并且很难找出实际问题是什么,所以请帮助将不胜感激。

有帮助吗?

解决方案 3

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

我的错!

其他提示

您的“ root cimv2 win32_process”应该为“ root cimv2:win32_process”

注意结肠,这就是我使用的。祝你好运!

我遇到过同样的问题。

result.InvokeMethod("GetOwner", ownerArgs)

问题是我试图在以下WMI查询中检索到一个对象上执行该问题。

SELECT ProcessId, ExecutablePath, CommandLine FROM Win32_Process

将其更改为 SELECT * FROM Win32_Process 解决它。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top