.NET-Versionen feststellen

Die PowerShell 2.0 setzt bekanntlich auf dem .NET Framework 2.0 auf, die PowerShell ISE benötigt .NET 3.0 und das Out-GridView-Cmdlet sogar die Version 3.51. Möchte man feststellen, welche .NET-Version auf einem System installiert ist, liefert eine Registry-Abfrage die Antwort:

dir hklm:\Software\Microsoft\.NETFramework\v* | Select PsChildName

Nicht ganz optimal ist, dass Select ein neues Objekt mit PsChildName als Property anlegt:

PS>dir hklm:\Software\Microsoft\.NETFramework\v* | Select PsChildName

PSChildName
———–
v1.0
v2.0.50727
v3.0
v3.0 SP1
v4.0.30319

Möchte man wirklich nur die Versionsnummern erhalten, muss der Output per Out-String in Text und die Textzeilen per Split-Operator aufgeteilt werden, so dass ein weiteres Select mit dem Skip-Parameter die Kopfzeile auslassen kann:

PS>(dir hklm:\Software\Microsoft\.NETFramework\v* | Select PsChildName  | Out-String) -split „`n“ | Select -Skip 3
v1.0
v2.0.50727
v3.0
v3.0 SP1
v4.0.30319

Mit dem Skip-Parameter kann man z.B. auch eine CSV-Datei per Get-Content einlesen und die Titelleiste mit den Spaltennamen auslassen (dieser „Trick“ fiel mir bei meiner PowerShell-Schulung in Kempten vor kurzem leider erst später ein).

Eine Antwort zu “.NET-Versionen feststellen

  1. Schon einmal etwas vom ExpandProperty-Parameter bei Select-Object gehört?

    Oder vom Stream-Parameter bei Out-String??

    Hhmm???

Schreibe einen Kommentar

Bitte logge dich mit einer dieser Methoden ein, um deinen Kommentar zu veröffentlichen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s