PowerShell có thể được sử dụng trong Môi trường phục hồi Windows không?


10

Tôi đã cố gắng truy cập PowerShell từ Dấu nhắc lệnh trong Môi trường phục hồi Windows nhưng không thành công. Tôi có thể chạy VBScripts ở đó mà không gặp vấn đề gì và bây giờ tôi tự hỏi liệu có cách nào để chạy các lệnh PowerShell của mình không.

PowerShell có thể được sử dụng trong WinRE không, hay tôi bị mắc kẹt với sự hỗ trợ VBScript / JScript tốt nhất?

Xin lưu ý rằng đây là về WinRE chứ không phải WinPE!

BIÊN TẬP

EBGreen đã nhận xét về việc thêm các thành phần bổ sung vào WinPE cho phép sử dụng PowerShell trong môi trường đó. Cách tiếp cận tương tự có thể được thực hiện với WinRE?


Bạn có thể bắt đầu powershell từ dòng lệnh với start powershelltừ dấu nhắc lệnh. Cái này có hoạt động trong WinRE không?
George Duckett

Tôi đã thử cả hai start powershellpowershelltừ Dấu nhắc lệnh WinRE nhưng không thành công - nói rằng đó là những lệnh chưa biết. Chúng hoạt động tốt trong Windows. Tôi tự hỏi liệu điều này có liên quan gì đến sự phụ thuộc của PowerShell trên .Net
Riaan

Ok, đề nghị cuối cùng, hãy thử điều hướng đến exe powershell và chạy nó. Từ đây, Đường dẫn đến Powershell.exe (v 2.0) Tôi đoán nó sẽ giống như thế C:\Windows\System32\WindowsPowerShell\v1.0nhưng trước tiên bạn có thể cần tìm kiếm trong các cửa sổ.
George Duckett

Ban đầu tôi đã thử chạy powershelllệnh từ thư mục của nó nhưng không thành công. Tôi đã có kết quả tương tự như George Duckett bên dưới.
Riaan

Câu trả lời:


7

Bạn có thể làm điều này, nhưng bạn sẽ cần cài đặt Windows 8 và Windows 8 ADK với Windows PE (đây là một bản tải xuống khá lớn). Tôi khá chắc chắn rằng bạn có thể sử dụng hình ảnh Win RE này trên bản cài đặt Windows 7 sau khi bạn sử dụng nó, nhưng tôi không chắc chắn 100%.

Có một số cách khác để bạn có thể thực hiện việc này, bao gồm xây dựng hình ảnh Windows PE với các công cụ môi trường khôi phục được cài đặt, nhưng đây có lẽ là phương pháp dễ nhất và sẽ dẫn đến PowerShell có sẵn bất cứ khi nào máy của bạn vào môi trường phục hồi so với phải khởi động nó bằng phương tiện di động.

Tìm WinRE.wim của bạn

Tôi đã sử dụng tất cả mọi thứ để tìm thấy tôi. Nó tình cờ được giấu trong C:\Recovery\67c45205-df4a-11e1-8fd9-9103ad6af7ef. Điều này có thể đúng với bạn là tốt. Để xem, bạn sẽ phải vô hiệu hóa Hide Protected System Files. Cài đặt này đang ẩn trong Explorer bên dướiView, Options, Change Folder and Search Options, View tab.

Bỏ ẩn những điều tốt đẹp

Thay đổi quyền

Bạn sẽ phải lộn xộn với các quyền để thậm chí nhìn thấy các quyền trên thư mục này. Lộn xộn với các quyền luôn làm cho một chút lo lắng, nhưng giả mạo trước nếu bạn dám. Tôi chỉ cần thêm tên người dùng của mình vào quyền bảo mật với toàn quyền kiểm soát.

Nhấp chuột phải vào Recovery, chọn thuộc tính

Tài sản mở

Mở tab Bảo mật

Nhấp vào tab bảo mật

Nhấp vào Nâng cao

Ya biết, nếu bạn cần nhiều sự giúp đỡ này, có lẽ bạn không nên làm điều này thực sự ...

