PowerShell สามารถใช้ได้ภายใน Windows Recovery Environment หรือไม่


10

ฉันพยายามเข้าถึง PowerShell จาก Command Prompt ใน Windows Recovery Environment ไม่ประสบความสำเร็จ ฉันสามารถเรียกใช้ VBScripts ที่นั่นได้โดยไม่มีปัญหาและตอนนี้ฉันก็สงสัยว่ามีวิธีการเรียกใช้คำสั่ง PowerShell ของฉันจากที่นั่นเช่นกัน

PowerShell สามารถใช้ได้ภายใน WinRE หรือฉันติดอยู่กับ VBScript / JScript ที่ดีที่สุด?

โปรดทราบว่านี่เป็นเรื่องเกี่ยวกับ WinRE ไม่ใช่ WinPE!

แก้ไข

EBGreen ได้ให้ความเห็นเกี่ยวกับการเพิ่มส่วนประกอบเพิ่มเติมใน WinPEที่จะอนุญาตให้ใช้ PowerShell ภายในสภาพแวดล้อมนั้น สามารถใช้แนวทางเดียวกันกับ WinRE ได้หรือไม่


คุณสามารถเริ่ม PowerShell จากบรรทัดคำสั่งด้วยstart powershellจากพรอมต์คำสั่ง สิ่งนี้ทำงานใน WinRE หรือไม่
George Duckett

ฉันได้ลองทั้งสองstart powershellและpowershellจากพรอมต์คำสั่ง WinRE โดยไม่ประสบความสำเร็จ - บอกว่ามันเป็นคำสั่งที่ไม่รู้จัก พวกเขาทำงานได้ดีใน Windows แม้ว่า ฉันสงสัยว่าสิ่งนี้เกี่ยวข้องกับการพึ่งพา PowerShell ใน. Net หรือไม่
Riaan

ตกลงคำแนะนำขั้นสุดท้ายลองไปที่ powershell exe แล้วเปิดใช้งาน จากที่นี่Path to Powershell.exe (v 2.0)ฉันเดาว่ามันจะเป็นแบบนี้C:\Windows\System32\WindowsPowerShell\v1.0แต่คุณอาจต้องค้นหาใน windows ก่อน
George Duckett

ตอนแรกฉันพยายามเรียกใช้powershellคำสั่งจากไดเรกทอรีโดยไม่ประสบความสำเร็จ ฉันได้ผลลัพธ์เช่นเดียวกับ George Duckett ด้านล่าง
Riaan

คำตอบ:


7

คุณสามารถทำได้ แต่คุณจะต้องติดตั้ง Windows 8 และWindows 8 ADK พร้อม Windows PE (เป็นการดาวน์โหลดที่ค่อนข้างใหญ่) ฉันค่อนข้างแน่ใจว่าคุณสามารถใช้ภาพ Win RE นี้ในการติดตั้ง Windows 7 เมื่อคุณเริ่มใช้งานได้ แต่ฉันไม่แน่ใจ 100%

มีวิธีอื่นอีกสองสามวิธีที่คุณสามารถทำได้ซึ่งรวมถึงการสร้างอิมเมจ Windows PE ด้วยเครื่องมือสภาพแวดล้อมการกู้คืนที่ติดตั้ง แต่นี่อาจเป็นวิธีที่ง่ายที่สุดและจะส่งผลให้ PowerShell พร้อมใช้งานทุกครั้งที่เครื่องของคุณเข้าสู่สภาพแวดล้อมการกู้คืน ต้องบูตเครื่องโดยใช้สื่อแบบถอดได้

ค้นหา WinRE.wim ของคุณ

ฉันใช้ทุกอย่างเพื่อค้นหาของฉัน C:\Recovery\67c45205-df4a-11e1-8fd9-9103ad6af7efมันเกิดขึ้นที่จะซ่อนตัวอยู่ใน นี่อาจเป็นจริงสำหรับคุณเช่นกัน Hide Protected System Filesที่จะดูคุณจะต้องปิดการใช้งาน การตั้งค่านี้ซ่อนอยู่ใน Explorer ภายใต้View, Options, Change Folder and Search Options, View tab.

เลิกซ่อนสารพัด

เปลี่ยนการอนุญาต

คุณจะต้องยุ่งกับการอนุญาตเพื่อให้ได้เห็นการอนุญาตในโฟลเดอร์นี้ การล้อเล่นกับการอนุญาตมักจะทำให้คุณประหม่านิดหน่อย แต่จงเคลื่อนไปข้างหน้าถ้าคุณกล้า ฉันเพียงแค่เพิ่มชื่อผู้ใช้ของฉันไปที่สิทธิ์ด้านความปลอดภัยที่มีการควบคุมเต็มรูปแบบ

คลิกขวาที่การกู้คืนเลือกคุณสมบัติ

เปิดคุณสมบัติ

เปิดแท็บความปลอดภัย

คลิกที่แท็บความปลอดภัย

คลิกขั้นสูง

ใช่แล้วถ้าคุณต้องการความช่วยเหลืออย่างมากคุณอาจไม่ควรทำเช่นนี้ ...

