Windows Sicherung mit DriveSnapshot unter WINPE [HowTo]
Verfasst: 28.10.2023, 18:09
hier mal ein kleines Script, mit welchem man sich mal eben schnell ein Winpe mit vorinstalliertem DriveSnapshot erstellen kann.
Voraussetzung ist ein installiertes ADK mit WinPE-AddOn.
Das DriveSnapshot wird dabei mit der jeweils aktuellen Version aus der offiziellen Downloadquelle heruntergeladen und ist eine Testversion.
makeWinPE.bat
Eine typische Reihenfolge wäre:
E > Create PE
A > Mount Image
F > Download DriveSnapshot
G > copy DriveSnapshot to PE
H > modify Startnet.cmd
B > Commit & Unmount
D > Build ISO
E > also die Workbench erzeugen, muss grds. nur einmalig gemacht werden.
mit der Option "L" kann man das lästige "Press any Key to boot from CD or DVD" loswerden.
Möchte man sein WINPE komplett in deutsch haben, dann noch zusätzlich die Option "M" wählen.
Da die Optionen "L" und "M" ein gemountetes WIM erwarten, sollte man sie nach "A" und noch vor "B" ausführen.
Will man die komplette Workbench wieder loswerden, dann wählt man "I" und "K".
Viel Spaß! Feedback welcome
Wer es gerne zu Fuß macht, hier mal eine Anleitung dafür:
---------------------------------------------------------------------------
Windows ADK installieren:
https://go.microsoft.com/fwlink/?linkid=2243390
https://go.microsoft.com/fwlink/?linkid=2243391
1.)
a) Man lädt sich von hier das ADK für Windows herunter, welches den Build 2004 und neuere Versionen unterstützt, die Dateiname: adksetup.exe (ca. 1,8 MB).
b) Zusätzlich muss man das Windows PE add-on für obiges ADK herunterladen, die Dateiname: adkwinpesetup.exe (1,3 MB)
c) Zuerst installiert man das Windows PE add-on mit adkwinpesetup.exe
d) Danach installiert man das ADK mit adksetup.exe und daraus nur eine einzige Option, die Bereitstellungstools (alle anderen abwählen)
2.) Die passenden Kommandozeilen-Befehle:
a) Starten der «Umgebung für Bereitstellungs- und Imageerstellungstools» mit Administrator-Rechten aus dem Windows Startmenü (Windows Kits) heraus.
Ein Eintrag wurde im Startmenu bei der Installation automatisch hinzugefügt. Es erscheint ein Fenster, dass der Eingabeaufforderung ähnelt.
Registerkartenname: "Administrator: Umgebung für Bereitstellungs- und Imageerstellungstools" Im sich jetzt geöffneten Fenster die folgenden Befehle eingeben:
b) copype amd64 C:\Winpe (dies nur einmalig!!)
c) dism /Mount-Image /Imagefile:"C:\Winpe\media\sources\boot.wim" /index:1 /MountDir:"C:\Winpe\mount"
d) md C:\WinPE\mount\Tools\Snapshot
e) copy "Pfad zur euerer" Snapshot64.exe C:\WinPE\mount\Tools\Snapshot
Beispiel: copy "C:\Users\Admin\Downloads\DriveSnapshot 1.50\Snapshot64.exe" "C:\WinPE\mount\Tools\Snapshot\"
f) notepad c:\WinPE\mount\windows\system32\startnet.cmd
Hier ist es wichtig das wir den aktuellen Eintrag „wpeinit“ stehen lassen und nur unsere Änderungen anfügen.
In unserem Fall recht simple indem wir folgendes in der nächsten Zeile anfügen.
start "" "%SystemDrive%\Tools\Snapshot\snapshot64.exe"
Zusammen mit einer deutschen Tastatur sieht der komplette startnet.cmd Eintrag z.B. so aus:
----------------------------------------------------------------------------------------------
wpeinit
@echo off
wpeutil InitializeNetwork
wpeutil SetKeyboardLayout 0407:00000407
start "" "%SystemDrive%\Tools\Snapshot\snapshot64.exe"
-------------------------------------------------------------
Versucht man im automatisch geöffneten Win10PE-CMD-Fenster eigene Befehle mit Sonderzeichen einzutippen, werden die eingestellten Umlaute oder Backslashes NICHT sofort dargestellt, trotz SetKeyboardLayout.
Erst wenn man ein neues CMD-Fenster mit start CMD öffnet, werden die eingetippten Tastatur-Buchstaben dem gesetzten Layout entsprechend umgesetzt.
g) startnet.cmd speichern
Dadurch wird nun Drive Snapshot immer direkt gestartet.
----------------------------------------------------------------------------------
Oder direkt alles in deutsch:
Im Boot-Image boot.wim kann ein deutsches Tastaturlayout voreingestellt werden.
Die Umstellung des Zeichensatzes geschieht in folgenden Schritten:
dism /mount-wim /wimfile:c:\winpe\media\sources\boot.wim /index:1 /mountdir:c:\winpe\mount
dism /image:c:\winpe\mount /add-package /packagepath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\de-de\lp.cab"
dism /image:c:\winpe\mount /set-allintl:de-DE
dism /unmount-wim /mountdir:c:\winpe\mount /commit
---------------------------------------------------------------------------------
h) dism /Unmount-Image /MountDir:C:\Winpe\mount /commit
wenn Fehler, dann: dism /Unmount-Image /MountDir:C:\Winpe\mount /discard und bei 2c wieder anfangen!
Bootfähigen USB Stick oder ISO erstellen
Für einen Bootfähigen USB Stick oder einer ISO Datei gehen wir folgendermaßen vor.
Für einen Stick führen wir nur ein Befehl aus dieser Formatiert den Zieldatenträger und schreibt das Image
h) MakeWinPEMedia /UFD C:\Winpe F:
Nun haben wir einen Bootfähigen USB Stick mit unserem Drive Snapshot der von jedem UEFI problemlos bootet.
Das ganze funktioniert auch mit einer ISO und zwar so:
i) MakeWinPEMedia /ISO C:\Winpe C:\Winpe\WinPE_DriveSnapshot_x64.iso
MakeWinPEMedia /ISO C:\Winpe C:\Winpe\WinPE_DE-DE_DriveSnapshot_x64.iso
alles erledigt?! "Exit" in der Bereitstellungsumgebung eingeben.
Somit haben wir alle Schritte abgeschlossen und wir können nun von unserem Image booten!
Hinweise aus der Praxis:
a) Wenn man bei der Benutzung der DISM-Befehle z.B. einen „Fehler: 0xc1420127“ angezeigt bekommt („Das angegebene Abbild in der WIM-Datei wurde bereits für den Lese-/Schreibzugriff bereitgestellt.“), behebt man diesen z.B. mit
dism /cleanup-wim
b) Versucht man im automatisch geöffneten Win10PE-CMD-Fenster eigene Befehle mit Sonderzeichen einzutippen, werden die eingestellten Umlaute oder Backslashes NICHT sofort dargestellt, trotz SetKeyboardLayout.
Erst wenn man ein neues CMD-Fenster mit start CMD öffnet, werden die eingetippten Tastatur-Buchstaben dem gesetzten Layout entsprechend umgesetzt.
c) Liegen die gesicherten «Drive Snapshot» Sicherungsdateien auf einem lokalen NAS, muss man zuerst eine Netzwerkverbindung mit einem berechtigten NAS-User auf einen freien Laufwerksbuchstaben erstellen. Das kann für den Buchstaben N: auf der CMD-Zeile z.B. so aussehen:
NET USE n: \\192.168.1.123\SnapShotShare /user:NASuser NASuserPassword
d) möchte man "Press any Key to boot from CD or DVD" loswerden, dann
copy /y "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg\efisys_noprompt.bin" "C:\WINPE\fwfiles/efisys.bin"
Voraussetzung ist ein installiertes ADK mit WinPE-AddOn.
Das DriveSnapshot wird dabei mit der jeweils aktuellen Version aus der offiziellen Downloadquelle heruntergeladen und ist eine Testversion.
makeWinPE.bat
Code: Alles auswählen
@ECHO OFF
COLOR 0a
::script tool to create, mount, commit, build ISOs for WinPE
SET default_img_dir=C:\WinPE_amd64
:: change this to your directory of choice for convience
SET adk_dir="C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools"
SET adk_env="C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\DandISetEnv.bat"
:: where ADK is installed
:: download the latest ADK below
:: https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install
CD %adk_dir%
CALL %adk_env%
:: necessary for running copype & MakeWinPEMedia command within script
REM ###############################################################################
:: set initial directory to be used
:SetDir
CLS
SET img_dir=%default_img_dir%
SET choice=
SET /P choice=Zielverzeichnis vorgeben [%img_dir%]:
IF NOT '%choice%'=='' SET img_dir=%choice%
ECHO.
ECHO using "%img_dir%" as image directory
SET choice=
SET /P choice=continue? [y]:
IF /I '%choice%'=='Y' GOTO LOOP
GOTO SetDir
REM ###############################################################################
:: main menu
:LOOP
CLS
ECHO #######################################
ECHO # A. Mount Image #
ECHO # B. Commit and Unmount Image #
ECHO # C. Discard and Unmount Image #
ECHO # D. Build ISO #
ECHO # E. Create PE Image #
ECHO # F. Download DriveSnapshot #
ECHO # G. Copy DriveSnapshot to PE #
ECHO # H. Modify Startnet.cmd #
ECHO # I. Cleanup WIM #
ECHO # K. Delete Folders #
ECHO # L. Remove "Press any Key to boot" #
ECHO # M. Implement German Language #
ECHO # Q. Quit #
ECHO #######################################
ECHO.
SET choice=
SET /P choice=select option:
CLS
:: /I makes the IF comparison case-insensitive
IF /I '%choice%'=='A' GOTO MOUNT
IF /I '%choice%'=='B' GOTO COMMIT
IF /I '%choice%'=='C' GOTO DISCARD
IF /I '%choice%'=='D' GOTO ISO
IF /I '%choice%'=='E' GOTO CreatePE
IF /I '%choice%'=='F' GOTO Download
IF /I '%choice%'=='G' GOTO CopySnapshot
IF /I '%choice%'=='H' GOTO Startnet
IF /I '%choice%'=='I' GOTO CleanUP
IF /I '%choice%'=='K' GOTO Delete
IF /I '%choice%'=='L' GOTO AnyKey
IF /I '%choice%'=='M' GOTO German
IF /I '%choice%'=='Q' EXIT
ECHO invalid input!
PAUSE
GOTO LOOP
REM ###############################################################################
:: mount an WinPE enviornment
:: mounts within image directory within subfolder "mount"
:MOUNT
ECHO loading image and mounting
SET img_file=%img_dir%\media\sources\boot.wim
SET mount_dir=%img_dir%\mount
SET index=1
CALL Dism /Mount-Image /ImageFile:%img_file% /index:%index% /MountDir:%mount_dir%
PAUSE
GOTO LOOP
REM ###############################################################################
:: commit changes made to a mounted image and then unmount
:COMMIT
ECHO committing and unmounting...
CALL Dism /Unmount-Image /MountDir:%mount_dir% /commit
PAUSE
GOTO LOOP
REM ###############################################################################
:: discard changes made to a mounted image and then unmount
:DISCARD
ECHO discarding and unmounting...
CALL Dism /Unmount-Image /MountDir:%mount_dir% /discard
PAUSE
GOTO LOOP
REM ###############################################################################
:ISO
:: create a bootable ISO of your WinPE enviornment
:: https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/winpe-create-usb-bootable-drive?view=windows-11#create-a-winpe-iso-dvd-or-cd
ECHO building ISO...
SET iso_file=WinPE_amd64_Snapshot.iso
CALL MakeWinPEMedia /ISO %img_dir% %img_dir%\%iso_file%
PAUSE
GOTO LOOP
REM ###############################################################################
:CreatePE
SET ark=amd64
:: define arktecture
:: Specify either x86, amd64, or arm
ECHO creating WinPE image at "%img_dir%"
CALL copype %ark% %img_dir%
:: img_dir should not already exist
PAUSE
GOTO LOOP
REM ###############################################################################
:Download
SET "FILENAME=%~dp0\Snapshot64.exe"
bitsadmin.exe /transfer "Snapshot64.exe" /download /priority foreground "http://www.drivesnapshot.de/download/snapshot64.exe" "%FILENAME%"
cls
Echo Download completed!!
PAUSE
GOTO LOOP
REM ###############################################################################
:CopySnapshot
SET mount_dir=%img_dir%\mount
SET FILENAME="%~dp0\Snapshot64.exe"
if not exist %mount_dir%\Tools\Snapshot md %mount_dir%\Tools\Snapshot
copy /y %Filename% %mount_dir%\Tools\Snapshot\
Echo Snapshot64.exe copied to mount Directory
PAUSE
GOTO LOOP
REM ###############################################################################
:Startnet
SET mount_dir=%img_dir%\mount
@echo off
ver
set start=%mount_dir%\Windows\System32\startnet.cmd
>"%start%" echo wpeinit
>>"%start%" echo @echo off
>>"%start%" echo wpeutil InitializeNetwork
>>"%start%" echo wpeutil SetKeyboardLayout 0407:00000407
>>"%start%" echo start "" "X:\Tools\Snapshot\snapshot64.exe"
Echo Startnet Bearbeitung fertig!
PAUSE
GOTO LOOP
REM ###############################################################################
:Cleanup
SET mount_dir=%img_dir%\mount
dism /cleanup-wim
Echo WIM Cleanup erledigt!
PAUSE
GOTO LOOP
REM ###############################################################################
:Delete
RD %img_dir% /s /q
Echo WINPE Folder removed!
PAUSE
GOTO LOOP
REM ###############################################################################
:AnyKey
copy /y "%ProgramFiles(x86)%\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg\efisys_noprompt.bin" "%img_dir%\fwfiles/efisys.bin"
Echo AnyKey removed!
PAUSE
GOTO LOOP
REM ###############################################################################
:German
SET mount_dir=%img_dir%\mount
dism /image:%mount_dir% /add-package /packagepath:"%ProgramFiles(x86)%\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\de-de\lp.cab"
cls
dism /image:%mount_dir% /set-allintl:de-DE
cls
Echo German Language installed!
PAUSE
GOTO LOOP
E > Create PE
A > Mount Image
F > Download DriveSnapshot
G > copy DriveSnapshot to PE
H > modify Startnet.cmd
B > Commit & Unmount
D > Build ISO
E > also die Workbench erzeugen, muss grds. nur einmalig gemacht werden.
mit der Option "L" kann man das lästige "Press any Key to boot from CD or DVD" loswerden.
Möchte man sein WINPE komplett in deutsch haben, dann noch zusätzlich die Option "M" wählen.
Da die Optionen "L" und "M" ein gemountetes WIM erwarten, sollte man sie nach "A" und noch vor "B" ausführen.
Will man die komplette Workbench wieder loswerden, dann wählt man "I" und "K".
Viel Spaß! Feedback welcome
Wer es gerne zu Fuß macht, hier mal eine Anleitung dafür:
---------------------------------------------------------------------------
Windows ADK installieren:
https://go.microsoft.com/fwlink/?linkid=2243390
https://go.microsoft.com/fwlink/?linkid=2243391
1.)
a) Man lädt sich von hier das ADK für Windows herunter, welches den Build 2004 und neuere Versionen unterstützt, die Dateiname: adksetup.exe (ca. 1,8 MB).
b) Zusätzlich muss man das Windows PE add-on für obiges ADK herunterladen, die Dateiname: adkwinpesetup.exe (1,3 MB)
c) Zuerst installiert man das Windows PE add-on mit adkwinpesetup.exe
d) Danach installiert man das ADK mit adksetup.exe und daraus nur eine einzige Option, die Bereitstellungstools (alle anderen abwählen)
2.) Die passenden Kommandozeilen-Befehle:
a) Starten der «Umgebung für Bereitstellungs- und Imageerstellungstools» mit Administrator-Rechten aus dem Windows Startmenü (Windows Kits) heraus.
Ein Eintrag wurde im Startmenu bei der Installation automatisch hinzugefügt. Es erscheint ein Fenster, dass der Eingabeaufforderung ähnelt.
Registerkartenname: "Administrator: Umgebung für Bereitstellungs- und Imageerstellungstools" Im sich jetzt geöffneten Fenster die folgenden Befehle eingeben:
b) copype amd64 C:\Winpe (dies nur einmalig!!)
c) dism /Mount-Image /Imagefile:"C:\Winpe\media\sources\boot.wim" /index:1 /MountDir:"C:\Winpe\mount"
d) md C:\WinPE\mount\Tools\Snapshot
e) copy "Pfad zur euerer" Snapshot64.exe C:\WinPE\mount\Tools\Snapshot
Beispiel: copy "C:\Users\Admin\Downloads\DriveSnapshot 1.50\Snapshot64.exe" "C:\WinPE\mount\Tools\Snapshot\"
f) notepad c:\WinPE\mount\windows\system32\startnet.cmd
Hier ist es wichtig das wir den aktuellen Eintrag „wpeinit“ stehen lassen und nur unsere Änderungen anfügen.
In unserem Fall recht simple indem wir folgendes in der nächsten Zeile anfügen.
start "" "%SystemDrive%\Tools\Snapshot\snapshot64.exe"
Zusammen mit einer deutschen Tastatur sieht der komplette startnet.cmd Eintrag z.B. so aus:
----------------------------------------------------------------------------------------------
wpeinit
@echo off
wpeutil InitializeNetwork
wpeutil SetKeyboardLayout 0407:00000407
start "" "%SystemDrive%\Tools\Snapshot\snapshot64.exe"
-------------------------------------------------------------
Versucht man im automatisch geöffneten Win10PE-CMD-Fenster eigene Befehle mit Sonderzeichen einzutippen, werden die eingestellten Umlaute oder Backslashes NICHT sofort dargestellt, trotz SetKeyboardLayout.
Erst wenn man ein neues CMD-Fenster mit start CMD öffnet, werden die eingetippten Tastatur-Buchstaben dem gesetzten Layout entsprechend umgesetzt.
g) startnet.cmd speichern
Dadurch wird nun Drive Snapshot immer direkt gestartet.
----------------------------------------------------------------------------------
Oder direkt alles in deutsch:
Im Boot-Image boot.wim kann ein deutsches Tastaturlayout voreingestellt werden.
Die Umstellung des Zeichensatzes geschieht in folgenden Schritten:
dism /mount-wim /wimfile:c:\winpe\media\sources\boot.wim /index:1 /mountdir:c:\winpe\mount
dism /image:c:\winpe\mount /add-package /packagepath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\de-de\lp.cab"
dism /image:c:\winpe\mount /set-allintl:de-DE
dism /unmount-wim /mountdir:c:\winpe\mount /commit
---------------------------------------------------------------------------------
h) dism /Unmount-Image /MountDir:C:\Winpe\mount /commit
wenn Fehler, dann: dism /Unmount-Image /MountDir:C:\Winpe\mount /discard und bei 2c wieder anfangen!
Bootfähigen USB Stick oder ISO erstellen
Für einen Bootfähigen USB Stick oder einer ISO Datei gehen wir folgendermaßen vor.
Für einen Stick führen wir nur ein Befehl aus dieser Formatiert den Zieldatenträger und schreibt das Image
h) MakeWinPEMedia /UFD C:\Winpe F:
Nun haben wir einen Bootfähigen USB Stick mit unserem Drive Snapshot der von jedem UEFI problemlos bootet.
Das ganze funktioniert auch mit einer ISO und zwar so:
i) MakeWinPEMedia /ISO C:\Winpe C:\Winpe\WinPE_DriveSnapshot_x64.iso
MakeWinPEMedia /ISO C:\Winpe C:\Winpe\WinPE_DE-DE_DriveSnapshot_x64.iso
alles erledigt?! "Exit" in der Bereitstellungsumgebung eingeben.
Somit haben wir alle Schritte abgeschlossen und wir können nun von unserem Image booten!
Hinweise aus der Praxis:
a) Wenn man bei der Benutzung der DISM-Befehle z.B. einen „Fehler: 0xc1420127“ angezeigt bekommt („Das angegebene Abbild in der WIM-Datei wurde bereits für den Lese-/Schreibzugriff bereitgestellt.“), behebt man diesen z.B. mit
dism /cleanup-wim
b) Versucht man im automatisch geöffneten Win10PE-CMD-Fenster eigene Befehle mit Sonderzeichen einzutippen, werden die eingestellten Umlaute oder Backslashes NICHT sofort dargestellt, trotz SetKeyboardLayout.
Erst wenn man ein neues CMD-Fenster mit start CMD öffnet, werden die eingetippten Tastatur-Buchstaben dem gesetzten Layout entsprechend umgesetzt.
c) Liegen die gesicherten «Drive Snapshot» Sicherungsdateien auf einem lokalen NAS, muss man zuerst eine Netzwerkverbindung mit einem berechtigten NAS-User auf einen freien Laufwerksbuchstaben erstellen. Das kann für den Buchstaben N: auf der CMD-Zeile z.B. so aussehen:
NET USE n: \\192.168.1.123\SnapShotShare /user:NASuser NASuserPassword
d) möchte man "Press any Key to boot from CD or DVD" loswerden, dann
copy /y "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg\efisys_noprompt.bin" "C:\WINPE\fwfiles/efisys.bin"