Spec-Zone.ru › Chef 16

powershell ресурс

[редактировать на GitHub]

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

Доступность

Установка

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

Версия

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

Синтаксис

Блок ресурса powershell объявляет скрипт Powershell для проверки и затем сравнивает вывод этой команды с соответствием в тесте:

script = <<-EOH
  # a PowerShell script
EOH

describe powershell(script) do
  its('property') { should eq 'output' }
end

где

  • 'script' должен указать скрипт Powershell для выполнения
  • 'matcher' является одним из exit_status, stderr, или stdout
  • 'output' проверяет вывод команды, запущенной на системе, по отношению к значению вывода, указанному в тесте

Примеры

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

Получение всех групп пользователя Администратор

script = <<-EOH
  # find user
  $user = Get-WmiObject Win32_UserAccount -filter "Name = 'Administrator'"
  # get related groups
  $groups = $user.GetRelated('Win32_Group') | Select-Object -Property Caption, Domain, Name, LocalAccount, SID, SIDType, Status
  $groups | ConvertTo-Json
EOH

describe powershell(script) do
  its('stdout') { should_not eq '' }
end

Write-Output ‘hello’

Следующий скрипт Powershell:

script = <<-EOH
  Write-Output 'hello'
EOH

может быть проверен следующими способами.

Для новой строки:

describe powershell(script) do
  its('stdout') { should eq "hello\r\n" }
  its('stderr') { should eq '' }
end

Удаление пробелов \r\n из stdout:

describe powershell(script) do
  its('strip') { should eq "hello" }
end

Без новой строки:

describe powershell("'hello' | Write-Host -NoNewLine") do
  its('stdout') { should eq 'hello' }
  its('stderr') { should eq '' }
end

Соответствия

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

exit_status

Соответствие exit_status проверяет код возврата команды:

its('exit_status') { should eq 123 }

stderr

Соответствие stderr проверяет результаты команды, возвращаемые в стандартный поток ошибок (stderr):

its('stderr') { should eq 'error' }

stdout

Соответствие stdout проверяет результаты команды, возвращаемые в стандартный поток вывода (stdout):

its('stdout') { should eq '/^1$/' }

© 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/powershell/

Spec-Zone.ru

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