Mitunter kommt es vor, das Windows die Laufwerkbuchstaben vertauscht oder verändert, das kennt man meist von USB-Geräten. Leider kann das auch bei verbundenen VHD-Dateien passieren. Verwendet man die Windows Server-Sicherung bzw. den Befehl “wbadmin”, so kann dieser Umstand recht leicht die Datensicherung zum scheitern bringen.

Der erste Gedanke dies zu lösen, besteht darin, im “diskpart”-Skript anzugeben, das eine bestimmte Partition bzw. bestimmtes Volume ausgewählt und dann ein Laufwerksbuchstabe zugewiesen werden soll:

select vdisk file=E:\Backup.vhd
attach vdisk
select volume 1
assign letter=V

Dieser Lösungsweg wird auch an anderer Stelle im Netz vorgeschlagen. Der Gedanke ist gut, aber im konkreten Fall sind die Volumes in den VHD-Dateien nicht immer eins, zwei oder beispielsweise drei. Wir beobachteten bei einem Kunden, das z.B. Volume 2 und 3 vorhanden sind. Um die Sache schnell und einfach zu lösen, wurde das Backup-Skript schlicht um eine Suche nach dem “WindowsImageBackup”-Ordner erweitert. Hier der entsprechende Auszug aus dem Skript:

rem Pruefen, wo sich das Ziel befindet, andernfalls abbrechen

if exist D:\WindowsImageBackup set destination=D:
if exist E:\WindowsImageBackup set destination=E:
if exist F:\WindowsImageBackup set destination=F:
if exist G:\WindowsImageBackup set destination=G:
if exist H:\WindowsImageBackup set destination=H:
if exist I:\WindowsImageBackup set destination=I:
if exist J:\WindowsImageBackup set destination=J:
if exist K:\WindowsImageBackup set destination=K:
if exist L:\WindowsImageBackup set destination=L:
if exist M:\WindowsImageBackup set destination=M:
if exist N:\WindowsImageBackup set destination=N:
if exist O:\WindowsImageBackup set destination=O:
if exist P:\WindowsImageBackup set destination=P:
if exist Q:\WindowsImageBackup set destination=Q:
if exist R:\WindowsImageBackup set destination=R:
if exist S:\WindowsImageBackup set destination=S:
if exist T:\WindowsImageBackup set destination=T:
if exist U:\WindowsImageBackup set destination=U:
if exist V:\WindowsImageBackup set destination=V:
if exist W:\WindowsImageBackup set destination=W:
if exist X:\WindowsImageBackup set destination=X:
if exist Y:\WindowsImageBackup set destination=Y:
if exist Z:\WindowsImageBackup set destination=Z:

echo Ziel ist Laufwerk %destination% >> C:\Backup\backup.log
if exist %destination%\WindowsImageBackup goto backup
echo Ziel nicht gefunden >> C:\Backup\backup.log
exit

rem backup
:backup

start /wait wbadmin start backup -backupTarget:%destination% -allCritical -include:C:,D: -systemState -vssFull -quiet