Czy programu PowerShell można używać w środowisku odzyskiwania systemu Windows?

10

Próbowałem uzyskać dostęp do programu PowerShell z wiersza polecenia w środowisku odzyskiwania systemu Windows bez powodzenia. Jestem w stanie uruchamiać tam skrypty VBScript bez problemu i teraz zastanawiam się, czy jest jakiś sposób, aby uruchamiać tam również moje polecenia PowerShell.

Czy PowerShell może być używany w WinRE, czy w najlepszym razie utknąłem w obsłudze VBScript / JScript?

Pamiętaj, że chodzi o WinRE, a nie WinPE!

EDYTOWAĆ

EBGreen skomentował dodanie dodatkowych składników do WinPE , które pozwoliłyby na użycie PowerShell w tym środowisku. Czy to samo podejście można zastosować w WinRE?

Riaan
źródło
Możesz uruchomić PowerShell z wiersza poleceń za pomocą start powershellz wiersza polecenia. Czy to działa w WinRE?
George Duckett
Próbowałem obu start powershelli powershellz wiersza polecenia WinRE bez powodzenia - mówi, że są to nieznane polecenia. Jednak działają dobrze w systemie Windows. Zastanawiam się, czy to ma coś wspólnego z zależnością PowerShell od .Net
Riaan
Ok, końcowa sugestia, spróbuj przejść do exe PowerShell i uruchomić go. Stąd, Path to Powershell.exe (v 2.0) Myślę, że to będzie coś takiego, C:\Windows\System32\WindowsPowerShell\v1.0ale być może trzeba będzie najpierw przeszukać Windows.
George Duckett,
Początkowo próbowałem uruchomić powershellpolecenie z jego katalogu bez powodzenia. Miałem taki sam wynik jak George Duckett poniżej.
Riaan

Odpowiedzi:

7

Możesz to zrobić, ale będziesz potrzebować instalacji systemu Windows 8 i pakietu Windows 8 ADK z systemem Windows PE (jest to dość duży plik do pobrania). Jestem pewien, że możesz użyć tego obrazu Win RE w instalacji systemu Windows 7, gdy go uruchomisz, ale nie jestem w 100% pewien.

Jest kilka innych sposobów na osiągnięcie tego celu, w tym budowanie obrazu Windows PE z zainstalowanymi narzędziami środowiska odzyskiwania, ale jest to prawdopodobnie najłatwiejsza metoda i spowoduje, że PowerShell będzie dostępny za każdym razem, gdy komputer wejdzie w środowisko odzyskiwania kontra konieczność uruchamiania z niego przy użyciu nośnika wymiennego.

Znajdź swój WinRE.wim

Użyłem wszystkiego, by znaleźć moje. Zdarzyło się, że się ukrywał C:\Recovery\67c45205-df4a-11e1-8fd9-9103ad6af7ef. To może dotyczyć również ciebie. Aby rzucić okiem, musisz wyłączyć Hide Protected System Files. To ustawienie czai się w Eksploratorze podView, Options, Change Folder and Search Options, View tab.

Odkryj smakołyki

Zmień uprawnienia

Będziesz musiał zadzierać z uprawnieniami, aby nawet zobaczyć uprawnienia w tym folderze. Bałagan z uprawnieniami zawsze denerwuje, ale idź naprzód, jeśli masz odwagę. Po prostu dodałem swoją nazwę użytkownika do uprawnień bezpieczeństwa z pełną kontrolą.

Kliknij Odzyskiwanie prawym przyciskiem myszy, wybierz właściwości

Otwórz właściwości

Otwórz kartę Zabezpieczenia

Kliknij kartę bezpieczeństwa

Kliknij Zaawansowane

Wiesz, jeśli potrzebujesz takiej pomocy, prawdopodobnie nie powinieneś tego robić ...

Kliknij Dodaj

Bałagan z uprawnieniami bezpieczeństwa może powodować poważny ból

Wybierz dyrektora

Ale zrzuty ekranu są fajne i dają mi wszystkie powtórzenia

Dodaj swoją nazwę użytkownika (lub administratora, jeśli chcesz pracować z nią jako administrator)

Teraz znasz moje super tajne prawdziwe imię, zomg!

Skopiuj WinRE.wim

Zdecydowałem się skopiować .wim, abym mógł z nim pracować, ale przypuszczam, że mógłbyś również pracować z nim bezpośrednio. Jeśli zdecydujesz się na bezpośrednią pracę z nim, odpowiednio zmodyfikuj polecenie. Skopiowałem mój do C:\winre\.

Dodaj PowerShell do obrazu

Teraz, gdy mamy do czynienia z .im, możemy dodać niezbędne komponenty do PowerShell. Potrzebne będą odpowiednie składniki zestawu Windows ADK, w tym Windows PE.

Zamontuj obraz

Znajdź narzędzia do wdrażania i obrazowania, kliknij prawym przyciskiem myszy i uruchom jako administrator

Poważnie, jeśli nie możesz teraz znaleźć tego na własną rękę, zawróć

Utwórz folder, aby zamontować obraz

Przynajmniej nie pozwalam ludziom kopiować i wklejać tych rzeczy

Uruchom to polecenie, aby zamontować obraz: Zrzuty ekranu świetnie nadają się do zapobiegania kopiowaniu i wklejaniu!

Dodaj wymagane pakiety

W poniższych poleceniach jest trochę tam iz powrotem, a rzeczy trzeba zrobić po kolei. Musimy zainstalować następujące pakiety:

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

Będziemy również musieli zainstalować pakiety en-us (zastępując preferowany język) dla każdego z powyższych pakietów.