คลิกเพิ่ม

การล้อเล่นด้วยการอนุญาตด้านความปลอดภัยอาจทำให้เกิดความเจ็บปวดอย่างรุนแรง

เลือกอาจารย์ใหญ่

แต่ภาพหน้าจอเป็นเรื่องสนุกและให้ฉันตัวแทนทั้งหมด

เพิ่มชื่อผู้ใช้ของคุณ (หรือผู้ดูแลระบบถ้าคุณต้องการทำงานกับมันในฐานะผู้ดูแลระบบ)

ตอนนี้คุณรู้ชื่อจริงของฉันสุดยอดจริงๆแล้ว zomg!

คัดลอก WinRE.wim

ฉันเลือกที่จะคัดลอก. wim เพื่อที่ฉันจะได้ทำงานกับมัน แต่ฉันคิดว่าคุณสามารถทำงานกับมันได้โดยตรงเช่นกัน หากคุณเลือกที่จะทำงานกับมันโดยตรงให้แก้ไขคำสั่งอย่างเหมาะสม C:\winre\ผมคัดลอกเหมือง

เพิ่ม PowerShell ให้กับรูปภาพ

ตอนนี้เรามี. wim เพื่อทำงานกับเราสามารถเพิ่มส่วนประกอบที่จำเป็นสำหรับ PowerShell คุณจะต้องมีส่วนประกอบที่เหมาะสมของ Windows ADK รวมถึง Windows PE

เมานต์ภาพ

ค้นหาเครื่องมือการปรับใช้และการสร้างภาพคลิกขวาและเรียกใช้ในฐานะผู้ดูแลระบบ

อย่างจริงจังหากคุณไม่พบสิ่งนี้ด้วยตนเองในตอนนี้

สร้างโฟลเดอร์เพื่อต่อเชื่อมภาพ

อย่างน้อยฉันก็ไม่ได้ให้คนอื่นลอกและวางสิ่งนี้

เรียกใช้คำสั่งนี้เพื่อเมานต์รูปภาพ: ภาพหน้าจอเหมาะสำหรับการป้องกันการคัดลอกและวาง!

เพิ่มแพ็คเกจที่จำเป็น

มีกลับน้อยและมีส่วนร่วมในคำสั่งดังต่อไปนี้มาเป็นและสิ่งที่ได้จะต้องทำในการสั่งซื้อ เราจำเป็นต้องติดตั้งแพ็คเกจต่อไปนี้:

  • WinPE-WMI
  • WinPE-NetFX4
  • WinPE-การเขียนสคริปต์
  • WinPE-PowerShell3
  • WinPE-DismCmdlets
  • WinPE-StorageWMI
  • WinPE-HTA

นอกจากนี้เรายังจะต้องติดตั้งแพคเกจ en-us (แทนที่ภาษาที่คุณต้องการ) สำหรับแต่ละแพ็คเกจข้างต้นเช่นกัน

เริ่มด้วยสิ่งนี้:

dism /image:C:\winre\mount /add-package /packagepath:"C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-WMI.cab

จากนั้นเรียกใช้สิ่งนี้:

dism /image:C:\winre\mount /add-package /packagepath:"C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-WMI_en-us.cab

ตอนนี้กดUpสองครั้งเพื่อเรียกคืนคำสั่งแรกและแทนที่ WMI ด้วย NetFX4 ทำซ้ำสิ่งนี้จนกว่าคุณจะติดตั้งส่วนประกอบที่จำเป็นทั้งหมดพร้อมกับภาษาที่ต้องการ อย่าลืมทำสิ่งนี้ตามลำดับ

เสร็จสิ้นภาพ

ตอนนี้แพคเกจทั้งหมดอยู่ในสถานที่ที่เราต้องดำเนินการเปลี่ยนแปลงของเราและเสร็จสิ้น WinRE.wim ของเรา จากนั้นเราสามารถสร้าง. iso ทดสอบใน Hyper-V และคัดลอก WinRE.wim ไปยังไฟล์กู้คืนของเราเพื่อให้เราสามารถเข้าถึง PowerShell ได้ในครั้งต่อไปที่ระบบล่ม

ถอนติดตั้งและกระทำ

เรียกใช้คำสั่งต่อไปนี้เพื่อยกเลิกการต่อภาพและยอมรับการเปลี่ยนแปลง: คำสั่งดังกล่าวถูกดูดให้พิมพ์ดังนั้นฉันจะปล่อยให้สไลด์ C + P บนอันนั้น ...

มีหลายสิ่งที่อาจผิดพลาดได้ที่นี่และข้อความแสดงข้อผิดพลาดทำให้เข้าใจผิดอย่างมาก ตรวจสอบให้แน่ใจว่าไม่มีการพิมพ์ผิดและคุณไม่ได้เปิดอะไรที่เกี่ยวข้องกับไฟล์เหล่านี้แม้แต่ Explorer

แทนที่ WinRE.wim ดั้งเดิมและทดสอบ

