Come ottenere la versione di PowerShell
-
Usa la proprietà
$PSVersionTable.PSVersion
per ottenere la versione di PowerShell -
Usa la proprietà
(Get-Host).Version
per ottenere la versione di PowerShell -
Usa la proprietà
$host.Version
per ottenere la versione di PowerShell - Usa il registro per ottenere la versione di PowerShell

PowerShell è un tipo di prompt dei comandi che è più complesso. Viene fornito con un grande numero di cmdlets preparati e la possibilità di sfruttare il framework .NET/C# in vari scenari. PowerShell ISE è un’interfaccia utente grafica per il debug e la modifica di script su Windows. In PowerShell, la stessa cosa può essere fatta in diversi modi. Quindi principalmente, ci sono quattro modi per ottenere la versione di PowerShell, e sono indicati di seguito.
Usa la proprietà $PSVersionTable.PSVersion
per ottenere la versione di PowerShell
Quindi il primo metodo che stiamo esaminando è l’attributo PSVersion nella variabile automatica $PSVersionTable
. Qui, rappresenta il motore di PowerShell.
PS52> $PSVersionTable.PSVersion
Output:
Major Minor Build Revision
----- ----- ----- --------
5 1 19041 1320
$PSVersionTable
è una hash-table di sola lettura che fornisce informazioni sulla versione del motore di PowerShell così come sulla PSEdition. Questo parametro può essere Desktop o Core, e ti fornirà informazioni aggiuntive sull’edizione di PowerShell che stai utilizzando.
La variabile automatica $PSVersionTable
è accurata localmente quanto lo sarebbe remotamente. Nell’esempio qui sotto, racchiudere $PSVersionTable.PSVersion
all’interno di un blocco di script e eseguirlo su una macchina remota restituisce la stessa versione.
PS> Invoke-Command -ComputerName 11.0.0.3 -ScriptBlock {$PSVersionTable.PSVersion} -Credential $cred
Output:
Usa la proprietà (Get-Host).Version
per ottenere la versione di PowerShell
L’idea degli host è utilizzata in PowerShell. Non è il motore di PowerShell a causare il problema. Gli host di PowerShell sono editor console/codice di PowerShell con un terminale integrato. L’host potrebbe avere un’edizione totalmente autonoma di PowerShell.
Quando si usa (Get-Host).Version
, restituisce un numero di versione simile a quello della versione di PowerShell.
PS52> (Get-Host).Version
Output:
Major Minor Build Revision
----- ----- ----- --------
5 1 19041 1320
Tuttavia, la versione di Get-Host nel terminale integrato non è sempre la stessa. Anche se l’host normalmente rappresenta la stessa edizione del motore di PowerShell, questo non è sempre il caso. Quando Get-Host viene chiamato su un computer locale, restituisce sempre la stessa versione ma mai sui sistemi remoti.
Pertanto, usare Get-Host per tutto è una pessima idea.
Usa la proprietà $host.Version
per ottenere la versione di PowerShell
$host.Version
è un altro metodo per ottenere la versione del motore di PowerShell. Get-Host
fornisce lo stesso risultato della variabile $host, una variabile completamente automatica.
PS52> $host.Version
Output:
Major Minor Build Revision
----- ----- ----- --------
5 1 19041 1320
Questo è piuttosto simile al metodo Get-host
.
Usa il registro per ottenere la versione di PowerShell
Puoi anche controllare il registro solo se non sei interessato a lanciare PowerShell. L’edizione di PowerShell è memorizzata nel percorso della chiave di registro come segue HKLM:\SOFTWARE\Microsoft\PowerShell\3\
e anche come valore. Get-ItemProperty
può essere usato per fare riferimento al valore PowerShellVersion in questa voce di registro.
PS51> (Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name 'PowerShellVersion').PowerShellVersion
Output:
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.