
Wie kann ich während der Windows-Einrichtung irgendwo zwischen dem Beginn von Phase 3 und dem Beginn von Phase 5 ein cmd-Skript ausführen? Ich muss hardwareabhängige Dateien vom USB-Laufwerk auf das Laufwerk C: kopieren, bevor die Hardwareerkennung einsetzt. Ich verwende wmic, das in WinPE ausgeführt wird, um die Hardware zu bestimmen.
EDIT: Falls es jemanden interessiert...
In Boot.Wim\Index2:
- Umbenennung von setup.exe in usetup.exe
- Ändern Sie Boot.Wim-Index:2-Root\Windows\system32\startnet.cmd
wpeinit start /w usetup.exe /unattend:yourfile.xml /noreboot do what you want here wpeutil reboot
Verwenden Sie dies, um Dateien zu bearbeiten. Wenn Sie innerhalb von Windows arbeiten müssen, fügen Sie Ihre Skripts der Datei \windows\setup\scripts\SetupComplete.cmd hinzu.
Beachten Sie, dass SetupComplete.cmd im verborgenen ausgeführt wird. Stellen Sie daher sicher, dass es ohne Eingriff ausgeführt wird.
Antwort1
DemzufolgeMicrosoft Technet-ArtikelSie können am Ende von Phase 3 ein benutzerdefiniertes Skript ausführen, indem Sie die folgenden Schritte ausführen:
Sie können nach Abschluss des Windows-Setups weitere Anpassungen vornehmen, indem Sie der Datei %WINDIR%\Setup\Scripts\SetupComplete.cmd Befehle hinzufügen. Mit dieser Datei können Sie zusätzliche Anwendungen installieren, benutzerdefinierte Windows-Skripts (cscript/wscript) ausführen oder andere Änderungen am System vornehmen, bevor sich ein Benutzer anmeldet.
Befehle in der Datei Setupcomplete.cmd werden mit lokalen Systemberechtigungen ausgeführt.
Nachdem Windows installiert wurde, aber bevor der Anmeldebildschirm angezeigt wird, sucht Windows Setup im Verzeichnis %WINDIR%\Setup\Scripts\ nach der Datei „SetupComplete.cmd“.
Wenn eine SetupComplete.cmd-Datei gefunden wird, wird die Datei ausgeführt. Andernfalls wird die Installation normal fortgesetzt. Windows Setup protokolliert die Aktion in der Datei Setupact.log.
Sie können das System nicht neu starten und die Ausführung von SetupComplete.cmd fortsetzen.
Das Setup überprüft nach der Ausführung von SetupComplete.cmd keine Exitcodes oder Fehlerebenen im Skript.
Die Funktionalität von Setupcomplete.cmd unterscheidet sich von den Befehlen RunSynchronous und RunAsynchronous darin, dass Setupcomplete.cmd nach Abschluss des Windows-Setups ausgeführt wird, während die Befehle RunSynchronous und RunAsynchronous während des Windows-Setups ausgeführt werden.
Das Skript, das Sie ausführen möchten, muss also einfach zu einer Datei „SetupComplete.cmd“ hinzugefügt und in %WINDIR%\Setup\Scripts in Ihrem Windows-Image abgelegt werden. Der Installationsvorgang führt es automatisch aus, sofern er das Skript dort findet.
(Entschuldigen Sie das Kopieren/Einfügen, aber viel mehr gibt es dazu wirklich nicht zu sagen.)
Bearbeiten
Hinweis: Wenn es sich bei den Dateien, die Sie kopieren, um Hardwaretreiberdateien handelt, können Sie diese einfach entweder zum Windows PE-Image oder zum Windows-Image selbst hinzufügen und müssen sich nicht um ein Skript kümmern. Hier ist dieMicrosoft Technet-Artikeldort steht, wie es geht. (Ich werde es nicht kopieren/einfügen, das wäre ein bisschen zu viel.)
Wenn es sich nur um andere allgemeine Dateien (Bilder, Dokumente usw.) handelt, können Sie diese auch zu jedem beliebigen Ordner im Windows-Image hinzufügen. So geht das mit DSIM:Microsoft Technet-ArtikelDer Artikel befindet sich in der Bibliothek von Windows 8/8.1, die Schritte sind jedoch für Windows 7 identisch.
Ich würde ein Skript vermeiden, das nur zum Kopieren von Dateien dient (wenn das alles ist, was Ihr Skript tut). Ich würde die Dateien oder Treiber zum Image hinzufügen und dann müssen Sie sich keine Gedanken darüber machen, was passiert, wenn Ihr Skript aus irgendeinem Grund fehlschlägt.
Bearbeiten 2
Gemäß Ihrem Kommentar unten und der Angabe, dass Sie WMIC während WinPE verwenden, um die Hardware zu ermitteln, können Sie das Skript möglicherweise zu WinPE hinzufügen, wie in diesem Artikel beschrieben.Microsoft Technet-Artikel. Ich denke, es ist vielleicht noch zu früh, um die Dateien zu kopieren, aber ich müsste es testen, um sicherzugehen. Ich weiß, dass ich einem WinPE-Image einen Treiber für eine Netzwerkschnittstelle hinzugefügt habe, aber das ist etwas anders als das, was Sie tun.
Jedoch, ich denke, Ihre beste Option ist, das Microsoft Deployment Toolkit (MDT) zu verwenden und Ihre Treiber basierend auf Hardwareprofilen und/oder Marke/Modell des Computers einzurichten. Es ist genau für diese Art von Szenario konzipiert und sollte es Ihnen ermöglichen, anzupassen, welche Treiber wann und wo installiert werden. Das kann etwas komplizierter sein, als einfach Windows AIK zu verwenden, aber wenn Ihre Treiberanforderungen so spezifisch sind, werden Sie meiner Meinung nach bessere Ergebnisse erzielen.
Hier sind die Tutorials, die ich befolgt habe, als ich mit der Verwendung von MDT begonnen habe:
- WindowsNetworking.com – Bereitstellen von Vista mit AIK- Obwohl dies auf Vista ausgerichtet ist, sind die meisten Schritte für 7 dieselben. Je nachdem, wie gut Sie mit AIK vertraut sind, können Sie direkt zu Teil 24 springen, in dem es um MDT geht.
- WindowsNetworking.com – Bereitstellen von 7 mit AIK- Dies ist fast eine Fortsetzung des vorherigen Links, da er nicht alle Details des ersten durchgeht, sondern nur die Änderungen zwischen dem Vista AIK und dem 7 AIK. Der Abschnitt über die Verwaltung von Treibern mit MDT beginnt in Teil 23. Ich denke, die Teile 25 und 26 sind für Sie am wichtigsten.
Ich denke, dies bietet Ihnen eine bessere Option für die Bereitstellung als die Verwendung eines Skripts, da ich nicht glaube, dass Sie ein benutzerdefiniertes Skript an dem Punkt ausführen können, an dem Sie es ausführen möchten. Ich hoffe, das hilft Ihnen.