Kann PowerShell in der Windows-Wiederherstellungsumgebung verwendet werden?

10

Ich habe erfolglos versucht, über die Eingabeaufforderung in der Windows-Wiederherstellungsumgebung auf PowerShell zuzugreifen. Ich kann dort problemlos VBScripts ausführen und frage mich jetzt, ob es eine Möglichkeit gibt, meine PowerShell-Befehle auch von dort aus auszuführen.

Kann PowerShell in WinRE verwendet werden oder bin ich bestenfalls mit VBScript / JScript-Unterstützung konfrontiert?

Bitte beachten Sie, dass es sich um WinRE und nicht um WinPE handelt!

BEARBEITEN

EBGreen hatte das Hinzufügen zusätzlicher Komponenten zu WinPE kommentiert , die die Verwendung von PowerShell in dieser Umgebung ermöglichen würden. Könnte der gleiche Ansatz mit WinRE verfolgt werden?

Riaan
quelle
Sie können Powershell über die Befehlszeile mit start powershellan der Eingabeaufforderung starten . Funktioniert das in WinRE?
George Duckett
Ich habe beide start powershellund powershellvon der WinRE-Eingabeaufforderung ohne Erfolg ausprobiert - sagt, das sind unbekannte Befehle. Sie funktionieren jedoch gut unter Windows. Ich frage mich, ob dies etwas mit der Abhängigkeit von PowerShell von .Net
Riaan
Ok, letzter Vorschlag, versuchen Sie, zur Powershell-Exe zu navigieren und sie auszuführen. Von hier aus Path to Powershell.exe (v 2.0) Ich denke, es wird so etwas wie sein, C:\Windows\System32\WindowsPowerShell\v1.0aber Sie müssen möglicherweise zuerst in Windows suchen.
George Duckett
Ich hatte zunächst versucht, den powershellBefehl aus seinem Verzeichnis ohne Erfolg auszuführen. Ich hatte das gleiche Ergebnis wie George Duckett unten.
Riaan

Antworten:

7

Sie können dies tun, benötigen jedoch eine Windows 8-Installation und das Windows 8 ADK mit Windows PE (es ist ein ziemlich großer Download). Ich bin mir ziemlich sicher, dass Sie dieses Win RE-Image bei einer Windows 7-Installation verwenden können, sobald Sie es in Betrieb genommen haben, aber ich bin mir nicht 100% sicher.

Es gibt noch einige andere Möglichkeiten, wie Sie dies erreichen können, einschließlich der Erstellung eines Windows PE-Abbilds mit den installierten Tools für die Wiederherstellungsumgebung. Dies ist jedoch wahrscheinlich die einfachste Methode und führt dazu, dass PowerShell verfügbar ist, wenn Ihr Computer in die Wiederherstellungsumgebung eintritt. mit Wechselmedien booten müssen.

Finden Sie Ihre WinRE.wim

Ich habe alles benutzt , um meine zu finden. Es versteckte sich zufällig darin C:\Recovery\67c45205-df4a-11e1-8fd9-9103ad6af7ef. Dies kann auch für Sie zutreffen. Um einen Blick darauf zu werfen, müssen Sie deaktivieren Hide Protected System Files. Diese Einstellung lauert im Explorer unterView, Options, Change Folder and Search Options, View tab.

Blende die Leckereien ein

Ändern Sie die Berechtigungen

Sie werden mit den Berechtigungen zu verwirren müssen auch sehen Sie die Berechtigungen für diesen Ordner. Das Spielen mit Berechtigungen macht immer etwas nervös, aber machen Sie weiter, wenn Sie sich trauen. Ich habe einfach meinen Benutzernamen mit voller Kontrolle zu den Sicherheitsberechtigungen hinzugefügt.

Klicken Sie mit der rechten Maustaste auf Wiederherstellung, und wählen Sie Eigenschaften aus

Eigenschaften öffnen

Öffnen Sie die Registerkarte Sicherheit

Klicken Sie auf die Registerkarte Sicherheit

Klicken Sie auf Erweitert