ทำการสำรองข้อมูล WinRE.wim ดั้งเดิมของคุณและแทนที่ด้วยอันใหม่ ตอนนี้รัน msconfig แล้วเปิดแท็บ Boot ตรวจสอบและเลือกSafe Boot Alternate Shellรีบูทและทดลองใช้งาน

TROLOLOL คุณติดอยู่ในเซฟบูตตอนนี้!  ฉันรีสตาร์ทสามครั้งก่อนที่ฉันจะรู้ว่าการตั้งค่านี้ติด ...

บูม! PowerShell ใน Windows RE

Start PowerShell และสนุกสนาน!

อ่า PowerShell สีน้ำเงินที่สวยงาม ... ชัยชนะที่แสนหวาน

ในการออกจากเซฟโหมดคุณจะต้องเรียกใช้ msconfig จากบรรทัดคำสั่งและยกเลิกการเลือก Safe Boot


1
ช้า ... ตบมือ
วิลเลียมแจ็คสัน

ขอบคุณสำหรับคำตอบมากมาย Tanner! นี่คือสิ่งที่ฉันต้องการ
Riaan

1
ในกรณีที่อิมเมจ WinRE ของคุณอยู่ในหนึ่งในพาร์ติชั่นการกู้คืน OEM คุณสามารถใช้Visual BCD Editorเพื่อดูรายการบูตการกู้คืนและค้นหาเส้นทางไปยังรูปภาพ
บ๊อบ

1
7 ปีต่อมาใน "PE สำหรับ win10" ยังคงใช้ได้ แต่แพคเกจถูกเปลี่ยนชื่อทิ้งตัวเลข ใช้WinPE-PowerShellแทนWinPE-PowerShell3และในสถานที่ของWinPE-NetFX WinPE-NetFX4ที่WinPE-HTAจริงไม่จำเป็นและก็ไม่เกี่ยวข้องกับ PS อย่าเพิ่มมันหากคุณไม่ได้ใช้แอพ HTA StorageWMI และ DismCmdlets เป็นโมดูลสำหรับ PS คุณไม่ต้องการถ้าคุณไม่ต้องการ พวกเขาทดแทน diskpart และ dism คู่มือ MS อย่างเป็นทางการ
papo

2
  1. Windows PowerShell ต้องการ Microsoft .NET Framework [ แหล่งที่มา ]
  2. Windows Recovery Environment ใช้ Windows PE [ แหล่งที่มา ]
  3. Windows PE ไม่รองรับ. NET Framework [ แหล่งที่มา ]

ดังนั้น PowerShell ไม่สามารถใช้ได้ใน WinRE


ใช่ฉันคิดว่าอาจเป็นเพราะการพึ่งพา MS.Net เหล่านั้น คำตอบนี้ถูกต้องแน่นอนสำหรับการติดตั้งที่ไม่ได้แก้ไขเริ่มต้น ขอบคุณพระเจ้าวิลเลียม!
Riaan

0

ใช่ฉันลองทำหลายอย่างและสรุปว่ามันไม่ทำงาน คำตอบของวิลเลียมให้หลักฐานเพื่อสำรองข้อมูลนี้


ฉันทำบันทึกของที่ powerhell อยู่ บนเครื่องของฉันมันเข้าc:\windows\system32\windowspowershell\v1.0\powershell.exeและc:\windows\syswow64\windowspowershell\v1.0\powershell.exeออก

ทางลัดในเครื่องมือการจัดการชี้ไปที่ syswow64

จากนั้นฉันรีสตาร์ทเข้าสู่โหมดการกู้คืนและไปที่พร้อมท์คำสั่ง

สิ่งแรกที่ฉันสังเกตได้คือฉันไม่สามารถไปที่cไดรฟ์ได้

ดังนั้นฉันdiskpartจึงป้อนคำสั่งlist volเพื่อรับรายการไดรฟ์ที่ใช้งานได้ ในเครื่องของฉันไดรฟ์ C ของฉันถูกเรียกว่าไดรฟ์ D ของฉันในคอนโซลการกู้คืน

ดังนั้นผมจึงเดินออกมาdiskpartจากพิมพ์exitแล้วในคอนโซลคำสั่งพิมพ์ตามด้วยd:cd\windows\syswow64\windowspowershell\v1.0

โปรดทราบว่าหากคุณดำเนินการเป็นระยะการใช้dirเพื่อยืนยันชื่อโฟลเดอร์จะไม่แสดงทุกอย่าง (เช่นv1.0โฟลเดอร์)

เมื่อฉันข้ามมือของฉันและพิมพ์powershellเพียงเพื่อรับข้อความ:

The subsystem needed to support the image type is not present

ฉันไปที่ข้อความแสดงข้อผิดพลาดด้านบนสักเล็กน้อย แต่ไม่พบสิ่งใดที่จะบ่งบอกว่า PowerShell อาจใช้งานได้


ฉันยังลอง powershell.exe อื่น ๆ ใน system32 แต่ไม่มีข้อความเลย (ไม่มีdidn't recognise the commandหรืออะไรเลย

ป้อนคำอธิบายรูปภาพที่นี่


มันใช้งานไม่ได้ ขอบคุณจอร์จ
Riaan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.