¿Qué representan los contenidos de $ PSVersionTable de PowerShell?

10

Si echo $PSVersionTableen PowerShell, obtengo lo que parecen ser múltiples bits de información de versión.

Los nombres de las propiedades son

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

Todos excepto 1 están en una notación de versión normal ( #.#.#), y el otro 1 de ellos (PSCompatibleVersions) es un conjunto de números de versión ( {1.0, 2.0})

¿Qué representa cada uno de estos?


Además: esta pregunta se creó para profundizar en respuesta a otra pregunta que hice en ¿Qué versión de Windows Management Framework está instalada? . Un comentario allí, y otros comentarios en una pregunta similar que vinculé allí, sugieren que $PSVersionTablese puede usar para obtener la versión de WMF. Si una de estas propiedades realmente proporciona la versión WMF, y está garantizado, por supuesto, responda allí también. Además, si puede proporcionar cualquier documentación o evidencia de una confirmación, le daría +2 si pudiera: mis consultas de Google no están produciendo nada satisfactorio.

Loduwijk
fuente

Respuestas:

11

La ayuda incorporada de PowerShell describe $ PSVersionTable:

Get-Help about_Automatic_Variables

Es posible que deba ejecutar Update-Helpprimero si no lo ha ejecutado antes.

Lo bueno de esto Get-Helpes que no tienes que saber exactamente lo que estás buscando. Lo que escribí para encontrar este tema primero fue en realidad justo help PSVersionTable, y enumeró todos los temas de ayuda que contenían "PSVersionTable" (hay algunos otros).

Esta es la sección de about_Automatic_Variables que describe $PSVersionTable, tal como lo devolvió actualmente PowerShell para mí, pero es la parte menos importante, como señaló el OP:

$ PsVersionTable Contiene una tabla hash de solo lectura que muestra detalles sobre la versión de Windows PowerShell que se ejecuta en la sesión actual. La tabla incluye los siguientes elementos:

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
fuente
+1 para simplicidad obvia. Estaba trabajando en una respuesta de largo aliento y cuando vi esto, borré todo porque esto dice en menos palabras y más simples todo lo que realmente hay que decir.
Ryan Ries
¡Gracias! Realmente esperaba que pudiera haber alguna forma de recopilar metainformación directamente desde PowerShell. Esto proporcionó una respuesta y probablemente ayudará incluso más allá del alcance de la pregunta. No es el último bit adicional, pero esto también me acerca un paso más. Gracias de nuevo.
Loduwijk
La ayuda integrada de PowerShell es una de mis características favoritas, y aprender a aprovecharla para adivinar y encontrar cosas realmente ayuda a acelerar el conocimiento de PowerShell. También debo tener en cuenta que no tenía idea de que la documentación para esta variable estaba en About_Automatic_Variables ... lo que realmente escribí fue help PSVersionTable, y enumeró los temas de ayuda que mencionan PSVersionTable ya que no había una coincidencia exacta.
Joshua McKinnon
1

Desde mi experiencia, la PSVersion, que es la versión de PowerShell, coincide con la versión de WMF, al menos en lo que respecta a los números de versión principales. Sin embargo, no he rastreado todas las versiones preliminares para ver cómo coinciden.

Mike Shepard
fuente