c#-wmi invalidoperationexceptionリモートマシンでスクリプトを実行しようとするとき

StackOverflow https://stackoverflow.com/questions/4719869

質問

同じドメインのリモートマシンでスクリプトを実行しようとしています。同じユーザーアカウントを両方のマシンにログオンしています。メモは、スクリプトもさらに別のマシンに保存されています。

コード

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