Que représente le contenu de $ PSVersionTable de PowerShell?


10

Si je echo $PSVersionTabledans PowerShell, j'obtiens ce qui semble être plusieurs bits d'informations de version.

Les noms des propriétés sont

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

Tous sauf 1 sont dans une notation de version normale ( #.#.#), et l'autre 1 (PSCompatibleVersions) est un ensemble de numéros de version ( {1.0, 2.0})

Que représente chacun de ces éléments?


De plus: Cette question a été créée pour approfondir en réponse à une autre question que j'ai posée à Quelle version de Windows Management Framework est installée? . Un commentaire là-bas, et d'autres commentaires dans une question similaire à laquelle j'ai lié, suggèrent que cela $PSVersionTablepeut être utilisé pour obtenir la version de WMF. Si l'une de ces propriétés donne effectivement la version WMF, et est garantie de le faire, n'hésitez pas à y répondre également. De plus, si vous pouvez fournir toute documentation ou preuve d'une confirmation, je vous donnerais +2 si je le pouvais: mes requêtes Google ne donnent rien de satisfaisant.

Réponses:


11

L'aide intégrée de PowerShell décrit $ PSVersionTable:

Get-Help about_Automatic_Variables

Vous devrez peut-être exécuter en Update-Helppremier si vous ne l'avez pas encore exécuté.

Ce qui est génial, Get-Helpc'est que vous n'avez pas besoin de savoir exactement ce que vous recherchez. Ce que j'ai tapé pour trouver ce sujet en premier était en fait juste help PSVersionTable, et il répertoriait tous les sujets d'aide qui contenaient "PSVersionTable" (il y en a quelques autres).

C'est la section de about_Automatic_Variables qui décrit $PSVersionTable, telle que actuellement retournée par PowerShell pour moi, mais c'est la partie la moins importante, comme l'OP l'a noté:

$ PsVersionTable Contient une table de hachage en lecture seule qui affiche des détails sur la version de Windows PowerShell qui s'exécute dans la session en cours. Le tableau comprend les éléments suivants:

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

+1 pour une simplicité évidente. Je travaillais sur une réponse de longue haleine et quand j'ai vu cela, j'ai supprimé le tout parce que cela dit en moins de mots plus simples tout ce qui doit vraiment être dit.
Ryan Ries

Je vous remercie! J'espérais en fait qu'il pourrait y avoir un moyen de collecter des méta-informations directement dans PowerShell. Cela a fourni une réponse et aidera probablement même au-delà de la portée de la question. Pas ce dernier bit supplémentaire, mais cela me rapproche également de cela. Merci encore.
Loduwijk

L'aide intégrée de PowerShell est l'une de mes fonctionnalités préférées, et apprendre à en tirer parti pour deviner et trouver des choses aide vraiment à accélérer la connaissance de PowerShell. Je dois également noter que je n'avais aucune idée que la documentation de cette variable se trouvait dans About_Automatic_Variables ... ce que j'avais réellement tapé help PSVersionTable, et elle répertorie les rubriques d'aide qui mentionnent PSVersionTable car il n'y avait pas de correspondance exacte.
Joshua McKinnon

1

D'après mon expérience, la PSVersion, qui est la version PowerShell correspond à la version WMF, au moins en ce qui concerne les principaux numéros de version. Je n'ai pas suivi toutes les versions d'aperçu pour voir comment elles correspondent, cependant.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.