Obtenir la version PowerShell

Migel Hewage Nimesha 30 janvier 2023
  1. Utilisez la propriété $PSVersionTable.PSVersion pour obtenir la version de PowerShell
  2. Utilisez la propriété (Get-Host).Version pour obtenir la version de PowerShell
  3. Utilisez la propriété $host.Version pour obtenir la version de PowerShell
  4. Utiliser le registre pour obtenir la version de PowerShell
Obtenir la version PowerShell

PowerShell est un type d’invite de commande plus complexe. Il est livré avec un grand nombre d’cmdlets préparées et la possibilité d’exploiter le framework .NET/C# dans divers scénarios. PowerShell ISE est une interface utilisateur graphique pour le débogage et l’édition de scripts sous Windows. Dans PowerShell, la même chose peut être effectuée de différentes manières. Donc, principalement, il existe quatre façons d’obtenir la version de PowerShell, et elles sont indiquées ci-dessous.

Utilisez la propriété $PSVersionTable.PSVersion pour obtenir la version de PowerShell

Ainsi, la première méthode que nous examinons est l’attribut PSVersion dans la variable automatique $PSVersionTable. Ici, il représente le moteur PowerShell.

PS52> $PSVersionTable.PSVersion

Production :

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

$PSVersionTable est une table de hachage en lecture seule qui donne des informations sur la version du moteur PoweShell ainsi que sur PSEdition. Ce paramètre peut être Desktop ou Core, et il vous fournira des informations supplémentaires sur l’édition PowerShell que vous utilisez.

La variable automatisée $PSVersionTable est aussi précise localement qu’elle le serait à distance. I dans l’exemple ci-dessous qui entoure $PSVersionTable. PSVersion à l’intérieur d’un bloc de script et son exécution sur une machine distante renvoie la même version.

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

Production :

Utilisez la propriété $PSVersionTable.PSVersion pour obtenir la version de PowerShell

Utilisez la propriété (Get-Host).Version pour obtenir la version de PowerShell

L’idée d’hôtes est utilisée dans PowerShell. Ce n’est pas le moteur PowerShell qui cause le problème. Les hôtes PowerShell sont un éditeur de code/console PowerShell avec un terminal intégré. L’hôte pourrait avoir une édition totalement autonome de PowerShell.

Lorsque (Get-Host).Version est utilisé, il génère un numéro de version similaire à la version PowerShell.

PS52> (Get-Host).Version

Production :

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

Cependant, la version de Get-Host dans le terminal intégré n’est pas toujours la même. Même si l’hôte représente normalement la même édition du moteur PowerShell, ce n’est pas toujours le cas. Lorsque Get-Host est appelé sur un ordinateur local, il renvoie toujours la même version mais jamais sur les systèmes distants.

Par conséquent, utiliser Get-Host pour tout est une très mauvaise idée.

Utilisez la propriété $host.Version pour obtenir la version de PowerShell

.$host.Version est une autre méthode pour obtenir la version du moteur PowerShell. Get-Host fournit le même résultat que la variable $host, une variable entièrement automatisée.

PS52> $host.Version

Production :

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

Ceci est assez similaire à la méthode Get-host.

Utiliser le registre pour obtenir la version de PowerShell

Vous pouvez également vérifier le registre uniquement si vous ne souhaitez pas lancer PowerShell. L’édition de PowerShell est stockée dans le chemin de la clé de registre comme suit HKLM:\SOFTWARE\Microsoft\PowerShell\3\ et également en tant que valeur. Get-ItemProperty peut être utilisé pour référencer la valeur PowerShellVersion dans cette entrée de registre.

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

Production :

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.