È possibile ottenere una versione di Windows da un comando PowerShell su Windows Server 2016 Nano?


8

Sto usando l'ultima anteprima di Windows Server 2016 nano.

Utilizzando una sessione remota PowerShell, mi collego al sistema remoto tramite Enter-PSSessione quindi ho provato a utilizzare le tecniche più comuni per controllare le versioni di Windows, poiché il framework .Net completo non è disponibile. Inoltre, il cmdlet Get-WmiObject non è disponibile.

L'unico modo in cui posso vedere ALCUNE informazioni è con questo DISM a comando non PowerShell:

Dism /Online /Get-Feature

Questo mi dà questo output oltre a un elenco di funzionalità installate:

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

Dal valore 10514, che è più alto del mio desktop di Windows 10, posso avere un'idea della build del kernel, ed è interessante che il desktop di Windows 10 abbia lo stesso "pacchetto Microsoft-Windows-Foundation", ma una build del kernel inferiore numero.

Qualcuno ha trovato un cmdlet o qualche funzione o alias PowerShell che potrebbe essere scritto, che rileverà per me il fatto che il mio script PowerShell è in esecuzione su un nano-server, in qualche modo che è improbabile che si rompa, o qualsiasi comando che lo farà effettivamente stampare "Windows Server 2016 Nano Server"?

Aggiornamento: questo è più vicino a quello che voglio, ma è un po 'un trucco:

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

Aggiornamento 2: Get-WmiObject non è presente e mentre funziona come segue, riporta solo la versione del kernel:

[System.Environment]::OSVersion.Version

Sopra riporterà la build 10514, mentre RTM per i sistemi operativi client Windows 10 riporta 10240 al momento, ma quanto sopra è in realtà una "build del kernel", non un prodotto / edizione / livello di service pack del sistema operativo.

Risposte:


4

Potresti provare quanto segue, non ho un nano server per provarlo. Rilascia il selectse ti dà qualcos'altro e vedi se ciò che vuoi è archiviato in una diversa proprietà in Server 2016 Nano

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

Quando testato su una vera istanza Nano il parametro -session non era necessario, ma se ne hai bisogno in una data futura, ecco la variante con -session:

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

Il materiale della sessione non è necessario se sei già in una sessione remota che hai inserito tramite, Enter-PSSessionquindi ho suggerito una modifica.
Warren P

3

Questa è solo un'estensione della modifica, ma pulisce l'output ottenendo solo ProductName

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

È un bel miglioramento.
Warren P

2

Il metodo Microsoft, noto anche come Cert, consiste nell'utilizzare Get-WindowsEdition -Online

ulteriori informazioni sul comando e tutte le sue opzioni sono disponibili qui!


Una piccolissima quantità di informazioni nei Get-WindowsEdition -Onlinereport è solo indietro Professional: riporta indietro Nanoper nano server?
Warren P

-1

Prompt dei comandi amministrativi di PowerShell e digitando:

 Get-WmiObject -Class Win32_Operatingsystem

Ritorna:

Build Number and Version

Non c'è modo di vedere se è nano o no
Warren P
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.