2010-11-10 23 views
83

Powershell (phiên bản 2.0) nằm ở đâu? Đường dẫn đến Powershell.exe là gì? Tôi đã cài đặt Windows Server 2008 và Powershell. Khi tôi nhìn vào thư mục này:Đường dẫn đến 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 

Tôi chỉ có Powershell v1.0. Nhưng khi tôi nhập

PS C:\> $Host.version 

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


PS C:\> 

Nó cho thấy rằng tôi đã cài đặt v2.0.

+7

"v1.0" bạn thấy ở trên chỉ là tên thư mục, không phải là số phiên bản thực. – doobop

+0

Chỉ cần nhìn vào vị trí đích của liên kết PowerShell – oxfn

Trả lời

125

Tôi tin rằng nó ở trong C:\Windows\System32\WindowsPowershell\v1.0\. Để gây nhầm lẫn cho người vô tội, MS giữ nó trong một thư mục có nhãn "v1.0". Chạy ứng dụng này trên windows 7 và kiểm tra số phiên bản qua $Host.Version (Determine installed PowerShell version) hiển thị phiên bản 2.0.

Tùy chọn khác là nhập $PSVersionTable tại dấu nhắc lệnh. Nếu bạn đang chạy v2.0, đầu ra sẽ là:

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 

Nếu bạn đang chạy phiên bản 1.0, biến không tồn tại và sẽ không có đầu ra.

Localization PowerShell phiên bản 1.0, 2.0, 3.0, 4.0:

  • 64 bit phiên bản: C: \ Windows \ System32 \ WindowsPowerShell \ v1.0
  • 32 bit phiên bản: C: \ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0
10

Nó luôn là C: \ Windows \ System32 \ WindowsPowershell \ v1.0. Nó được để lại như thế cho khả năng tương thích ngược là những gì tôi nghe hoặc đọc ở đâu đó.

+0

Ok, có vẻ như vậy. – jjoras

20

Dưới đây là một cách ...

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

Đây có thể là một cách tốt hơn, vì nó trả về hit đầu tiên trên con đường, giống như nếu bạn đã chạy Powershell từ một dấu nhắc lệnh ...

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

Theo như tôi quan tâm, đây là câu trả lời hay hơn so với câu trả lời hiện tại lên tới 35. Câu hỏi ban đầu dường như là về đường dẫn đến tệp thực thi, với thông tin phiên bản là ngẫu nhiên đối với câu hỏi. Câu trả lời này trực tiếp giải quyết câu hỏi đó, bỏ qua ngay cả câu trả lời "được cho là" và cho phép một người biết chính xác vị trí của exe trên hệ thống của riêng họ, ngay cả khi hệ thống đó khác với mặc định. (Đây là những gì tôi đến đây để tìm kiếm, vì vậy tôi đánh giá cao nó.) –

+0

Tìm kiếm dựa trên tệp thực thi là 'powershell.exe' hơi thoải mái vì bạn có thể dễ dàng đổi tên một tệp thực thi khác thành' powershell.exe' và có nó chọn quá trình đó thay thế. 'Get-Process -Id $ PID' sẽ hoạt động, mặc dù tôi không chắc chắn phiên bản' $ PID' đã được giới thiệu. –

+0

Tôi thấy điểm "quá thoải mái" của bạn, tuy nhiên, bằng cách sử dụng $ PID sẽ trả về máy chủ hiện tại, có thể không phải là thông dịch viên của Powershell. Ví dụ như Powershell_ise.exe. –

35

Tôi nghĩ $ PsHome có thông tin bạn đang theo dõi?

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

PS .> Get-Help about_automatic_variables 

TOPIC 
    about_Automatic_Variables ... 

Các vấn đề liên quan