inspec / train

Transport Interface to unify communication over SSH, WinRM, and friends.
Apache License 2.0
119 stars 87 forks source link

Windows platform detection relies on deprecated wmic.exe #675

Open clintoncwolfe opened 3 years ago

clintoncwolfe commented 3 years ago

On machines that are missing wmic.exe (such as Windows Nano), inspec detect will be missing architecture data, like this:

Name:      windows_10.0.14393
Families:  windows, os
Release:   10.0.14393
Arch:      unknown

The cause is traced to wmic.exe being missing, which was deprecated. Users are now advised to use powershell commandlets to get the data.

Get-WmiObject Win32_OperatingSystem | Select Version, Caption, BuildNumber | ConvertTo-Json

For getting the CPU architecture, try

Get-CimInstance -Class CIM_Processor -ErrorAction Stop | Select Architecture | ConvertTo-Json
tas50 commented 3 years ago

What's the impact of this since windows nano is basically a dead platform?

clintoncwolfe commented 3 years ago

Looks to be very minor. I just tested again on Windows Server Core LTS 2019, and it does include wmic.exe . Fixing this will be awkward since we don't know if we have Powershell this early in the platform detection phase. I think we should leave it be for now, but if it disappears in the future this issue should be here to track it.