Jupp, die obige Kombination ist echt nicht toll. Szenario: Hyper-V Maschine, mehrere virtuelle Maschinen, einige davon mit Snapshots, diverse sehr lange laufende Installationen und viel Arbeit in diesen Maschinen. Neue Maschinen anlegen passiert auf Basis vorhandener Images, die mit sysprep jeweils generalisiert und für Erstnutzung vorbereitet und dann konfiguriert wurden.
Enter the system administrator: eine neue virtuelle Maschine angelegt, sysprep laufen lassen, leider nicht in der virtuellen Maschine, sondern auf dem Hyper-V Server. Der war dann mal weg. Erste Panik-Attacke.
Kollege hat den (von mir natürlich remote stehenden) Hyper-V Server wiederbelebt und in die Domäne gehängt, ich komme drauf. Alle Konfigurationen noch da, alle virtuellen Maschinen noch da. Keine einzige davon funktioniert. Zweite Panik-Attacke.
Virtuelle Maschinen versucht zu editieren, no go – die Konfigurationen sind nicht erreichbar, der Hyper-V denkt, die lägen alle auf Laufwerk C:. Nachgeguckt, oh, die Laufwerke I: und J: (auf denen die Maschinen vorher lagen) sind nicht mehr da, haben andere Buchstaben. Ok, Buchstaben zurückgedreht und Hyper-V neu gestartet. Keine der Maschinen läuft, die glauben immer noch auf C: zu sein. Dritte Panikattacke, als ich merke, dass man keinerlei Konfigurationsänderungen machen kann.
Tja, auch in den Konfigurationen und der Registry findet sich nichts über dieses ominöse C: – wo kommt das her? Nach längerem Suchen gefunden, für jede virtuelle Maschine und für jeden Snapshot legt Hyper-V symbolische Links unter NTFS ab. Diese liegen unter %systemdrive%:\ProgramData\Microsoft\Windows\Hyper-V in den Unterverzeichnissen „Virtual Machines“ und „Snapshots“ und zeigen auf die echten Zieldateien. Und auf magische Weise zeigten diese alle auf C: – scheinbar „korrigiert“ NTFS beim Start defekte symbolische Links, die auf nicht existierende Laufwerke zeigen. Toll.
Also die Links neu angelegt (erstmal nur einen unwichtigen Server, damit ich sehe ob es klappt). Klappt natürlich nicht, weil der Hyper-V ignoriert den schönen neuen symbolischen Link. Rechte sind falsch. Icacls kann das reparieren – „NT VIRTUAL MACHINE\<guid>“ ist die Syntax für den Pseudo-Benutzer den man zuweisen muss. Tut aber nicht. Vierte Panikattacke.
Laut fluchend gefunden, dass ein Franzose damit auch Probleme hatte – Microsoft in seiner großen Weisheit hat die Namen lokalisiert. Unter der deutschen Version also „NT VIRTUELLER COMPUTER\<guid>“. Toll. Ganz Toll. Hat mich ja auch nur 2 Stunden meines Lebens gekostet.