Система.ArgumentException: ‘Значение не попадает в ожидаемый диапазон.’

#c# #group-policy

#c# #групповая политика

Вопрос:

Я собираю результирующий набор политик, используя dll для управления групповой политикой. Существует класс GPRSop, который я использую, с атрибутами RsopMode и WMI Namspace в виде строки:

 GPRsop test = new GPRsop(RsopMode.Logging, "Root/RSOP");
test.LoggingMode = LoggingMode.Computer;
test.LoggingComputer = "MyComputer";
test.LoggingUser = "domain\user";
test.CreateQueryResults();
test.GenerateReportToFile(ReportType.Xml, "C:\Temp\test.xml");
  

LoggingMode , LoggingComputer и LoggingUser все выдают одно и то же исключение:

Система.ArgumentException: ‘Значение не попадает в ожидаемый диапазон.’

Если я установил wmiNamespace » «, как рекомендовано, он также выдает исключение.

Комментарии:

1. возможно, это помогает: MSDN

2. Получает ли CreateQueryResults какие-либо результаты? Я думаю, что ошибка возникает из-за того, что GenerateReportToFile() не удается выполнить, чтобы результат был пустым. Я бы поставил обработчик исключений try / catch и получил стек трассировки, чтобы получить дополнительную информацию об ошибке.

3. @jdweng GenerateReportToFile() выполняется успешно, если CreateQueryResults() не используется. Но тогда отчет не содержит никакой информации.

4. @jdweng Здесь трассировка стека: в Microsoft.GroupPolicy. GPMRSOPClass.set_LoggingFlags(Int32 lVal) в Readinizer . Серверная часть. Бизнес. Услуги. ADRSoPService.getRSoP() в C:UserslkellenbDocumentsReadinizerReadinizer . Серверная часть. Business Services ADRSoPService.cs: строка 33 в Readinizer. Интерфейс. ViewModels. StartUpViewModel . <Discover>b__25_0() в C:UserslkellenbDocumentsReadinizerReadinizer . Интерфейс ViewModels StartUpViewModel.cs: строка 64 в System. Многопоточность. Задачи.Задача. Выполнить ()

5. Смотрите пример параметров. Обратите внимание, что все параметры имеют обратную косую черту, и вы используете косую черту: learn.microsoft.com/en-us/powershell/module/grouppolicy /…

Ответ №1:

Мне пришлось запустить Visual Studio от имени администратора. После этого мне даже не нужно было указывать wmiNamespace.

Спасибо за вашу помощь