Powershell.exe (v 2.0) yolu


114

Powershell (sürüm 2.0) nerede bulunur? Powershell.exe dosyasının yolu nedir? Windows Server 2008 ve Powershell yüklü. Bu klasöre baktığımda:

PS C:\Windows\System32\WindowsPowerShell> dir


    Directory: C:\Windows\System32\WindowsPowerShell


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

Yalnızca Powershell v1.0'ım var. Ama yazdığımda

PS C:\> $Host.version

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


PS C:\>

V2.0'ın kurulu olduğunu gösteriyor.


8
Yukarıda gördüğünüz "v1.0" yalnızca bir dizin adıdır, gerçek bir sürüm numarası değildir.
doobop

PowerShell bağlantısının hedef konumuna bakın
oxfn

Yanıtlar:


171

Ben inanıyorum C:\Windows\System32\WindowsPowershell\v1.0\. Masumları karıştırmak için, MS onu "v1.0" etiketli bir dizinde tuttu. Bunu Windows 7'de çalıştırmak ve sürüm numarasını $Host.Version( Yüklü PowerShell sürümünü belirle ) aracılığıyla kontrol etmek, 2.0 olduğunu gösterir.

Diğer bir seçenek, $PSVersionTablekomut istemine yazmadır. V2.0 kullanıyorsanız, çıktı şu şekilde olacaktır:

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

1.0 sürümünü çalıştırıyorsanız, değişken mevcut değildir ve çıktı olmayacaktır.

Yerelleştirme PowerShell sürüm 1.0, 2.0, 3.0, 4.0:

  • 64 bit sürümü: C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \
  • 32 bit sürümü: C: \ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0 \

1
Belki de uyumluluğu korumak istedikleri sabit kodlanmış yollar vakasıydı? Microsoft Microsoft oluyor
Tiago Leite

6
"Masumları karıştırmak için" en sevdiğim alıntılardan biri olacak.
simlev

48

Sanırım peşinde olduğunuz bilgiye $ PsHome sahip mi?

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

PS.> About_automatic_variables hakkında Yardım Alın

BAŞLIK
    about_Automatic_Variables ...


29

İşte bir yol ...

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

Powershell'i bir komut isteminden çalıştırmış gibi, yoldaki ilk isabeti döndürdüğü için muhtemelen daha iyi bir yol ...

(Get-Command powershell.exe).Definition

3
Bana kalırsa, bu şu anda 35'e kadar oy verilenden daha iyi bir cevap. Orijinal soru, sürüm bilgisinin soruyla ilgili olmasıyla birlikte yürütülebilir dosyanın yolu hakkındaydı. Bu cevap, "olması gereken" cevabı bile atlayarak ve bir kişinin kendi sisteminde exe'nin tam olarak nerede olduğunu, bu sistem varsayılandan farklı olsa bile, bulmasına izin vererek doğrudan bu soruyu ele alır. (Buraya aradığım şey bu, bu yüzden minnettarım.)
Todd Walton

Yürütülebilir varlığa dayalı arama yapmak powershell.exebiraz fazla rahattır, çünkü başka bir yürütülebilir dosyayı kolayca yeniden adlandırabilir powershell.exeve bunun yerine bu işlemi almasını sağlayabilirsiniz. Get-Process -Id $PIDhangi sürümün $PIDtanıtıldığından emin değilim .
Charles Grunwald

"Çok rahat" noktanızı görüyorum, ancak, $ PID'yi kullanmak, bir Powershell yorumlayıcısı olmayabilecek mevcut ana bilgisayarı döndürür. Örneğin Powershell_ise.exe gibi.
Nathan Hartley

belki Kasım 2011'den beri özellikler değişti. Benim için (Temmuz 2016'da, Windows Server 2012 kullanarak) .Source özelliği mevcut değil, Bunun yerine "C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe" döndüren .Definition özelliğini kullanabilirim. . $ PSHome değişkenim şunları içerir: "C: \ Windows \ System32 \ WindowsPowerShell \ v1.0" Ayrıca, eğer get-process kullanıyorsanız, powershell_ise kullanıyorsanız, sadece powershell yerine 'powershell *' kullanmayı düşünün. HTH
Marcelo Finki

.Source kullanmaktan cevap .Definition olarak değiştirildi.
Nathan Hartley

12

Her zaman C: \ Windows \ System32 \ WindowsPowershell \ v1.0'dır. Geriye dönük uyumluluk için böyle bırakıldı, bir yerlerde duyduğum veya okuduğum şeydi.


2
% SystemRoot% \ system32 \ WindowsPowerShell \ 1.0 \ powershell.exe. SystemRoot'un "C: \ Windows" olmaması durumunda
Matthew
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.