เส้นทางสู่ Powershell.exe (v 2.0)


114

Powershell (เวอร์ชัน 2.0) อยู่ที่ไหน เส้นทางไปยัง Powershell.exe คืออะไร? ฉันติดตั้ง Windows Server 2008 และ Powershell แล้ว เมื่อฉันดูโฟลเดอร์นี้:

PS C:\Windows\System32\WindowsPowerShell> dir


    Directory: C:\Windows\System32\WindowsPowerShell


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

ฉันมีเพียง Powershell v1.0 แต่เมื่อฉันพิมพ์

PS C:\> $Host.version

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


PS C:\>

แสดงว่าฉันติดตั้ง v2.0 แล้ว


8
"v1.0" ที่คุณเห็นด้านบนเป็นเพียงชื่อไดเร็กทอรีไม่ใช่หมายเลขเวอร์ชันจริง
doobop

เพียงแค่ดูตำแหน่งเป้าหมายของลิงก์ PowerShell
oxfn

คำตอบ:


171

ฉันเชื่อว่ามันเข้า C:\Windows\System32\WindowsPowershell\v1.0\ผมเชื่อว่ามันอยู่ในเพื่อสร้างความสับสนให้กับผู้บริสุทธิ์ MS จึงเก็บไว้ในไดเรกทอรีที่มีข้อความว่า "v1.0" เรียกใช้สิ่งนี้บน Windows 7 และตรวจสอบหมายเลขเวอร์ชันผ่าน$Host.Version( กำหนดเวอร์ชัน PowerShell ที่ติดตั้ง ) แสดงว่าเป็น 2.0

อีกทางเลือกหนึ่งคือพิมพ์$PSVersionTableที่พรอมต์คำสั่ง หากคุณใช้ v2.0 ผลลัพธ์จะเป็น:

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 ตัวแปรจะไม่มีอยู่และจะไม่มีเอาต์พุต

Localization PowerShell เวอร์ชัน 1.0, 2.0, 3.0, 4.0:

  • เวอร์ชัน 64 บิต: C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \
  • เวอร์ชัน 32 บิต: C: \ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0 \

1
อาจเป็นกรณีของพา ธ แบบฮาร์ดโค้ดที่พวกเขาต้องการรักษาความเข้ากันได้? Microsoft เป็น Microsoft
Tiago Leite

6
"เพื่อสร้างความสับสนให้กับผู้บริสุทธิ์" จะเป็นหนึ่งในคำพูดที่ฉันชอบ
simlev

48

ฉันคิดว่า $ PsHome มีข้อมูลที่คุณต้องการหรือไม่?

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

PS.> ขอความช่วยเหลือ about_automatic_variables

หัวข้อ
    about_Automatic_Variables ...


29

นี่คือทางเดียว ...

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

นี่อาจเป็นวิธีที่ดีกว่าเนื่องจากส่งคืนการโจมตีครั้งแรกบนเส้นทางเช่นเดียวกับที่คุณใช้ Powershell จากพรอมต์คำสั่ง ...

(Get-Command powershell.exe).Definition

3
เท่าที่ฉันกังวลนี่เป็นคำตอบที่ดีกว่าคำตอบที่ได้รับการโหวตมากถึง 35 ในปัจจุบันคำถามเดิมดูเหมือนจะเกี่ยวกับเส้นทางไปยังไฟล์ปฏิบัติการโดยมีข้อมูลเวอร์ชันที่ไม่เกี่ยวข้องกับคำถาม คำตอบนี้ตอบคำถามนั้นโดยตรงโดยข้ามแม้กระทั่งคำตอบที่ "ควรจะเป็น" และปล่อยให้บุคคลค้นหาว่า exe อยู่ที่ใดในระบบของตนเองแม้ว่าระบบนั้นจะแตกต่างจากค่าเริ่มต้นก็ตาม (นี่คือสิ่งที่ฉันมาที่นี่เพื่อค้นหาดังนั้นฉันจึงรู้สึกขอบคุณ)
ทอดด์วอลตัน

การค้นหาโดยอิงจากสิ่งที่สามารถเรียกใช้งานได้powershell.exeนั้นค่อนข้างผ่อนคลายเกินไปเนื่องจากคุณสามารถเปลี่ยนชื่อไฟล์ปฏิบัติการอื่นได้อย่างง่ายดายpowershell.exeและให้มันรับกระบวนการนั้นแทน Get-Process -Id $PIDจะใช้งานได้แม้ว่าฉันไม่แน่ใจว่า$PIDมีการเปิดตัวในเวอร์ชันใดก็ตาม
Charles Grunwald

ฉันเห็นจุดที่ "ผ่อนคลายเกินไป" ของคุณอย่างไรก็ตามการใช้ $ PID จะส่งคืนโฮสต์ปัจจุบันซึ่งอาจไม่ใช่ล่ามของ Powershell เช่น Powershell_ise.exe เป็นต้น
Nathan Hartley

อาจจะตั้งแต่เดือนพฤศจิกายน 2011 คุณสมบัติมีการเปลี่ยนแปลง สำหรับฉัน (ในเดือนกรกฎาคม 2016 โดยใช้ Windows Server 2012) ไม่มีคุณสมบัติ Source แต่ฉันสามารถใช้คุณสมบัติ. Definition ซึ่งส่งคืน: "C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe" . ตัวแปร $ PSHome ของฉันประกอบด้วย: "C: \ Windows \ System32 \ WindowsPowerShell \ v1.0" นอกจากนี้หากคุณใช้ get-process ให้พิจารณาใช้ 'powershell *' แทนเพียงแค่ powershell ในกรณีที่คุณใช้ powershell_ise HTH
Marcelo Finki

เปลี่ยนคำตอบจากการใช้. Source เป็น. Definition
Nathan Hartley

12

เป็น C: \ Windows \ System32 \ WindowsPowershell \ v1.0 เสมอ มันถูกทิ้งไว้เช่นนั้นสำหรับความสามารถในการย้อนกลับคือสิ่งที่ฉันได้ยินหรืออ่านที่ไหนสักแห่ง


2
% SystemRoot% \ system32 \ WindowsPowerShell \ v1.0 \ powershell.exe ในกรณีที่ SystemRoot ไม่ใช่ "C: \ Windows"
Matthew
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.