Zacznij od tego:

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

Następnie uruchom to:

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

Teraz naciśnij Updwukrotnie, aby przywołać pierwsze polecenie, i zastąp WMI NetFX4. Powtarzaj tę czynność, dopóki nie zainstalujesz wszystkich wymaganych składników wraz z wymaganym językiem. Pamiętaj, aby to zrobić po kolei.

Zakończ zdjęcie

Teraz, gdy wszystkie pakiety są na miejscu, musimy zatwierdzić nasze zmiany i dokończyć nasz WinRE.wim. Stamtąd możemy zbudować plik .iso, przetestować go w Hyper-V i skopiować plik WinRE.wim do naszego pliku odzyskiwania, abyśmy mieli dostęp do programu PowerShell przy następnym awarii systemu.

Odmontuj i zatwierdź

Uruchom następujące polecenie, aby zdemontować obraz i zatwierdzić zmiany: Powyższe polecenie wciągnęło do pisania, więc pozwolę C + P przesuwać się po tym ...

Kilka rzeczy może się nie udać, a komunikaty o błędach są strasznie mylące. Upewnij się, że nie ma literówek i nie masz żadnych otwartych powiązań z tymi plikami, nawet Eksploratora.

Wymień oryginalny WinRE.wim i przetestuj

Utwórz kopię zapasową oryginalnego pliku WinRE.wim i zastąp go nowym. Teraz uruchom msconfig i otwórz kartę Boot. Sprawdź Safe Booti wybierz Alternate Shell. Uruchom ponownie i spróbuj.

TROLOLOL Utknąłeś w bezpiecznym bagażniku!  Zrestartowałem się trzy razy, zanim zdałem sobie sprawę, że to ustawienie się zmienia ...

Bum! PowerShell w Windows RE

Start PowerShell i baw się dobrze!

Ahh, piękny niebieski PowerShell ... Słodkie zwycięstwo.

Aby wyjść z trybu awaryjnego, musisz uruchomić msconfig z wiersza poleceń i odznaczyć Bezpieczny rozruch.

Tanner Faulkner
źródło
1
powolne ... klaskać
William Jackson,
Dzięki za obszerną odpowiedź, Tanner! Właśnie tego potrzebowałem.
Riaan
1
Na wszelki wypadek, gdy obraz WinRE znajduje się w jednej z partycji odzyskiwania OEM, możesz użyć Edytora Visual BCD, aby spojrzeć na pozycję rozruchu odzyskiwania i znaleźć ścieżkę do obrazu.
Bob
1
7 lat później na „PE for win10” jest to nadal całkiem poprawne, ale nazwy pakietów zostały zmienione, co oznacza spadek liczby. Użyj WinPE-PowerShellzamiast WinPE-PowerShell3i WinPE-NetFXzamiast WinPE-NetFX4. To WinPE-HTAnigdy nie było konieczne i nawet nie jest związane z PS. Nie dodawaj go, jeśli nie uruchamiasz aplikacji HTA. StorageWMI i DismCmdlets to moduły dla PS, nie potrzebujesz ich, jeśli ich nie potrzebujesz. Zastępują diskpart i disc. Oficjalny przewodnik stwardnienia rozsianego
papo
2
  1. Windows PowerShell wymaga Microsoft .NET Framework. [ źródło ]
  2. Środowisko odzyskiwania systemu Windows jest oparte na systemie Windows PE. [ źródło ]
  3. Windows PE nie obsługuje .NET Framework. [ źródło ]

Dlatego PowerShell nie może być używany w WinRE.

William Jackson
źródło
Tak, myślałem, że to prawdopodobnie z powodu tych zależności MS.Net. Ta odpowiedź jest zdecydowanie ważna dla domyślnych niezmodyfikowanych instalacji. Dzięki Williamie!
Riaan
0

Tak, próbowałem wielu rzeczy i doszedłem do wniosku, że to nie zadziała. Odpowiedź Williama dostarcza dowodów na poparcie tego.


Zanotowałem, gdzie jest PowerShell. Na moim komputerze to w c:\windows\system32\windowspowershell\v1.0\powershell.exea c:\windows\syswow64\windowspowershell\v1.0\powershell.exe.

Skrót w narzędziach administracyjnych wskazuje na syswow64.

Następnie ponownie uruchomiłem tryb odzyskiwania i znalazłem się w wierszu polecenia.

Pierwszą rzeczą, którą zauważyłem, jest to, że nie mogę dostać się na cdysk.

Więc uruchomiłem, diskparta następnie wprowadziłem polecenie, list volaby uzyskać listę dostępnych dysków. Na mojej maszynie mój dysk C został nazwany moim dyskiem D w konsoli odzyskiwania.

Więc wyszedłem diskpartpisząc exit, następnie w konsoli poleceń wpisałem d:, a następnie cd\windows\syswow64\windowspowershell\v1.0.

Zauważ, że jeśli robisz to etapami, użycie dirdo potwierdzenia nazw folderów nie pokazuje wszystkiego (mianowicie v1.0folderu).

Kiedy tam dotarłem, skrzyżowałem palce i pisałem na maszynie powershell, tylko po to, by otrzymać wiadomość:

The subsystem needed to support the image type is not present

Przez chwilę przeglądałem powyższy komunikat o błędzie, ale nie mogłem znaleźć niczego, co sugerowałoby, że PowerShell może działać.


Próbowałem także innego powershell.exe w systemie32, ale nie otrzymałem żadnej wiadomości (nie didn't recognise the commandlub nic.

wprowadź opis zdjęcia tutaj

George Duckett
źródło
To nie działa Dzięki George.
Riaan