Nhấp vào Thêm

Lộn xộn với quyền bảo mật có thể gây đau đớn nghiêm trọng

Chọn hiệu trưởng

Nhưng ảnh chụp màn hình rất thú vị và cho tôi tất cả các đại diện

Thêm tên người dùng của bạn (hoặc Quản trị viên nếu bạn muốn làm việc với tên quản trị viên)

Bây giờ bạn biết tên thật siêu bí mật của tôi, zomg!

Sao chép WinRE.wim

Tôi đã chọn sao chép .wim để tôi có thể làm việc với nó, nhưng tôi cho rằng bạn cũng có thể làm việc với nó trực tiếp. Nếu bạn chọn làm việc trực tiếp với nó, hãy sửa đổi lệnh một cách thích hợp. Tôi đã sao chép của tôi để C:\winre\.

Thêm PowerShell vào hình ảnh

Bây giờ chúng tôi có một .wim để làm việc, chúng tôi có thể thêm các thành phần cần thiết cho PowerShell. Bạn sẽ cần các thành phần thích hợp của Windows ADK, bao gồm Windows PE.

Gắn kết hình ảnh

Tìm Công cụ triển khai và hình ảnh, nhấp chuột phải và chạy với tư cách Quản trị viên

Nghiêm túc mà nói, nếu bạn không thể tìm thấy điều này trong lượt của mình ngay bây giờ

Tạo một thư mục để gắn kết hình ảnh

Ít nhất là tôi không cho phép mọi người sao chép và dán thứ này

Chạy lệnh này để gắn hình ảnh: Ảnh chụp màn hình là tuyệt vời để ngăn chặn sao chép và dán!

Thêm các gói cần thiết

Có một chút qua lại liên quan đến các lệnh sau, và mọi thứ phải được thực hiện theo thứ tự. Chúng ta cần cài đặt các gói sau:

  • WinPE-WMI
  • WinPE-NetFX4
  • WinPE-Scripting
  • WinPE-PowerShell3
  • WinPE-DismCmdlets
  • WinPE-StorageWMI
  • WinPE-HTA

Chúng tôi cũng sẽ phải cài đặt các gói en-us (thay thế cho ngôn ngữ ưa thích của bạn) cho từng gói trên.

Bắt đầu với điều này:

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

Sau đó chạy này:

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

Bây giờ ấn Uphai lần để gọi lại lệnh đầu tiên và thay thế WMI bằng NetFX4. Lặp lại điều này cho đến khi bạn đã cài đặt tất cả các thành phần cần thiết cùng với ngôn ngữ được yêu cầu. Hãy nhớ làm điều này theo thứ tự.

Kết thúc hình ảnh

Bây giờ tất cả các gói đã sẵn sàng, chúng tôi cần phải cam kết thay đổi và hoàn thành WinRE.wim của mình. Từ đó, chúng tôi có thể xây dựng một .iso, kiểm tra nó trong Hyper-V và sao chép WinRE.wim vào tệp khôi phục của chúng tôi để chúng tôi có quyền truy cập vào PowerShell vào lần tiếp theo khi hệ thống gặp sự cố.

Vô song và cam kết

Chạy lệnh sau để gỡ bỏ hình ảnh và thực hiện các thay đổi: Lệnh trên được hút để gõ, vì vậy tôi sẽ để C + P trượt trên đó ...

Một số điều có thể sai ở đây, và các thông báo lỗi là sai lầm khủng khiếp. Đảm bảo không có lỗi chính tả và bạn không có gì mở liên quan đến các tệp này, ngay cả Explorer.

Thay thế WinRE.wim ban đầu và kiểm tra

Tạo một bản sao lưu của WinRE.wim ban đầu của bạn và thay thế nó bằng cái mới. Bây giờ hãy chạy msconfig và mở tab Boot. Kiểm tra Safe Bootvà chọn Alternate Shell. Khởi động lại và thử nó.

TROLOLOL Bạn đang bị kẹt trong khởi động an toàn ngay bây giờ!  Tôi đã khởi động lại ba lần trước khi tôi nhận ra thiết lập này ...

