Spec-Zone.ru › Chef 16

Ресурс wmi

[править на GitHub]

Используйте ресурс аудита Chef InSpec для проверки настроек WMI в среде Windows.

Доступность

Установка

Этот ресурс поставляется вместе с Chef InSpec. Его можно использовать автоматически.

Версия

Этот ресурс впервые стал доступен в версии v1.0.0 InSpec.

Синтаксис

Блок ресурса wmi проверяет настройки WMI в среде Windows:

describe wmi({
  class: 'class_name',
  namespace: 'path\\to\\setting',
  filter: 'filter',
  query: 'query'
}) do
  its('setting_name') { should eq '' }
end

где

  • class, namespace, filter, и query представляют собой Ruby-хеш объекта WMI
  • ('class') — это класс WMI, к которому относится настройка, например win32_service
  • ('namespace') — путь к этому объекту, например root\\cimv2
  • Используйте ('filter'), чтобы уточнить информацию, определённую классом WMI, например, для поиска определённой службы (filter: "name like '%winrm%'"), для поиска определённой настройки (filter: 'KeyName = \'MinimumPasswordAge\' And precedence=1') и т. д.
  • Используйте ('query') для выполнения запроса, возвращающего данные для проверки, например "SELECT Setting FROM RSOP_SecuritySettingBoolean WHERE KeyName='LSAAnonymousNameLookup' AND Precedence=1"
  • ('setting_name') — это настройка в объекте WMI, подлежащая проверке, а should eq '' — ожидаемое значение этой настройки

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

describe wmi({class: 'win32_service'}) do
  its('DisplayName') { should include 'Windows Remote Management (WS-Management)'}
end

а второй использует фильтр в Ruby-хеше для предварительного поиска WinRM и последующего выполнения дополнительных тестов:

describe wmi({
  class: 'win32_service',
  filter: "name like '%winrm%'"
}) do
  its('Status') { should cmp 'ok' }
  its('State') { should cmp 'Running' }
  its('ExitCode') { should cmp 0 }
  its('DisplayName') { should eq 'Windows Remote Management (WS-Management)'}
end

Примеры

Следующие примеры демонстрируют использование этого ресурса аудита Chef InSpec.

Проверка политики истечения срока действия пароля

describe wmi({
  class: 'RSOP_SecuritySettingNumeric',
  namespace: 'root\\rsop\\computer',
  filter: 'KeyName = \'MinimumPasswordAge\' And precedence=1'
}) do
   its('Setting') { should eq 1 }
end

Проверка возможности анонимного пользователя запросить Local Security Authority (LSA)

describe wmi({
  namespace: 'root\\rsop\\computer',
  query: "SELECT Setting FROM RSOP_SecuritySettingBoolean WHERE KeyName='LSAAnonymousNameLookup' AND Precedence=1"
}) do
  its('Setting') { should eq false }
end

Сопоставители

Полный список доступных сопоставителей можно найти на нашей странице сопоставителей.

© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/wmi/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API