Ab und an kann es ganz hilfreich sein, wenn man auf Snapshots von Laufwerken zugreifen kann, sei es um schnell eine Datei wiederherzustellen oder den Inhalt von 2 Dateien zu vergleichen. Einen VSS-Snapshot kann man grundsätzlich zugänglich machen, ohne den Snapshot wiederherstellen zu müssen. Es gibt aber zwei verschiedene Wege, die abhängig von den Attributen den VSS-Snapshots sind.
In diesem Beispiel gibt es zwei VSS-Snapshots. Der erste hat unter anderem das Attribut „Client_accessible“, der zweite hat dieses Attribut nicht:
Snapshots mit dem Attribut Client_accessible werden häufig von Backup Software während der Sicherung erzeugt. Diese Art von Snapshot lässt sich nicht via Diskshadow und dem Befehl „expose“ als Laufwerk mounten. Beim Versuch den Snapshot zu mounten wird eine entsprechende Fehlermeldung erzeugt:
Da sich Snapshots mit dem Attribut „Client_Accessible“ nicht als Laufwerk einbinden lassen, muss eine symbolische Verknüpfung erstellt werden. Dies kann mit folgendem Befehl erledigt werden:
mklink /d c:\snapshot <Gerätename für Schattenkopie>\
Wichtig ist der abschließende Backslash „\“ am Ende des Gerätenamens. Der Befehl für den ersten Snapshot aus dem Beispiel würde also wie folgt lauten:
mklink /d c:\snapshot \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy4\
Die Angabe „c:\Snapshot“ stellt den Namen dar unter welchem der Snapshot verfügbar gemacht werden soll, es darf kein Verzeichnis mit dem gleichen Namen existieren. Der Snapshot ist dann unter c:\snapshot verfügbar. Das Lesen und kopieren von Dateien ist somit kein Problem.
Der zweite Snapshot hat kein „Client_accessible“ Attribut und kann daher direkt via DISKSHADOW gemountet werden.
Der Befehl dazu lautet wie folgt:
expose <Schattenkopiekennung> <Laufwerk>:
In diesem Beispiel ist es also
expose {7c0a3aba-a397-483c-9449-273148811202} s:
Der Snapshot ist dann als Laufwerk S: verfügbar:
Auf den Snapshot lässt sich nun wie auf ein Laufwerk zugreifen, Dateien kopieren oder vergleichen. Auch das Wiederherstellen einer Datei ist somit möglich.
Ein „list shadow all“ in eine scriptdatei.txt geben und dann :
diskshadow /s scriptdatei.txt > ergebnis.txt
dann das ergebnis mit notepad nach dem aktuellen datum durchsuchen und die entsprechende ID mounten…
Fertig.
…nette Idee, aber richtig sinnvoll wäre es, den letzten Snapshot per Powershell herauszufinden und diesen zu mounten. Niemand wird per Hand so eine Kopie einer VSS erstellen wollen.