Adam the Automator (Italiano)

In PowerShell, ci sono mille modi per fare la stessa cosa (o vicino ad essa). In questo post del blog, imparerai in ogni modo a controllare la versione di PowerShell che hai sui computer locali e remoti. Copriremo i cattivi modi e il mio modo consigliato.

Se vuoi passare da principiante di PowerShell a guru di PowerShell, ti consiglio di divorare questo mini-corso GRATUITO sulla costruzione di uno strumento PowerShell. Questo è un tutorial passo – passo con spiegazioni complete e guida da Adam l’Automator!,

Ci sono siti web che mostrano vari modi per controllare la versione di Powershell. Ma nessuno che ha compilato un elenco completo di tutti loro. Ho deciso di cambiarlo.

Tutti questi modi dovrebbero funzionare sia in Windows PowerShell che in PowerShell Core. Questi metodi dovrebbero funzionare anche nelle versioni di Windows PowerShell 1.0 fino a PowerShell 7.,

I modi in cui è possibile trovare una versione di PowerShell si esegue sono:

  1. (Get-Host).Version proprietà
  2. $host.Version proprietà
  3. Il registro di sistema (solo Windows PowerShell)
  4. $PSVersionTable.PSVersion proprietà

bisogna abbattere tutti i modi a trovare la versione di PowerShell dal meno al più consigliato.

Sommario

Get-Host

PowerShell ha un concetto noto come host. Un host è un programma che ospita il motore PowerShell., Non è il motore PowerShell stesso.La console PowerShell o un editor di codice con un terminale integrato sono host PowerShell.

Un host può avere una versione completamente indipendente da PowerShell stesso. Questo può ingannare molti nuovi arrivati. Lascia che ti mostri il perche’.

Se esegui (Get-Host).Version, vedrai che restituisce un numero di versione che sembra potrebbe essere la versione del motore PowerShell. L’aspetto può ingannare.

Di seguito ho eseguitoGet-Host su Windows PowerShell 5.1 e puoi vedere che torna con 5.1.17134.858., Questa sembra una versione legittima.

Tuttavia, a volte quando si esegue Get-Host in un terminale integrato, la versione non è la stessa. Anche se di solito l’host rappresenterà la stessa versione del motore, non è necessario farlo sempre.

Controlla la versione di Powershell tramite Get-Host su computer remoti

Anche seGet-Host sembra restituire la stessa versione quando viene eseguito su un computer locale, non lo farà mai su computer remoti.,

Ad esempio, eseguiamoGet-Host su un server Windows Server 2016 remoto tramiteInvoke-Command e vediamo cosa succede.

L’ultima volta che ho controllato, non è possibile eseguire PowerShell v1 su Windows Server 2016.

Affidarsi aGet-Host è solo una cattiva idea.

Controlla la versione di Powershell host host.Version command

Referencing$host.Version è un altro modo per controllare la versione di Powershell. La variabile$host è una variabile automatica che restituisce lo stesso output diGet-Host.,

Riferimento $host.Version

non C’è niente di speciale su questo metodo. È semplicemente lo stesso di eseguireGet-Host.

host host.Versione su computer remoti

Vedrai lo stesso comportamento tramite PowerShell Remoting con$host.Version mentre eseguiraiGet-Host.

Pericolo, Will Robinson!

Registro

Se non si desidera aprire PowerShell stesso, è anche possibile controllare il registro., La versione di PowerShell è nascosta sotto un valore nel percorso della chiave di registro HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine. Questa chiave di registro ha un valore chiamato PowerShellVersion che è possibile fare riferimento utilizzando Get-ItemProperty.

Puoi vedere che questa versione è simile ma non include la revisione come fanno le altre opzioni.

L’utilizzo di altri strumenti

L’utilizzo del registro di sistema significa anche che non è necessario utilizzare PowerShell per trovare la versione. È possibile eseguire comandi dal prompt dei comandi o da un altro strumento in grado di leggere il registro.,

Registro di sistema su computer remoti

Il registro di sistema è statico e i valori non cambieranno in locale o in remoto. Puoi essere sicuro che ciò che vedi localmente sarà lo stesso che vedi da remoto.

Mostrare la stessa versione localmente e da remoto è buono. Ma ho un modo migliore per mostrarti usando la variabile automatica $PSVersionTable.

Controlla la versione di Powershell tramite PS PSVersionTable.Comando PSVersion

L’ultimo e ultimo metodo fa riferimento alla proprietàPSVersionsulla variabile automatica$PSVersionTable., Questo metodo rappresenterà sempre il motore PowerShell.

La variabile automatica $PSVersionTable è una tabella hash di sola lettura che restituisce informazioni specifiche sulla versione di PowerShell engin. Questa variabile automatica non restituisce solo la versione ma anche PSEdition. Questa proprietà può Core o Desktop per fornire ulteriori informazioni sull’edizione di PowerShell in esecuzione.,

$PSVersionTable di uscita

$PSVersionTable su un Computer Remoto

con il $PSVersionTable automatico variabile è accurata localmente come è remoto. Puoi vedere sotto che avvolgendo$PSVersionTable.PSVersion in uno scriptblock ed eseguendo quel codice su un computer remoto, restituirà la stessa versione.

Sommario

In questo post del blog, hai imparato tutti i modi per controllare la versione di PowerShell sia localmente che in remoto., Spero che i primi metodi ti abbiano dato un’idea su quali modi non controllare la versione!

Consiglio sempre di usare $PSVersionTable.PSVersion. Tutti gli altri metodi possono apparire simili alla versione del motore PowerShell, ma non sempre riflettono la versione del motore.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *