2

Я хотел бы проверить, какая версия Windows используется на удаленной машине, я использую эту команду:

$version=[Environment]::OSVersion.Version | % {"{0}.{1}.{2}" -f $_.Major,$_.Minor,$_.Build}

Я получаю результат например windows 7: 6.1.7600

но я нашел проблему:

Windows Server 2012 R2 имеет: 6.1.9600

и windows 8.1 тоже: 6.1.9600

так что мне интересно, есть ли другое решение для получения версии windows?

2 ответа2

5

Другим решением было бы получить подпись через CIM. Я думаю, что это ближе всего к тому, что вы хотите. Может использоваться для проверки локальных и удаленных машин.


Местный:

Get-CimInstance Win32_Operatingsystem | select -expand Caption

Пример вывода:

PS C:\WINDOWS\system32> Get-CimInstance Win32_Operatingsystem | select -expand Caption
Microsoft Windows 10 Pro

Дистанционный пульт:

Добавьте параметр -computername в Get-CimInstance

Пример вывода:

PS C:\WINDOWS\system32> Get-CimInstance Win32_Operatingsystem -ComputerName xy | select -expand Caption
Microsoft Windows 7 Professional

Запустите Get-CimInstance Win32_Operatingsystem | fl * чтобы увидеть, какие свойства вы можете дополнительно выбрать, чтобы получить желаемый результат.

1

Мне интересно, есть ли другое решение для получения версии windows?

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

[Environment]::OSVersion.VersionString

Пример вывода:

PS F:\test> [Environment]::OSVersion.VersionString
Microsoft Windows NT 6.1.7601 Service Pack 1
PS F:\test> 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .