Das entwickelte PowerShell Module Get-WindowsVersion zeigt unter Windows ab Version 10 alle wichtigen Versions-Informationen lokal in der PowerShell an. Die generierte Ausgabe enthält folgende Spalten: ComputerName, ProductName, WindowsVersion, WindowsBuild, ProductId, InstallTime und History.
Ohne weitere Parameter wird die aktuelle lokale Windows Version angezeigt:
Get-WindowsVersion
Mit dem Parameter „History“ werden die Funktionsupdates bzw. das Upgrade angezeigt werden:
Get-WindowsVersion -History
Mit dem Pipe Sort-Object kann die Ausgabe entsprechend sortiert werden:
Get-WindowsVersion -History | Sort-Object WindowsBuild -Descending
Mit dem Pipe Where-Object kann die Ausgabe der Spalte ProductName gefilltert werden:
Get-WindowsVersion | Where-Object ProductName -Match Enterprise
Das Module kann mit PowerShell Desktop oder PowerShell Core von der PowerShell Gallery kostenlos heruntergeladen werden.
Register-PSRepository -Default
Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
Install-Module -Name Get-WindowsVersion -Scope CurrentUser
Update-Module -Name Get-WindowsVersion
Photo by Ausblick von der Burgruine Neideck – Fotoreflex-Martin
Ich habe das Modul erstmalig getestet, um mir das selber programmieren und vor allem Testen zu ersparen.
Was mir nicht gefällt ist, dass die Spalte „ProductName“ einfach den zusammengesetzten String aus der Registry nimmt. Ich hätte gerne vorneweg eine saubere Trennung zw. „ServerOS“ und „ClientOS“. Mich interessiert einfach Windows 10 oder Server 2016 oder Server 2019 oder … . Dann meinetwegen eine eigene Spalte für die Edition. (Pro, Home, Eval, …)
Auch finde ich nicht gut, dass Pre-Windows 10 Versionen gleich vorab ausgeschlossen sind. Kann doch auch nicht der Aufwand sein ein Windows 7, Windows 8.1 oder einen Server 2012r2 zu erkennen.
Ich hätte wahrscheinlich einfach ein bißchen mehr erwartet von einem eigenen Modul.
Trotzdem Danke für die Arbeit.
Hallo Hermann, vielen Dank für dein Kommentar und dein Interesse an meinem Module.
Du kannst mit einem Pipe die Spalte ProductName filtern. Zum Beispiel nach Edition Enterprise:
Get-WindowsVersion | Where-Object ProductName -Match Enterprise
Der Grund für Windows 10 oder neuer liegt daran, dass eine Entwicklung für Pre-Versionen unverhältnismäßig ist, da der Support wie von Windows 7 bereits ausgelaufen ist.