Можно ли получить версию Windows с помощью команды PowerShell на Windows Server 2016 Nano?

Можно ли получить версию Windows с помощью команды PowerShell на Windows Server 2016 Nano?

Я использую последнюю предварительную версию Windows Server 2016 nano.

Используя удаленный сеанс powershell, я подключаюсь к удаленной системе через Enter-PSSession, а затем пытаюсь использовать самые распространенные методы проверки версий Windows, поскольку полная версия .Net framework недоступна. Также недоступен командлет Get-WmiObject.

Единственный способ увидеть КАКУЮ-ТО информацию — это использовать эту не-PowerShell-команду DISM:

Dism /Online /Get-Feature

Это дает мне следующий вывод и список установленных функций:

Deployment Image Servicing and Management tool
Version: 10.0.10514.0

Image Version: 10.0.10514.0

Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.10514.0

Из значения 10514, которое выше, чем у моего настольного компьютера с Windows 10, я могу получить некоторое представление о сборке ядра, и интересно, что настольный компьютер с Windows 10 имеет тот же «Microsoft-Windows-Foundation-Package», но меньший номер сборки ядра.

Нашел ли кто-нибудь командлет или какую-нибудь функцию PowerShell или псевдоним, которые можно было бы написать, чтобы определить, что мой скрипт PowerShell запущен на нано-сервере, каким-то образом, который вряд ли сломается, или какую-нибудь команду, которая действительно выведет «Windows Server 2016 Nano Server»?

Обновление: Это ближе к тому, что я хочу, но это немного хак:

  Get-Item -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion'

Обновление 2: Get-WmiObject отсутствует, и хотя следующее работает, оно сообщает только версию ядра:

[System.Environment]::OSVersion.Version

Выше будет указана сборка 10514, тогда как клиентские операционные системы Windows 10 RTM на данный момент сообщают о сборке 10240, но указанная выше информация на самом деле является «сборкой ядра», а не уровнем продукта/редакции/пакета обновлений операционной системы.

решение1

Вы можете попробовать следующее, у меня нет сервера nano, чтобы попробовать его. Отбросьте, selectесли он вам даст что-то другое, и посмотрите, хранится ли то, что вам нужно, под другим свойством в Server 2016 Nano

Get-CIMInstance -ClassName Win32_OperatingSystem -Property * | select caption

При тестировании на реальном экземпляре Nano параметр -session не понадобился, но если он вам понадобится в будущем, вот вариант с -session:

$cuser = "Your username"
$cservername = "Your Servername"
$csession = New-CimSession –Credential $cuser –ComputerName $cservername
Get-CIMInstance –session $csession -ClassName Win32_OperatingSystem -Property * | select caption

решение2

Это всего лишь расширение вашего редактирования, но оно очищает вывод, получая только ProductName

$(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' ProductName).ProductName

решение3

Метод Microsoft, также известный как метод Cert, заключается в использованииGet-WindowsEdition -Online

Дополнительную информацию о команде и всех ее параметрах можно найти на сайтеЗдесь!

решение4

Откройте командную строку PowerShell и введите:

 Get-WmiObject -Class Win32_Operatingsystem

Возврат:

Build Number and Version

Связанный контент