c#-wmi invalidoperationexceptionリモートマシンでスクリプトを実行しようとするとき
-
12-10-2019 - |
質問
同じドメインのリモートマシンでスクリプトを実行しようとしています。同じユーザーアカウントを両方のマシンにログオンしています。メモは、スクリプトもさらに別のマシンに保存されています。
コード
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
修正しました。
おそらく、特にユーザー名とドメインを要求することもできます。
所属していません StackOverflow