2010-11-10 19 views
83

Dove si trova la Powershell (versione 2.0)? Qual è il percorso di Powershell.exe? Ho installato Windows Server 2008 e Powershell. Quando guardo questa cartella:Path to Powershell.exe (v 2.0)

PS C:\Windows\System32\WindowsPowerShell> dir 


    Directory: C:\Windows\System32\WindowsPowerShell 


Mode    LastWriteTime  Length Name 
----    -------------  ------ ---- 
d----   20.4.2010  17:09   v1.0 

Ho solo Powershell v1.0. Ma quando digito

PS C:\> $Host.version 

Major Minor Build Revision 
----- ----- ----- -------- 
2  0  -1  -1 


PS C:\> 

Indica che ho installato la v2.0.

+7

La "v1.0" che vedi sopra è solo un nome di directory, non un numero di versione effettivo. – doobop

+0

Basta guardare la posizione di destinazione del collegamento PowerShell – oxfn

risposta

125

Credo sia in C:\Windows\System32\WindowsPowershell\v1.0\. Al fine di confondere l'innocente, MS lo ha tenuto in una directory denominata "v1.0". L'esecuzione di questo su Windows 7 e il controllo del numero di versione tramite $Host.Version (Determine installed PowerShell version) mostra che è 2.0.

Un'altra opzione è il tipo $PSVersionTable al prompt dei comandi. Se si esegue v2.0, l'uscita sarà:

Name       Value 
----       ----- 
CLRVersion      2.0.50727.4927 
BuildVersion     6.1.7600.16385 
PSVersion      2.0 
WSManStackVersion    2.0 
PSCompatibleVersions   {1.0, 2.0} 
SerializationVersion   1.1.0.1 
PSRemotingProtocolVersion  2.1 

Se si sta eseguendo la versione 1.0, la variabile non esiste e non ci sarà alcuna uscita.

Localizzazione PowerShell versione 1.0, 2.0, 3.0, 4.0:

  • 64 bit Versione: C: \ Windows \ System32 \ WindowsPowerShell \ v1.0
  • 32 bit Versione: C: \ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0
10

È sempre C: \ Windows \ System32 \ WindowsPowershell \ v1.0. È stato lasciato così per la retrocompatibilità è ciò che ho sentito o letto da qualche parte.

+0

Ok, quindi sembra essere. – jjoras

20

Ecco un modo ...

(Get-Process powershell | select -First 1).Path 

Qui è forse un modo migliore, in quanto restituisce il primo successo sulla strada, proprio come se si fosse eseguito PowerShell dal prompt dei comandi ...

(Get-Command powershell.exe).Definition 
+3

Per quanto mi riguarda, questa è una risposta migliore di quella attualmente votata fino a 35. La domanda originale sembrava riguardare il percorso dell'eseguibile, con le informazioni sulla versione incidentali alla domanda. Questa risposta affronta direttamente quella domanda, scavalcando anche la risposta "presunta di essere" e permettendo a una persona di scoprire esattamente dove si trova l'exe sul proprio sistema, anche se tale sistema differisce dall'impostazione predefinita. (Questo è quello che sono venuto cercando qui, quindi lo apprezzo.) –

+0

La ricerca basata sul file eseguibile 'powershell.exe' è un po 'troppo rilassata, dato che potresti facilmente rinominare un altro eseguibile in' powershell.exe', e raccoglie invece quel processo. 'Get-Process -Id $ PID' funzionerebbe, anche se non sono sicuro di quale versione' $ PID' sia stata introdotta. –

+0

Vedo il tuo punto "troppo rilassato", tuttavia, usando il $ PID restituirò l'host corrente, che potrebbe non essere un interprete di Powershell. Come Powershell_ise.exe, per esempio. –

35

Penso che $ PsHome abbia le informazioni che cerchi?

 
PS .> $PsHome 
C:\Windows\System32\WindowsPowerShell\v1.0 

PS .> Get-Help about_automatic_variables 

TOPIC 
    about_Automatic_Variables ... 

Problemi correlati