Weißt du, wenn du so viel Hilfe brauchst, solltest du das wahrscheinlich nicht wirklich tun ...

Klicken Sie auf Hinzufügen

Das Durcheinander mit Sicherheitsberechtigungen kann ernsthafte Schmerzen verursachen

Wählen Sie Principal

Aber Screenshots machen Spaß und geben mir alle Wiederholungen

Fügen Sie Ihren Benutzernamen hinzu (oder Administrator, wenn Sie als Administrator damit arbeiten möchten)

Jetzt kennst du meinen super geheimen richtigen Namen, zomg!

Kopieren Sie WinRE.wim

Ich habe mich entschieden, die .wim zu kopieren, damit ich damit arbeiten kann, aber ich nehme an, Sie können auch direkt damit arbeiten. Wenn Sie direkt damit arbeiten möchten, ändern Sie den Befehl entsprechend. Ich habe meine kopiert C:\winre\.

Fügen Sie dem Bild PowerShell hinzu

Nachdem wir nun mit einer .wim-Datei arbeiten können, können wir die erforderlichen Komponenten für PowerShell hinzufügen. Sie benötigen die entsprechenden Komponenten von Windows ADK, einschließlich Windows PE.

Montiere das Bild

Suchen Sie nach Bereitstellungs- und Imaging-Tools, klicken Sie mit der rechten Maustaste und führen Sie sie als Administrator aus

Im Ernst, wenn Sie dies nicht alleine finden konnten, kehren Sie jetzt zurück

Erstellen Sie einen Ordner, um das Image bereitzustellen

Zumindest lasse ich nicht zu, dass Leute dieses Zeug kopieren und einfügen

Führen Sie diesen Befehl aus, um das Image bereitzustellen: Screenshots verhindern das Kopieren und Einfügen!

Fügen Sie die erforderlichen Pakete hinzu

Die folgenden Befehle enthalten ein kleines Hin und Her, und die Dinge müssen in der richtigen Reihenfolge ausgeführt werden. Wir müssen die folgenden Pakete installieren:

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

Wir müssen auch en-us-Pakete (Ersatz für Ihre bevorzugte Sprache) für jedes der oben genannten Pakete installieren.

Beginnen Sie damit:

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

Führen Sie dann Folgendes aus:

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

UpDrücken Sie nun zweimal, um den ersten Befehl abzurufen, und ersetzen Sie WMI durch NetFX4. Wiederholen Sie diesen Vorgang, bis Sie alle erforderlichen Komponenten zusammen mit der erforderlichen Sprache installiert haben. Denken Sie daran, dies in der richtigen Reihenfolge zu tun.

Beenden Sie das Bild

Nachdem alle Pakete vorhanden sind, müssen wir unsere Änderungen festschreiben und WinRE.wim beenden. Von dort aus können wir eine ISO-Datei erstellen, sie in Hyper-V testen und die Datei WinRE.wim in unsere Wiederherstellungsdatei kopieren, damit wir beim nächsten Systemabsturz auf PowerShell zugreifen können.

Unmount und Commit

Führen Sie den folgenden Befehl aus, um die Bereitstellung des Images aufzuheben und die Änderungen zu übernehmen: Der obige Befehl wurde zum Tippen gesaugt, also lasse ich C + P auf diesem ...

Hier können einige Dinge schief gehen, und die Fehlermeldungen sind furchtbar irreführend. Stellen Sie sicher, dass keine Tippfehler vorhanden sind und nichts mit diesen Dateien zu tun hat , nicht einmal der Explorer.

Ersetzen Sie original WinRE.wim und testen Sie

Erstellen Sie ein Backup Ihres ursprünglichen WinRE.wim und ersetzen Sie es durch das neue. Führen Sie nun msconfig aus und öffnen Sie die Registerkarte Boot. Überprüfen Safe Bootund auswählen Alternate Shell. Starten Sie neu und probieren Sie es aus.

TROLOLOL Du steckst jetzt im sicheren Kofferraum fest!  Ich habe dreimal neu gestartet, bevor mir klar wurde, dass diese Einstellung anhält ...

