O que o conteúdo da $ PSVersionTable do PowerShell representa?

10

Se eu estiver echo $PSVersionTableno PowerShell, recebo o que parece ser vários bits de informações da versão.

Os nomes das propriedades são

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

Todos, exceto 1, estão em uma notação de versão normal ( #.#.#) e o outro 1 (PSCompatibleVersions) é um conjunto de números de versão ( {1.0, 2.0})

O que cada um deles representa?


Além disso: Esta pergunta foi criada para aprofundar a resposta a outra pergunta que fiz em Qual versão do Windows Management Framework está instalada? . Um comentário e outros comentários em uma pergunta semelhante à qual eu vinculei sugerem que $PSVersionTablepode ser usado para obter a versão do WMF. Se uma dessas propriedades realmente fornecer a versão WMF e for garantida, por todos os meios, por favor responda lá também. Além disso, se você puder fornecer qualquer documentação ou evidência de confirmação, eu daria a você +2 se pudesse: minhas consultas do Google não estão produzindo nada satisfatório.

Loduwijk
fonte

Respostas:

11

A ajuda interna do PowerShell descreve $ PSVersionTable:

Get-Help about_Automatic_Variables

Pode ser necessário executar Update-Helpprimeiro se você não o tiver executado antes.

O que é ótimo Get-Helpé que você não precisa saber exatamente o que está procurando. Na verdade help PSVersionTable, o que eu digitei para encontrar esse tópico foi apenas justo e listou todos os tópicos de ajuda que continham "PSVersionTable" (existem alguns outros).

Esta é a seção about_Automatic_Variables que descreve $PSVersionTable, atualmente retornada pelo PowerShell para mim, mas é a parte menos importante, como observou o OP:

$ PsVersionTable Contém uma tabela de hash somente leitura que exibe detalhes sobre a versão do Windows PowerShell em execução na sessão atual. A tabela inclui os seguintes itens:

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
fonte
+1 para simplicidade óbvia. Eu estava trabalhando em uma resposta demorada e, quando vi isso, apaguei tudo porque isso diz em poucas palavras mais simples tudo o que realmente precisa ser dito.
Ryan Ries
Obrigado! Na verdade, eu esperava que houvesse alguma maneira de coletar meta-informações diretamente no PowerShell. Isso forneceu uma resposta e provavelmente ajudará mesmo além do escopo da pergunta. Não é o último bit adicional, mas isso me deixa um passo mais perto disso também. Obrigado novamente.
Loduwijk 10/09
A ajuda integrada do PowerShell é um dos meus recursos favoritos, e aprender como aproveitá-lo para adivinhar e descobrir as coisas realmente ajuda a acelerar o conhecimento do PowerShell. Devo também observar que não fazia ideia de que a documentação dessa variável estava em About_Automatic_Variables ... o que realmente digitei foi help PSVersionTablee listou tópicos de ajuda que mencionam PSVersionTable, pois não houve uma correspondência exata.
Joshua McKinnon
1

Pela minha experiência, a PSVersion, que é a versão do PowerShell, corresponde à versão do WMF, pelo menos no que diz respeito aos números das principais versões. Não acompanhei todos os lançamentos de pré-visualização para ver como eles se encaixam.

Mike Shepard
fonte