Obtenir la version PowerShell
-
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 -
Utilisez la propriété
$host.Version
pour obtenir la version de PowerShell - Utiliser le registre pour obtenir la version de 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é (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
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.