Пространство имен WMI "Не найдено" - PullRequest
1 голос
/ 14 марта 2012

Я пытаюсь запустить файл bat удаленно (с XP на 2003) и сталкиваюсь с проблемой подключения к любому пространству имен WMI, кроме cimv2.Приведенный ниже код вызывает исключение «Не найдено» в вызове «GetMethodParameters».Но если я заменю «directory» на «cimv2», все будет просто.

ConnectionOptions theConnection = new ConnectionOptions();
theConnection.Username = conDet.User;
theConnection.Password = conDet.Pwd;
theConnection.Impersonation = ImpersonationLevel.Impersonate;

ManagementScope theScope = new ManagementScope(String.Format(@"\\{0}\root\directory", conDet.Server), theConnection);
theScope.Connect();

ManagementClass processClass = new ManagementClass(theScope, new ManagementPath("Win32_Process"), new ObjectGetOptions());

enter code here
ManagementBaseObject inParams = processClass.GetMethodParameters("Create");
inParams["CommandLine"] = filename;

ManagementBaseObject outParams = processClass.InvokeMethod("Create", inParams, null);

Я проверил безопасность на моей машине и на сервере, и два пространства имен имеют одинаковые настройки безопасности.Есть идеи, что происходит?

Спасибо.

1 Ответ

3 голосов
/ 14 марта 2012

вы используете неправильное пространство имен, класс WMI Win32_Process определен в root\cimv2.

Поэтому вы должны переписать свой код на

ManagementScope theScope = new ManagementScope(String.Format(@"\\{0}\root\cimv2", conDet.Server), theConnection);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...