Was bedeutet der Inhalt von PowerShells $ PSVersionTable?

9

Wenn ich echo $PSVersionTablein PowerShell bin, erhalte ich scheinbar mehrere Versionsinformationen.

Die Namen der Eigenschaften sind

  • CLRVersion
  • BuildVersion
  • PSVersion
  • WSManStackVersion
  • PSCompatibleVersions
  • SerializationVersion
  • PSRemotingProtocolVersion

Alle außer 1 befinden sich in einer normalen Versionsnotation ( #.#.#), und die andere 1 (PSCompatibleVersions) besteht aus einer Reihe von Versionsnummern ( {1.0, 2.0})

Was repräsentiert jeder von diesen?


Zusätzlich: Diese Frage wurde erstellt, um die Antwort auf eine andere Frage zu vertiefen, die ich unter Welche Version von Windows Management Framework ist installiert? . Ein Kommentar dort und andere Kommentare in einer ähnlichen Frage, die ich dort verlinkt habe, legen nahe, dass $PSVersionTableverwendet werden kann, um die Version von WMF zu erhalten. Wenn eine dieser Eigenschaften tatsächlich die WMF-Version ergibt und dies garantiert ist, antworten Sie auf jeden Fall auch dort. Wenn Sie Unterlagen oder Nachweise für eine Bestätigung vorlegen können, würde ich Ihnen +2 geben, wenn ich könnte: Meine Google-Abfragen liefern keine zufriedenstellenden Ergebnisse.

Loduwijk
quelle

Antworten:

10

Die in PowerShell integrierte Hilfe beschreibt $ PSVersionTable:

Get-Help about_Automatic_Variables

Möglicherweise müssen Update-HelpSie zuerst ausführen, wenn Sie es noch nicht ausgeführt haben.

Das Tolle daran Get-Helpist, dass Sie nicht genau wissen müssen, wonach Sie suchen. Was ich eingegeben habe, um dieses Thema zuerst zu finden, war eigentlich nur help PSVersionTable, und es wurden alle Hilfethemen aufgelistet, die "PSVersionTable" enthielten (es gibt einige andere).

Dies ist der Abschnitt von about_Automatic_Variables, der beschreibt $PSVersionTable, wie er derzeit von PowerShell für mich zurückgegeben wird, aber es ist der am wenigsten wichtige Teil, wie das OP feststellte:

$ PsVersionTable Enthält eine schreibgeschützte Hash-Tabelle, in der Details zur Version von Windows PowerShell angezeigt werden, die in der aktuellen Sitzung ausgeführt wird. Die Tabelle enthält die folgenden Elemente:

CLRVersion:                The version of the common language runtime (CLR)

BuildVersion:              The build number of the current version

PSVersion:                 The Windows PowerShell version number

WSManStackVersion:         The version number of the WS-Management stack

PSCompatibleVersions:      Versions of Windows PowerShell that are 
                           compatible with the current version

SerializationVersion:      The version of the serialization method

PSRemotingProtocolVersion: The version of the Windows PowerShell remote 
                           management protocol
Joshua McKinnon
quelle
+1 für offensichtliche Einfachheit. Ich habe an einer langatmigen Antwort gearbeitet und als ich das sah, habe ich das Ganze gelöscht, weil dies in weniger, einfacheren Worten alles sagt, was wirklich gesagt werden muss.
Ryan Ries
Vielen Dank! Ich hatte eigentlich gehofft, dass es eine Möglichkeit geben könnte, Metainformationen direkt in PowerShell zu sammeln. Dies lieferte eine Antwort und wird wahrscheinlich auch über den Rahmen der Frage hinaus helfen. Nicht das letzte zusätzliche Stück, aber das bringt mich auch dem einen Schritt näher. Danke noch einmal.
Loduwijk
Die integrierte Hilfe von PowerShell ist eine meiner Lieblingsfunktionen. Wenn Sie lernen, wie Sie sie nutzen können, um Dinge zu erraten und zu finden, können Sie PowerShell schneller kennenlernen. Ich sollte auch beachten, dass ich keine Ahnung hatte, dass sich die Dokumentation für diese Variable in About_Automatic_Variables befindet ... was ich tatsächlich eingegeben habe help PSVersionTable, und Hilfethemen aufgelistet sind, die PSVersionTable erwähnen, da es keine genaue Übereinstimmung gab.
Joshua McKinnon
1

Nach meiner Erfahrung entspricht die PSVersion, bei der es sich um die PowerShell-Version handelt, der WMF-Version, zumindest was die Hauptversionsnummern betrifft. Ich habe jedoch nicht alle Vorschau-Versionen verfolgt, um zu sehen, wie diese übereinstimmen.

Mike Shepard
quelle