C # - WMI InvalidOperationException при попытке запустить скрипт на удаленной машине - PullRequest
0 голосов
/ 18 января 2011

Я пытаюсь выполнить сценарий на удаленном компьютере в том же домене, и на обоих компьютерах есть одна и та же учетная запись пользователя. Обратите внимание, что скрипт также хранится на еще одном компьютере.

код

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 ]

3 голосов
/ 11 марта 2011

Ваш "\ root \ cimv2 \ Win32_Process" должен быть "\ root \ cimv2: Win32_Process"

Обратите внимание на двоеточие, это то, что я использую.Удачи!

1 голос
/ 07 мая 2016

У меня была такая же проблема.

result.InvokeMethod("GetOwner", ownerArgs)

Проблема заключалась в том, что я пытался выполнить это для объекта, который я извлек, с помощью следующего запроса WMI.

SELECT ProcessId, ExecutablePath, CommandLine FROM Win32_Process

Изменение на SELECT * FROM Win32_Process исправлено.

Возможно, я также, возможно, специально запросил имя пользователя и домен.

0 голосов
/ 07 августа 2012

Оказывается, служба Windows, на которой размещен процесс, не работала под учетной записью, у которой было разрешение на выполнение на целевой машине.

Моя ошибка!

...