Я использую последнюю предварительную версию 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