Comment puis-je déterminer quelle version de PowerShell est installée sur un ordinateur et, en fait, si elle est installée du tout?
powershell
MagicAndi
la source
la source
$PSVersionTable
est plus fiable et retourne $ PSVersion. Vous pouvez également utiliser$PSVersionTable.PSVersion
. Même si vous êtes connecté à distance à la machine exécutant une version différente (invoke-command -computername myRemotePC -Credential foo {$host}
), il semble que$host
la version la plus basse convenue pour la sérialisation s'affiche. Alors$PSVersionTable
, la vraie version sera affichée. J'espère que cela aiderait quelqu'un ..notepad $profile
et jetéfunction psver { $PSVersionTable; $PSVersionTable.PSVersion }
dedans. Un rechargement avec. $profile
et je peux simplement taper àpsver
tout moment pour obtenir les informations de version détaillées et d'autres détails.J'utiliserais Get-Host ou $ PSVersionTable . Comme le souligne Andy Schneider,
$PSVersionTable
ne fonctionne pas dans la version 1; il a été introduit dans la version 2.la source
$host.version
n'est pas fiable - par exemple dans powergui, il renvoie la version hôte powergui qui n'est pas la même que la version du moteur powershell (ce qui est souhaité.)Vous pouvez regarder la variable intégrée,
$psversiontable
. S'il n'existe pas, vous avez V1. S'il existe, il vous donnera toutes les informations dont vous avez besoin.la source
Pour déterminer si PowerShell est installé, vous pouvez vérifier dans le registre l'existence de
et
et, si elle existe, si la valeur est 1 (pour installé), comme détaillé dans le billet de blog Vérifiez si PowerShell est installé et la version .
Pour déterminer la version de PowerShell installée, vous pouvez vérifier les clés de registre
et
Pour déterminer la version de PowerShell qui est installée à partir d'un script .ps1, vous pouvez utiliser la ligne unique suivante, comme détaillé sur PowerShell.com dans Quelle version de PowerShell suis-je en cours d'exécution .
Le même site donne également une fonction pour renvoyer la version:
la source
Vous pouvez vérifier directement la version avec une seule ligne en appelant PowerShell en externe , comme à partir de l'invite de commandes
Selon @psaul, vous pouvez réellement avoir une commande agnostique d'où elle vient (CMD, PowerShell ou Pwsh). Merci pour ça.
J'ai testé et cela a fonctionné parfaitement sur CMD et PowerShell.
la source
cmd
etpowershell
en vain. Je m'attendais aussi au même comportement. :)pwsh -Command "(Get-Variable PSVersionTable -ValueOnly).PSVersion"
fonctionne très bien.Vous pouvez vérifier que la version de Windows PowerShell est installée en effectuant la vérification suivante:
Dans la console Windows PowerShell, tapez la commande suivante à l'invite de commandes, puis appuyez sur ENTRÉE:
Vous verrez une sortie qui ressemble à ceci:
http://www.myerrorsandmysolutions.com/how-to-verify-the-windows-powershell-version-installed/
la source
La méthode de compatibilité descendante recommandée par Microsoft pour vérifier si PowerShell est installé et déterminer la version installée consiste à examiner deux clés de registre spécifiques. J'ai reproduit les détails ici au cas où le lien se romprait.
Selon la page liée:
Pour vérifier si une version de PowerShell est installée, recherchez la valeur suivante dans le Registre:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1
Pour vérifier si la version 1.0 ou 2.0 de PowerShell est installée, recherchez la valeur suivante dans le Registre:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine
la source
J'ai trouvé le moyen le plus simple de vérifier si l'installation était:
cmd
, puis OK)powershell
puis appuyez sur retour. Vous devriez ensuite obtenir l'PS
invite PowerShell :Vous pouvez ensuite vérifier la version à partir de l'invite PowerShell en tapant
$PSVersionTable.PSVersion
:Tapez
exit
si vous souhaitez revenir à l'invite de commandes (àexit
nouveau si vous souhaitez également fermer l'invite de commandes).Pour exécuter des scripts, voir http://ss64.com/ps/syntax-run.html .
la source
$host.version
est tout simplement faux / peu fiable. Cela vous donne la version de l'exécutable d'hébergement (powershell.exe, powergui.exe, powershell_ise.exe, powershellplus.exe, etc.) et non la version du moteur lui-même.La version du moteur est contenue dans
$psversiontable.psversion
. Pour PowerShell 1.0, cette variable n'existe pas, donc évidemment si cette variable n'est pas disponible, il est tout à fait sûr de supposer que le moteur est 1.0, évidemment.la source
Utilisation:
Vous pouvez télécharger le script détaillé dans Comment déterminer la version PowerShell installée .
la source
Le moyen le plus simple d'oublier cette page et de ne jamais y revenir est d'apprendre
Get-Variable
:Il n'est pas nécessaire de se souvenir de chaque variable. C'est juste
Get-Variable
assez (et "Il devrait y avoir quelque chose à propos de la version").la source
$PSVersionTable
Pour vérifier si PowerShell est installé, utilisez:
Pour vérifier si RC2 ou RTM est installé, utilisez:
Source: ce site Web .
la source
Étant donné que la réponse la plus utile n'a pas abordé la partie si existe , j'ai pensé en donner une solution via une solution rapide et sale. Il repose sur le fait que PowerShell se trouve dans la variable d'environnement de chemin d'accès , ce qui est probablement ce que vous voulez. (Pointe du chapeau à la première réponse car je ne le savais pas.) Collez-le dans un fichier texte et nommez-le
ou similaire.
la source
J'avais besoin de vérifier la version de PowerShell, puis d'exécuter le code approprié. Certains de nos serveurs exécutent la v5 et d'autres la v4. Cela signifie que certaines fonctions, comme compresser, peuvent ou non être disponibles.
Voici ma solution:
la source
L'applet de commande ci-dessous renverra la version PowerShell.
la source
$PSVersionTable
est une variable automatique; un objet. Ce n'est pas une applet de commande.Ceci est le résultat de recherche supérieur pour "Fichier batch obtenir la version powershell", donc je voudrais fournir un exemple de base de la façon de faire un flux conditionnel dans un fichier batch en fonction de la version powershell
Exemple générique
Exemple du monde réel
la source
Vous pouvez également appeler la commande "host" à partir de la ligne de commande PowerShell. Il devrait vous donner la valeur de la
$host
variable.la source
host
décide deGet-Host
. Quoi qu'il en soit, ce n'est pas un moyen fiable d'obtenir la version.Extension de la réponse avec un opérateur de sélection:
la source
Get-Host
).