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 に答える