Como obter a versão do PowerShell

  1. Use a Propriedade $PSVersionTable.PSVersion para Obter a Versão do PowerShell
  2. Use a Propriedade (Get-Host).Version para Obter a Versão do PowerShell
  3. Use a Propriedade $host.Version para Obter a Versão do PowerShell
  4. Use o Registro para Obter a Versão do PowerShell
Criamos um vídeo detalhado no YouTube para acompanhar este artigo, incorporado abaixo!
Como obter a versão do PowerShell

O PowerShell é um tipo de prompt de comando mais complexo. Ele vem com um grande número de cmdlets preparados e a capacidade de utilizar o framework .NET/C# em vários cenários. O PowerShell ISE é uma interface gráfica para depurar e editar scripts no Windows. No PowerShell, a mesma coisa pode ser feita de várias maneiras. Portanto, principalmente, existem quatro maneiras de obter a versão do PowerShell, que são apresentadas abaixo.

Use a Propriedade $PSVersionTable.PSVersion para Obter a Versão do PowerShell

Então, o primeiro método que estamos analisando é o atributo PSVersion na variável automática $PSVersionTable. Aqui, ele representa o mecanismo do PowerShell.

PS52> $PSVersionTable.PSVersion

Saída:

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      19041  1320

$PSVersionTable é uma tabela hash somente leitura que fornece informações sobre a versão do mecanismo PowerShell, bem como a PSEdition. Este parâmetro pode ser Desktop ou Core, e fornecerá informações adicionais sobre a edição do PowerShell que você está usando.

A variável automática $PSVersionTable é tão precisa localmente quanto seria remotamente. No exemplo abaixo, encapsulando $PSVersionTable.PSVersion dentro de um bloco de script e executando-o em uma máquina remota retorna a mesma versão.

PS> Invoke-Command -ComputerName 11.0.0.3 -ScriptBlock {$PSVersionTable.PSVersion} -Credential $cred

Saída:

Use a propriedade $PSVersionTable.PSVersion para obter a versão do PowerShell

Use a Propriedade (Get-Host).Version para Obter a Versão do PowerShell

A ideia de hosts é utilizada no PowerShell. Não é o mecanismo do PowerShell que está causando o problema. Os hosts do PowerShell são editores de código/consoles com um terminal integrado. O host pode ter uma edição totalmente autônoma do PowerShell.

Quando (Get-Host).Version é usado, ele retorna um número de versão semelhante à versão do PowerShell.

PS52> (Get-Host).Version

Saída:

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      19041  1320

No entanto, a versão do Get-Host no terminal integrado nem sempre é a mesma. Embora o host normalmente represente a mesma edição do mecanismo PowerShell, isso não é sempre o caso. Quando Get-Host é chamado em um computador local, ele sempre retorna a mesma versão, mas nunca em sistemas remotos.

Portanto, usar Get-Host para tudo é uma ideia terrível.

Use a Propriedade $host.Version para Obter a Versão do PowerShell

$host.Version é outro método para obter a versão do mecanismo PowerShell. Get-Host entrega o mesmo resultado que a variável $host, uma variável totalmente automática.

PS52> $host.Version

Saída:

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      19041  1320

Isso é bastante semelhante ao método Get-host.

Use o Registro para Obter a Versão do PowerShell

Você também pode verificar o registro somente se não estiver interessado em lançar o PowerShell. A edição do PowerShell é armazenada no caminho da chave do registro como segue HKLM:\SOFTWARE\Microsoft\PowerShell\3\ e também como um valor. Get-ItemProperty pode ser usado para referenciar o valor PowerShellVersion nesta entrada do registro.

PS51> (Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name 'PowerShellVersion').PowerShellVersion

Saída:

5.1.19041.1
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.