mirror of
https://github.com/inspec/inspec
synced 2024-12-24 12:03:23 +00:00
66 lines
1.8 KiB
Ruby
66 lines
1.8 KiB
Ruby
# encoding: utf-8
|
|
|
|
unless os.windows?
|
|
STDERR.puts "\033[1;33mTODO: Not running #{__FILE__} because we are not on Windows.\033[0m"
|
|
return
|
|
end
|
|
|
|
# Get-WmiObject win32_service or Get-WmiObject -class win32_service
|
|
# returns an array of service objects
|
|
describe wmi({class: 'win32_service'}) do
|
|
its('DisplayName') { should include 'Windows Remote Management (WS-Management)'}
|
|
end
|
|
|
|
# Use win32_service with filter, it returns a single service object
|
|
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
|
|
|
|
# TODO: this works on domain controllers only
|
|
describe wmi({
|
|
class: 'RSOP_SecuritySettingNumeric',
|
|
namespace: 'root\\rsop\\computer',
|
|
filter: 'KeyName = \'MinimumPasswordAge\' And precedence=1'
|
|
}) do
|
|
its('Setting') { should eq 1 }
|
|
end
|
|
|
|
# new syntax
|
|
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
|
|
|
|
describe wmi({
|
|
namespace: 'root\cimv2',
|
|
query: 'SELECT filesystem FROM win32_logicaldisk WHERE drivetype=3'
|
|
}).params.values.join do
|
|
it { should eq 'NTFS' }
|
|
end
|
|
|
|
# deprecated syntax
|
|
describe wmi('win32_service') do
|
|
its('DisplayName') { should include 'Windows Remote Management (WS-Management)'}
|
|
end
|
|
|
|
describe wmi('RSOP_SecuritySettingNumeric', {
|
|
namespace: 'root\\rsop\\computer',
|
|
filter: 'KeyName = \'MinimumPasswordAge\' And precedence=1'
|
|
}) do
|
|
its('Setting') { should eq 1 }
|
|
its('setting') { should eq 1 }
|
|
end
|
|
|
|
describe wmi('win32_service', {
|
|
filter: "name like '%winrm%'"
|
|
}) do
|
|
its('DisplayName') { should eq 'Windows Remote Management (WS-Management)'}
|
|
end
|