Boom! PowerShell in Windows RE

Start PowerShell und genieße!

Ahh, die schöne blaue PowerShell ... Süßer Sieg.

Um den abgesicherten Modus zu verlassen, müssen Sie msconfig über die Befehlszeile ausführen und das Kontrollkästchen Sicherer Start deaktivieren.

Tanner Faulkner
quelle
1
langsam ... klatschen
William Jackson
Danke für die ausführliche Antwort, Tanner! Genau das brauchte ich.
Riaan
1
Nur für den Fall, dass sich Ihr WinRE-Image in einer dieser OEM-Wiederherstellungspartitionen befindet, können Sie mit Visual BCD Editor den Starteintrag für die Wiederherstellung überprüfen und den Pfad zum Image ermitteln.
Bob
1
7 Jahre später, auf "PE for win10", ist dies immer noch ziemlich gültig, aber Pakete wurden umbenannt und Zahlen fallen gelassen. Verwenden Sie WinPE-PowerShellanstelle von WinPE-PowerShell3und WinPE-NetFXanstelle von WinPE-NetFX4. Das WinPE-HTAwar eigentlich nie nötig und es ist sogar nicht PS-bezogen. Fügen Sie es nicht hinzu, wenn Sie keine HTA-Apps ausführen. StorageWMI und DismCmdlets sind Module für PS. Sie benötigen sie nicht, wenn Sie sie nicht benötigen. Sie ersetzen diskpart und dism. Der offizielle MS-Leitfaden
Papo
2
  1. Windows PowerShell erfordert Microsoft .NET Framework. [ Quelle ]
  2. Die Windows-Wiederherstellungsumgebung basiert auf Windows PE. [ Quelle ]
  3. Windows PE unterstützt .NET Framework nicht. [ Quelle ]

Daher kann PowerShell in WinRE nicht verwendet werden.

William Jackson
quelle
Ja, ich dachte, das liegt wahrscheinlich an diesen MS.Net-Abhängigkeiten. Diese Antwort gilt definitiv für unveränderte Standardinstallationen. Danke William!
Riaan
0

Richtig, ich habe viele Dinge ausprobiert und bin zu dem Schluss gekommen, dass es nicht funktionieren wird. Williams Antwort liefert Beweise, um dies zu belegen.


Ich habe mir notiert, wo Powershell ist. Auf meiner Maschine ist es in c:\windows\system32\windowspowershell\v1.0\powershell.exeund in c:\windows\syswow64\windowspowershell\v1.0\powershell.exe.

Die Verknüpfung in den Verwaltungstools verweist auf die Verknüpfung syswow64.

Ich habe dann den Wiederherstellungsmodus neu gestartet und bin zur Eingabeaufforderung gelangt.

Das erste, was mir aufgefallen ist, ist, dass ich nicht zum cLaufwerk komme .

Also habe ich ausgeführt und diskpartdann den Befehl eingegeben list vol, um eine Liste der verfügbaren Laufwerke zu erhalten. Auf meinem Computer wurde mein C-Laufwerk in der Wiederherstellungskonsole als mein D-Laufwerk bezeichnet.

Also habe ich diskpartdurch Tippen beendet exit, dann in die Befehlskonsole getippt d:, gefolgt von cd\windows\syswow64\windowspowershell\v1.0.

Beachten Sie, dass bei der schrittweisen dirBestätigung von Ordnernamen nicht alles angezeigt wird (nämlich der v1.0Ordner).

Dort drückte ich die Daumen und tippte powershell, nur um die Nachricht zu erhalten:

The subsystem needed to support the image type is not present

Ich habe die obige Fehlermeldung ein wenig gegoogelt, konnte aber nichts finden, was darauf hindeutet, dass Powershell funktionieren könnte.


Ich habe auch die andere Powershell.exe in System32 ausprobiert, aber überhaupt keine Nachricht erhalten (nein didn't recognise the commandoder irgendetwas.

Geben Sie hier die Bildbeschreibung ein

George Duckett
quelle
Das funktioniert nicht. Danke George.
Riaan