Est-il possible d'obtenir une version Windows à partir d'une commande powershell sur Windows Server 2016 Nano?

8

J'utilise le dernier aperçu de Windows Server 2016 nano.

À l'aide d'une session PowerShell à distance, je me connecte au système distant via Enter-PSSession, puis j'ai essayé d'utiliser les techniques les plus courantes pour vérifier les versions de Windows, car le framework .Net complet n'est pas disponible. De plus, l'applet de commande Get-WmiObject n'est pas disponible.

La seule façon dont je peux voir CERTAINES informations est avec ce DISM sans commande PowerShell:

Dism /Online /Get-Feature

Cela me donne cette sortie ainsi qu'une liste des fonctionnalités installées:

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

De la valeur 10514, qui est plus élevée que mon bureau Windows 10, je peux avoir une idée de la construction du noyau, et il est intéressant de noter que le bureau Windows 10 a le même "Microsoft-Windows-Foundation-Package", mais une construction de noyau inférieure nombre.

Quelqu'un a-t-il trouvé une applet de commande ou une fonction ou un alias PowerShell qui pourrait être écrit, qui détectera pour moi le fait que mon script PowerShell s'exécute sur un nano-serveur, d'une manière qui ne risque pas de se casser, ou toute commande qui imprimer réellement "Windows Server 2016 Nano Server"?

Mise à jour: c'est plus proche de ce que je veux, mais c'est un peu un hack:

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

Mise à jour 2: Get-WmiObject n'est pas présent, et bien que ce qui suit fonctionne, il ne signale que la version du noyau:

[System.Environment]::OSVersion.Version

Ci-dessus rapportera la génération 10514, tandis que les systèmes d'exploitation client Windows 10 RTM rapportent 10240 pour le moment, mais ce qui précède est vraiment une «construction du noyau» et non un niveau de produit / édition / service-pack de système d'exploitation.

Warren P
la source

Réponses:

4

Vous pouvez essayer ce qui suit, je n'ai pas de serveur nano pour l'essayer. Déposez le selectsi vous obtenez quelque chose d'autre et voyez si ce que vous voulez est stocké sous une autre propriété dans Server 2016 Nano

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

Lors d'un test sur une véritable instance Nano, le paramètre -session n'était pas nécessaire, mais si vous en avez besoin à une date ultérieure, voici la variante avec -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
la source
Le truc de session n'est pas nécessaire si vous êtes déjà dans une session à distance que vous avez entrée via Enter-PSSession, j'ai donc suggéré une modification.
Warren P
3

Ce n'est qu'une extension de votre édition, mais nettoie la sortie, en obtenant uniquement ProductName

$(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' ProductName).ProductName
Eric
la source
C'est une belle amélioration.
Warren P
2

La manière Microsoft, ou la méthode Cert, consiste à utiliser le Get-WindowsEdition -Online

des informations supplémentaires sur la commande et toutes ses options peuvent être trouvées ici!

Grunkle Stan
la source
Très petite quantité d'informations dans les Get-WindowsEdition -Onlinerapports uniquement Professional- renvoie -t-elle Nanopour le nano serveur?
Warren P
-1

Invite de commande d'administration PowerShell et saisie:

 Get-WmiObject -Class Win32_Operatingsystem

Retour:

Build Number and Version
Royston
la source
Pas moyen de voir si c'est nano ou pas
Warren P