É possível obter uma versão do Windows a partir de um comando powershell no Windows Server 2016 Nano?

8

Estou usando a última versão do Windows Server 2016 nano.

Usando uma sessão remota do PowerShell, eu me conecto ao sistema remoto via Enter-PSSessione, em seguida, tentei usar as técnicas mais comuns para verificar as versões do Windows, porque a estrutura .Net completa não está disponível. Além disso, o cmdlet Get-WmiObject não está disponível.

A única maneira de ver ALGUMAS informações é com este DISM sem comando do powershell:

Dism /Online /Get-Feature

Isso me dá essa saída, além de uma lista de recursos instalados:

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

Pelo valor 10514, que é maior que a área de trabalho do Windows 10, posso ter uma idéia da compilação do kernel, e é interessante que a área de trabalho do Windows 10 tenha o mesmo "Microsoft-Windows-Foundation-Package", mas uma compilação mais baixa do kernel número.

Alguém já encontrou um cmdlet ou alguma função ou alias do powershell que poderia ser gravado, que detectará para mim o fato de que meu script do powershell está sendo executado em um nano-servidor, de alguma maneira que provavelmente não será interrompida ou qualquer comando que realmente imprimir "Windows Server 2016 Nano Server"?

Atualização: Está mais perto do que eu quero, mas é um pouco complicado:

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

Atualização 2: Get-WmiObject não está presente e, embora o seguinte funcione, ele apenas relata a versão do kernel:

[System.Environment]::OSVersion.Version

O acima relatará a compilação 10514, enquanto o RTM dos sistemas operacionais clientes do Windows 10 relata 10240 no momento, mas o acima é realmente uma "compilação do kernel" e não um produto / edição / service-pack do sistema operacional.

Warren P
fonte

Respostas:

4

Você pode tentar o seguinte, não tenho um servidor nano para testá-lo. Solte a opção selectse você conseguir outra coisa e veja se o que você deseja está armazenado em uma propriedade diferente no Server 2016 Nano

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

Quando testado em uma instância Nano real, o parâmetro -session não era necessário, mas se você precisar em alguma data futura, aqui está a variante com -session:

$cuser = "Your username"
$cservername = "Your Servername"
$csession = New-CimSession Credential $cuser ComputerName $cservername
Get-CIMInstance session $csession -ClassName Win32_OperatingSystem -Property * | select caption
Drifter104
fonte
O material da sessão não é necessário se você já estiver em uma sessão remota pela qual entrou, Enter-PSSessionentão sugeri uma edição.
Warren P
3

Esta é apenas uma extensão da sua edição, mas limpa a saída, obtendo apenas o ProductName

$(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' ProductName).ProductName
Eric
fonte
Essa é uma boa melhoria.
Warren P
2

A maneira Microsoft, também conhecida como Cert, é usar o método Get-WindowsEdition -Online

informações adicionais sobre o comando e todas as suas opções podem ser encontradas em Aqui!

Grunkle Stan
fonte
Quantidade muito pequena de informações nos Get-WindowsEdition -Onlinerelatórios apenas de volta Professional- elas relatam de volta Nanopara o nano servidor?
Warren P
-1

Prompt de comando administrativo do PowerShell e digitando:

 Get-WmiObject -Class Win32_Operatingsystem

Devoluções:

Build Number and Version
Royston
fonte
Não há forma de ver se isso é nano ou não
Warren P