[英]C# - WMI InvalidOperationException when trying to run a script on a remote machine
我正在嘗試在同一域中的遠程計算機上執行腳本,並使用相同的用戶帳戶登錄到兩台計算機上。 請注意,腳本也存儲在另一台計算機上。
碼
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的新手,所以我不確定自己做錯的事情是否很明顯,盡管在很多情況下都使用這種異常類型,並且很難找出實際的問題,所以請幫忙將不勝感激。
您的“ \\ root \\ cimv2 \\ Win32_Process”應為“ \\ root \\ cimv2:Win32_Process”
注意冒號,這就是我用的。 祝好運!
我遇到過同樣的問題。
result.InvokeMethod("GetOwner", ownerArgs)
問題是我試圖在使用以下WMI查詢檢索到的對象上執行該操作。
SELECT ProcessId, ExecutablePath, CommandLine FROM Win32_Process
將其更改為SELECT * FROM Win32_Process
修復了它。
我可能也可以明確要求用戶名和域。
事實證明,承載該進程的Windows服務未在具有在目標計算機上執行權限的帳戶下運行。
我的錯!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.