Bùng nổ! PowerShell trong Windows RE

Start PowerShell và tận hưởng!

Ahh, PowerShell màu xanh tuyệt đẹp ... Chiến thắng ngọt ngào.

Để thoát khỏi chế độ an toàn, bạn sẽ phải chạy msconfig từ dòng lệnh và bỏ chọn Khởi động an toàn.


1
chậm ... vỗ tay
William Jackson

Cảm ơn câu trả lời sâu rộng, Tanner! Đây chính xác là những gì tôi cần.
Riaan

1
Chỉ trong trường hợp hình ảnh WinRE của bạn nằm trong một trong những phân vùng phục hồi OEM, bạn có thể sử dụng Visual BCD Editor để xem mục khởi động Recovery và tìm đường dẫn đến hình ảnh.
Bob

1
7 năm sau, trên "PE cho win10", điều này vẫn còn khá hợp lệ, nhưng các gói đã được đổi tên, giảm số lượng. Sử dụng WinPE-PowerShellthay thế WinPE-PowerShell3WinPE-NetFXthay thế WinPE-NetFX4. Điều WinPE-HTAnày thực sự không bao giờ cần thiết và thậm chí nó không liên quan đến PS. Đừng thêm nó nếu bạn không chạy Ứng dụng HTA. StorageWMI và DismCmdlets là các mô-đun cho PS, bạn không cần chúng nếu bạn không cần chúng. Họ thay thế đĩa và tháo dỡ. Hướng dẫn MS chính thức
papo

2
  1. Windows PowerShell yêu cầu Microsoft .NET Framework. [ nguồn ]
  2. Môi trường phục hồi Windows dựa trên Windows PE. [ nguồn ]
  3. Windows PE không hỗ trợ .NET Framework. [ nguồn ]

Do đó, PowerShell không thể được sử dụng trong WinRE.


Vâng, tôi nghĩ rằng nó có thể là do những phụ thuộc MS.Net. Câu trả lời này chắc chắn là hợp lệ cho các cài đặt chưa sửa đổi mặc định. Cảm ơn William!
Riaan

0

Phải, tôi đã thử rất nhiều thứ và đi đến kết luận rằng nó sẽ không hoạt động. Câu trả lời của William cung cấp bằng chứng để chứng minh điều này.


Tôi đã ghi chú về nơi powershell. Trên máy của tôi, nó vào c:\windows\system32\windowspowershell\v1.0\powershell.exevà ra c:\windows\syswow64\windowspowershell\v1.0\powershell.exe.

Phím tắt trong các công cụ quản trị trỏ đến syswow64.

Sau đó tôi khởi động lại vào chế độ phục hồi và nhận được dấu nhắc lệnh.

Điều đầu tiên tôi nhận thấy là tôi không thể clái xe.

Vì vậy, tôi đã chạy diskpartsau đó nhập lệnh list volđể có được danh sách các ổ đĩa khả dụng. Trên máy của tôi, ổ C của tôi được gọi là ổ D của tôi trong bảng điều khiển phục hồi.

Vì vậy, tôi đã thoát diskpartbằng cách gõ exit, sau đó trong bảng điều khiển lệnh được gõ d:, tiếp theo là cd\windows\syswow64\windowspowershell\v1.0.

Lưu ý rằng nếu bạn thực hiện theo từng giai đoạn, sử dụng dirđể xác nhận tên thư mục, nó sẽ không hiển thị mọi thứ (cụ thể là v1.0thư mục).

Khi tôi bắt chéo ngón tay và gõ powershell, chỉ nhận được tin nhắn:

The subsystem needed to support the image type is not present

Tôi đã googled thông báo lỗi ở trên một chút, nhưng không thể tìm thấy bất cứ điều gì cho thấy powershell có thể hoạt động.


Tôi cũng đã thử các powershell.exe khác trong system32 nhưng không nhận được tin nhắn nào cả (không có didn't recognise the commandgì cả.

nhập mô tả hình ảnh ở đây


Điều này không hoạt động. Cảm ơn George.
Rịaan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.