mirror of
https://github.com/inspec/inspec
synced 2024-12-18 00:53:22 +00:00
55 lines
1.7 KiB
Ruby
55 lines
1.7 KiB
Ruby
# encoding: utf-8
|
|
#
|
|
# Copyright 2015, Vulcano Security GmbH
|
|
#
|
|
# Tiny test file to return OS info of the tested node
|
|
|
|
require 'json'
|
|
|
|
if os[:family] == 'windows'
|
|
res = JSON.parse(command('New-Object -Type PSObject | Add-Member -MemberType NoteProperty -Name OS -Value (Get-WmiObject -Class Win32_OperatingSystem) -PassThru | Add-Member -MemberType NoteProperty -Name OSVersion -Value ([Environment]::OSVersion) -PassThru | ConvertTo-Json').stdout)
|
|
|
|
# Product Type:
|
|
# Work Station (1)
|
|
# Domain Controller (2)
|
|
# Server (3)
|
|
|
|
# Version = product type + platform + major = minor
|
|
versions = Hash.new
|
|
versions["0"] = "3.1"
|
|
versions["140"] = "95"
|
|
versions["1410"] = "98"
|
|
versions["1490"] = "ME"
|
|
versions["1351"] = "NT 3.51"
|
|
versions["3351"] = "NT 3.51 Server"
|
|
versions["1240"] = "NT 4.0"
|
|
versions["3240"] = "NT 4.0 Server"
|
|
versions["1250"] = "2000"
|
|
versions["1251"] = "XP"
|
|
versions["3252"] = "Server 2003"
|
|
versions["3260"] = "Server 2003 R2"
|
|
versions["1252"] = "Vista"
|
|
versions["3252"] = "Server 2008"
|
|
versions["1261"] = "7"
|
|
versions["3261"] = "Server 2008 R2"
|
|
versions["1262"] = "8"
|
|
versions["3262"] = "Server 2012"
|
|
versions["1263"] = "8.1"
|
|
versions["3263"] = "Server 2012 R2"
|
|
versions["12100"] = "10"
|
|
versions["32100"] = "Server 2016"
|
|
|
|
producttype = res["OS"]["ProductType"].to_s
|
|
if producttype == "2" then producttype = "3" end
|
|
version = producttype + res["OSVersion"]["Platform"].to_s + res["OSVersion"]["Version"]["Major"].to_s + res["OSVersion"]["Version"]["Minor"].to_s
|
|
puts version
|
|
release = versions[version]
|
|
end
|
|
|
|
# hijack os-detection from serverspec
|
|
puts JSON.dump({
|
|
os_family: os[:family],
|
|
os_release: release || os[:release],
|
|
os_arch: os[:arch]
|
|
})
|
|
exit 0
|
|
|