Comment puis-je déterminer quelle version de Windows s'exécute sur un serveur à l'aide de PowerShell?

9

J'essaie d'écrire un script PowerShell que je peux exécuter sur des serveurs distants. Dans ces scripts, je souhaite exécuter différentes fonctions en fonction de la version de Windows exécutée sur les machines.

Je n'arrive pas à trouver des informations utiles sur le net sur la façon de déterminer la version de Windows qui s'exécute sur la machine sur laquelle le script est exécuté (Server 2003, Server 2008 R2, etc.). Des idées comment je peux faire ça?

Vermine
la source
J'ai cherché sur
Google
merci pour cette aide, je suppose que j'ai des choses à apprendre lors de la recherche sur le net pour des réponses. par intérêt, qu'avez-vous tapé dans google pour trouver cette réponse?
Vermin
@Vermin J'ai essayé quelques-uns sur la base de ces mots, puis j'ai lu un certain nombre de résultats: en utilisant la version windows de powershell pour déterminer
KCotreau
google.com.au/…
ta.speot.is

Réponses:

7

C'est celui avec lequel j'irais:

gwmi win32_operatingSystem | select name

Comme todda.speot.is l'a mentionné, c'est le même lien que j'ai trouvé, mais il contient beaucoup de réponses, et je les ai testées. Celui que j'ai donné semble vous donner ce que vous voulez, bien que vous deviez l'analyser (je pense que c'est le bon terme).

Voici un exemple de sortie:

Microsoft Windows Server 2003 R2 Standard x64 Edition|C:\WINDOWS|\Device\Harddisk0\Partition1

http://www.eggheadcafe.com/software/aspnet/31845351/reliable-way-to-get-windows-version.aspx

KCotreau
la source
2
Get-WmiObject -Class Win32_OperatingSystem | ForEach-Object -MemberName Caption

Ou joué au golf

gwmi win32_operatingsystem |% caption

Résultat

Microsoft Windows 7 Ultimate
Steven Penny
la source
1

J'utiliserais:

gwmi win32_operatingSystem | sélectionner la légende

Aucune analyse syntaxique n'est requise. ; ^)

Exemple de sortie:

Microsoft Windows Server 2003 R2 Standard Édition x64

MicaH
la source