Déplacer une machine virtuelle d'un hôte hyper-V vers un autre ou comment restaurer les fichiers d'une machine virtuelle sur un autre hôte

La solution la plus simple, supportée et recommandée c'est l'exportation et l'importation de la machine virtuelle en utilisant les options du gestionnaire hyper-V ou de la console System Center Virtual Machine Manager mais dans certains cas (notamment des scénarios de reprise sur incidents) je peux me retrouver avec les fichiers de ma VM disponibles (fichier de configuration XML, fichiers disque et les snapshots) mais pas le serveur alors comment faire ? Et bien voici une méthode (non supportée) mais qui semble donner les resultats attendus !!

1 –En supposant que les informations de la VM soient dans C:\Vm\demo-VM\Virtual Machines\5EEA2393-49A2-45DE-8257-B7283A897D79.xml

 

2- Création du lien symbolique vers le fichier de configuration de la VM

mklink "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\5EEA2393-49A2-45DE-8257-B7283A897D79.xml" "C:\Vm\demo-VM\Virtual Machines\5EEA2393-49A2-45DE-8257-B7283A897D79.xml"

N.B : Hyper-V stocke dans le répertoire "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines" un lien symbolique vers toutes les VMs et les snapshots hébergés sur le serveur

 

3 - Affectation des droits full control à l'identificateur de sécurité de la VM

icacls "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\5EEA2393-49A2-45DE-8257-B7283A897D79.xml" /grant "NT VIRTUAL MACHINE\5EEA2393-49A2-45DE-8257-B7283A897D79":F /l

Je vois maintenant le VM dans Hyper-V Manager

 

 

Si j’ai des snapshots associés à la VM, par exemple C:\Vm\demo-VM \Snapshots\1e29c039-7385-4e4b-b726-ea6b0491f8e4.xml (étape 4 et 5 sinon je passe à l’étape 6)

 

4 - Création du lien symbolique correspondant au(x) snaphot(s)

mklink "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Hyper-V\Snapshots\1e29c039-7385-4e4b-b726-ea6b0491f8e4.xml" " C:\Vm\demo-VM \Snapshots\1e29c039-7385-4e4b-b726-ea6b0491f8e4.xml"

5 – Positionner les droits pour la VM

icacls "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Hyper-V\Snapshots\1e29c039-7385-4e4b-b726-ea6b0491f8e4.xml" /grant "NT VIRTUAL MACHINE\5EEA2393-49A2-45DE-8257-B7283A897D79":F /l

6 - Restaurer les droits sur le système de fichier (répertoire de la VM)

icacls "C:\Vm\demo-VM" /grant "NT VIRTUAL MACHINE\5EEA2393-49A2-45DE-8257-B7283A897D79":F /T

enjoy !!