Как я могу разрешить “Отказ загрузки поставщика” для запросов WMI?

После прочтения документации и некоторых царапин на голове я смог определить значения по умолчанию для параметров, которые не были переданы в шаблон.

# in views/shared/template.html.erb
<% my_param = 'default_value' unless binding.local_variable_defined?(:my_param) %>
# Now you can call the partial with or without setting `my_param`

# Now you can call the partial without parameters...
<%= render 'shared/my_template' %>
# ...or with parameters
<%= render 'shared/my_template', my_param: 'non-default value' %>

Проверено на Ruby 2.3.1 и выше.

9
задан Chris Thompson 18 February 2009 в 22:33
поделиться

4 ответа

Вы могли бы хотеть подтвердить, что все dlls правильно регистрируются (см. http://msdn.microsoft.com/en-us/library/bb961987.aspx).

2
ответ дан 4 December 2019 в 19:36
поделиться

Регистрация WMI все сохранена в WMI (статические классы.

WMI Studio CIM (часть Инструментов WMI от MS, IIRC) полезен для исследования этих классов (и конечно легче, чем запись большого количества запросов).

1
ответ дан 4 December 2019 в 19:36
поделиться

В операционных системах с контролем учетных записей отключите UAC.

В моем случае: ответ Росс о не разрешился. Я мог загрузить некоторых поставщиков WMI (логический диск), но не других (IIS). Инструменты проводника WMI (такие как PowerGui) покажут поставщика. Это говорит о том, что политика безопасности может предотвратить загрузку поставщиков WMI. После отключения UAC все поставщики WMI загружались без ошибок.

Конечно, вы можете оставить UAC включенным. Я обновлю этот ответ, если найду требуемые правила.

2
ответ дан 4 December 2019 в 19:36
поделиться

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

Я пытался загрузить IIS WMI Provider и получал ошибку "Provider Load Failure". Я смог воспроизвести проблему, выполнив свой WMI запрос с помощью программы wbemtest.exe.

Я запустил procmon.exe, чтобы показать, что загружается (или не загружается в моем случае), и, конечно, wmiprvse. exe загружал ключ реестра, который говорил, что inetsrv находится в каталоге C:\windows - который не существовал на моей машине (C:\windows был заменен на c:\winnt)

Обновление ключа решило мою проблему, но главное здесь то, что я чертовски долго пытался понять, почему я получаю эту ошибку, а запуск procmon во время выполнения моего WMI запроса направил меня прямо к проблеме. Надеюсь, это поможет и вам.

2
ответ дан 4 December 2019 в 19:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: