Vous avez recréé un VHD sur D: et il n’apparaît plus au redémarrage ? Voici comment le monter automatiquement sous Windows 11 avec le Planificateur de tâches et un script DiskPart, ainsi que des alternatives PowerShell et des conseils pour une lettre de lecteur stable et sécurisée.
Problème posé
Après suppression puis création d’un nouveau disque virtuel (VHD/VHDX) sur la partition D:, ce volume n’apparaît plus dans Cet ordinateur à chaque démarrage. L’objectif est de retrouver le comportement antérieur : le VHD doit être attaché et visible en permanence, sans action manuelle.
Pourquoi cela arrive-t-il ?
Windows 11 ne propose pas d’option graphique « attacher en permanence » pour un VHD. L’attachement d’un disque virtuel est volatile : après un redémarrage, il n’est plus monté sauf si un mécanisme (tâche planifiée, service, script de session, utilitaire tiers) l’attache à nouveau. Si vous avez recréé le fichier VHD/VHDX, son identifiant interne change ; une éventuelle méthode précédente (tâche, script, outil) pouvait référencer l’ancien fichier, d’où la disparition au démarrage.
Solution via le Planificateur de tâches
La méthode la plus robuste et native consiste à créer une tâche planifiée qui exécute diskpart
au démarrage du système. Elle fonctionne même avant l’ouverture de session si on l’exécute sous le compte SYSTEM
.
Préparer le script DiskPart
- Créez un fichier texte, par exemple
E:\Mount.txt
. - Collez le contenu suivant :
select vdisk file="D:\DevDrive.vhdx"
attach vdisk
exit
Adaptez le chemin D:\DevDrive.vhdx
à votre fichier. Le script attache le VHD en lecture/écriture, ce qui suffit dans la plupart des cas.
Créer la tâche planifiée
- Ouvrez le Planificateur de tâches (
taskschd.msc
). - Cliquez Créer une tâche de base… et nommez-la p. ex. Mount Virtual Hard Disk.
- Définissez le déclencheur sur Au démarrage (ou À l’ouverture de session si le VHD ne doit être visible que pour l’utilisateur courant).
- Définissez l’action :
- Programme/script :
diskpart
- Ajouter des arguments :
/s E:\Mount.txt
- Programme/script :
- Cochez Ouvrir les propriétés de cette tâche une fois terminé, puis cliquez Terminer.
Exécuter sous SYSTEM
- Dans l’onglet Général de la tâche, cliquez Modifier l’utilisateur ou le groupe…, saisissez
SYSTEM
, validez. - Cochez Exécuter avec les autorisations maximales si disponible.
- Laissez les autres onglets (Déclencheurs, Actions, Conditions, Paramètres) par défaut ou adaptez si besoin (voir recommandations ci‑dessous).
Recommandations de configuration
- Délai au démarrage : si le VHD est sur un disque externe ou une partition montée tardivement, éditez le déclencheur Au démarrage et ajoutez un délai de 15–30 secondes.
- Énergie : décochez « Démarrer la tâche uniquement si l’ordinateur est sur le secteur » si vous êtes sur portable.
- Nouvelle tentative : dans Paramètres, activez « Rerun every » en cas d’échec (p. ex. réessayer toutes les 1 min pendant 5 min).
- Journalisation : ajoutez une seconde action
cmd
avec/c echo %date% %time% >> C:\ProgramData\VHD-mount.log
pour laisser une trace de passage (facultatif).
Tester et valider
- Dans le Planificateur, cliquez droit la tâche → Exécuter. Le VHD doit apparaître dans l’Explorateur.
- Redémarrez. Le volume doit être monté automatiquement, avant votre ouverture de session si la tâche s’exécute sous
SYSTEM
.
Assurer une lettre de lecteur stable
Une fois le VHD monté, attribuez une lettre fixe pour éviter les permutations (ex. quand des clés USB occupent la lettre habituelle) :
- Ouvrez Gestion des disques (
diskmgmt.msc
). - Clic droit sur la partition du VHD → Modifier la lettre de lecteur et les chemins d’accès….
- Ajouter/Modifier → choisissez une lettre élevée (ex.
V:
pour « VHD »).
Cette affectation est persistante : à chaque attachement, Windows réutilisera la même lettre dès que possible.
Scripts de référence
Script DiskPart minimal
select vdisk file="D:\DevDrive.vhdx"
attach vdisk
exit
Script DiskPart avec lecture seule (optionnel)
Utile si vous ne voulez pas modifier le contenu du VHD (par exemple un gabarit partagé). À éviter pour un disque de travail.
select vdisk file="D:\DevDrive.vhdx"
attach vdisk readonly
exit
Exemple PowerShell (alternative)
À utiliser si vous préférez un script PowerShell au lieu de DiskPart (voir la section « Autres possibilités »). Placez-le dans le dossier Démarrage ou appelez‑le depuis la tâche planifiée :
$VhdPath = "D:\DevDrive.vhdx"
$TargetLetter = "V"
if (Test-Path $VhdPath) {
$img = Get-DiskImage -ImagePath $VhdPath -ErrorAction SilentlyContinue
if (-not $img -or -not $img.Attached) {
$img = Mount-DiskImage -ImagePath $VhdPath -PassThru
}
```
# Affecter une lettre stable si nécessaire
$disk = (Get-DiskImage -ImagePath $VhdPath | Get-Disk)
$part = $disk | Get-Partition | Where-Object { $_.Type -ne "Reserved" } | Select-Object -First 1
if ($part -and $part.DriveLetter -ne $TargetLetter) {
$part | Set-Partition -NewDriveLetter $TargetLetter -ErrorAction SilentlyContinue
}
```
} </code></pre>
<h2>Autres possibilités utiles</h2>
<table>
<thead>
<tr>
<th>Méthode</th>
<th>Principe</th>
<th>Avantages</th>
<th>Inconvénients</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Script PowerShell dans le dossier Démarrage</strong></td>
<td>Placer un fichier <code>.ps1</code> (ou un raccourci) contenant <code>Mount-DiskImage -ImagePath "D:\DevDrive.vhdx"</code> dans <code>%ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp</code>.</td>
<td>Plus simple qu’une tâche planifiée ; s’exécute à la session utilisateur.</td>
<td>Ne s’exécute qu’après ouverture de session ; visibilité fugace d’une fenêtre PowerShell.</td>
</tr>
<tr>
<td><strong>Service Windows personnalisé</strong></td>
<td>Créer un service qui appelle <code>diskpart</code> ou <code>Mount-DiskImage</code>.</td>
<td>Montage très tôt dans le démarrage, avant ouverture de session.</td>
<td>Implémentation plus complexe (sc.exe ou utilitaire tiers).</td>
</tr>
<tr>
<td><strong>Utilitaire tiers (p. ex. VHD Attach)</strong></td>
<td>Configure automatiquement le montage des VHD sélectionnés.</td>
<td>Interface graphique, gestion de plusieurs VHD, journaux.</td>
<td>Dépendance à un logiciel externe.</td>
</tr>
</tbody>
</table>
<blockquote>
<p><strong>Important :</strong> Windows ne propose pas d’option graphique native pour « attacher en permanence » un VHD ; toute solution repose donc sur un script ou un service lancé au démarrage.</p>
</blockquote>
<h2>Points de vigilance</h2>
<ul>
<li><strong>Chemin du VHD</strong> : si la lettre ou le chemin change, mettez à jour le script (<em>et</em> vérifiez que la tâche y a accès).</li>
<li><strong>Sécurité</strong> : exécuter sous <code>SYSTEM</code> garantit un montage précoce mais donne des droits élevés au script. Stockez <code>Mount.txt</code> dans un dossier protégé (<code>C:\ProgramData\</code> est un bon emplacement) et limitez les ACL.</li>
<li><strong>Chiffrement BitLocker</strong> : si le VHD est chiffré (ou s’il réside sur un volume chiffré), prévoyez le déverrouillage automatique (Gestionnaire d’identifiants, <code>manage-bde</code>, clé stockée dans l’appareil). Sans cela, le montage peut échouer au démarrage.</li>
<li><strong>Mises à jour système</strong> : après un changement majeur de version (par ex. 24H2 → 25H1), vérifiez que la tâche fonctionne toujours et que <code>diskpart</code> pointe vers le bon script.</li>
<li><strong>Support de stockage</strong> : évitez de placer le VHD (et le script) sur un disque amovible retiré ou alimenté tardivement. Si c’est inévitable, ajoutez un délai au déclencheur et activez des réessais.</li>
<li><strong>Antivirus/EDR</strong> : certains agents retardent l’accès à des fichiers au démarrage. Ajoutez une exclusion pour le dossier du VHD si nécessaire (en accord avec vos politiques de sécurité).</li>
</ul>
<h2>Cas particuliers et bonnes pratiques</h2>
<h3>Plusieurs VHD à monter</h3>
<p>Vous pouvez attacher plusieurs VHD avec un seul script DiskPart en enchaînant les blocs :</p>
<pre><code>select vdisk file="D:\DevDrive.vhdx"
attach vdisk
select vdisk file="D:\Data.vhdx"
attach vdisk
exit
</code></pre>
<p>Pour des lettres de lecteur dédiées à chacun, attribuez-les une fois via <em>Gestion des disques</em> (persistance assurée) ou greffez une étape PowerShell d’affectation ciblée par chemin.</p>
<h3>VHDX, VHD, taille et performances</h3>
<ul>
<li><strong>VHDX</strong> est recommandé (résilience accrue, tailles >2 To, meilleure tolérance aux pannes).</li>
<li>Un <strong>disque dynamique</strong> (à extension progressive) est pratique mais peut se fragmenter ; occasionnellement, défragmentez le fichier hôte.</li>
<li>Un <strong>disque fixe</strong> (taille allouée d’emblée) offre une latence plus stable au prix d’un espace réservé plus important.</li>
</ul>
<h3>Lettre de lecteur par script DiskPart</h3>
<p>Si vous tenez à fixer la lettre directement dans DiskPart, vous devez cibler la <em>partition</em> ou le <em>volume</em> une fois le VHD attaché ; or leur numéro peut varier. Le plus simple reste d’affecter la lettre via <em>Gestion des disques</em> une fois pour toutes. Pour un contrôle par script, préférez PowerShell (<code>Set-Partition</code>), qui est plus expressif.</p>
<h3>Montage en lecture seule</h3>
<p>Pour des images de référence, utilisez <code>attach vdisk readonly</code>. Dans ce cas, n’assignez pas de lettre destinée à l’écriture et évitez les opérations qui modifient la structure du disque.</p>
<h3>Arrêt et démontage</h3>
<p>En règle générale, il n’est pas nécessaire de « détacher » explicitement le VHD à l’arrêt : Windows libère les poignées. Si vous devez garantir un détachement (maintenance, sauvegarde), créez une seconde tâche qui déclenche sur un <em>événement système</em> d’arrêt et exécute :</p>
<pre><code>select vdisk file="D:\DevDrive.vhdx"
detach vdisk
exit
</code></pre>
<h2>Dépannage pas à pas</h2>
<ul>
<li><strong>La tâche s’exécute mais le VHD n’apparaît pas</strong> : lancez manuellement <code>diskpart /s E:\Mount.txt</code> dans une console administrateur pour vérifier le script. Corrigez le chemin. Assurez‑vous que le compte <code>SYSTEM</code> a accès au dossier.</li>
<li><strong>Le VHD est monté mais sans lettre</strong> : attribuez‑en une via <em>Gestion des disques</em> ou <code>Set-Partition -NewDriveLetter V</code>.</li>
<li><strong>Aléa de timing</strong> : si le support n’est pas prêt au démarrage, ajoutez un délai au déclencheur ou utilisez <em>À l’ouverture de session</em> pour tester.</li>
<li><strong>Conflit de lettre</strong> : choisissez une lettre en fin d’alphabet (<code>V:</code>, <code>X:</code>, <code>Y:</code>, <code>Z:</code>) moins susceptibles d’être prises par des périphériques USB.</li>
<li><strong>BitLocker</strong> : vérifiez que le volume hôte est déverrouillé assez tôt. Le montage échouera si le fichier .vhdx est sur un lecteur encore chiffré au moment de la tâche.</li>
<li><strong>Journal des tâches</strong> : consultez l’Historique de la tâche (Dernier résultat = <code>0x0</code> indique la réussite). En cas d’échec, relevez le code d’erreur.</li>
</ul>
<h2>Bonnes pratiques de sécurité</h2>
<ul>
<li><strong>Localisation des scripts</strong> : préférez <code>C:\ProgramData\Scripts</code> ou un dossier système plutôt qu’un chemin utilisateur.</li>
<li><strong>ACL minimales</strong> : donnez <em>Lecture</em> à <code>SYSTEM</code> et aux administrateurs ; évitez d’ouvrir l’accès à « Tout le monde ».</li>
<li><strong>Signature PowerShell</strong> : si vous passez par PowerShell, alignez la <em>ExecutionPolicy</em> (p. ex. <code>AllSigned</code>) et signez vos scripts.</li>
</ul>
<h2>Résumé opérationnel</h2>
<p>Pour remonter automatiquement un VHD au démarrage de Windows 11 :</p>
<ol>
<li>Créez <code>E:\Mount.txt</code> qui contient :
<pre><code>select vdisk file="D:\DevDrive.vhdx"
attach vdisk
exit
Planifiez diskpart /s E:\Mount.txt
Au démarrage, exécution sous SYSTEM
, avec droits maximaux.
Attribuez une lettre stable via Gestion des disques.
Ajoutez un délai si le support est lent à être prêt, et des réessais en cas d’échec.
FAQ express
Cette méthode fonctionne-t-elle pour VHD et VHDX ? Oui. Le script select vdisk
fonctionne avec les deux formats.
Puis-je stocker le VHD sur un lecteur réseau ? Possible mais déconseillé au démarrage : la pile réseau n’est pas toujours prête et l’authentification peut empêcher l’accès sous SYSTEM
. Préférez un disque local.
Le montage impacte-t-il les performances ? Pas plus que l’accès au fichier .vhdx : les E/S traversent le système de fichiers hôte. Choisissez SSD/NVMe pour de bonnes performances.
Conclusion
La combinaison Planificateur de tâches + DiskPart est la voie la plus simple, native et fiable pour monter automatiquement un VHD au démarrage de Windows 11. Elle n’alourdit pas le boot, s’exécute avant l’ouverture de session si nécessaire, et laisse la main sur des options fines (délai, réessais, droits). Selon votre contexte, un script PowerShell, un service dédié ou un utilitaire tiers peuvent compléter cette solution. L’essentiel est de sécuriser le script, stabiliser la lettre de lecteur et vérifier après chaque mise à jour majeure que tout continue de fonctionner.
Récapitulatif de la solution proposée dans l’échange
- Ouvrir le Planificateur de tâches (
taskschd.msc
). - Créer une tâche de base nommée p. ex. « Mount Virtual Hard Disk ».
- Définir le déclencheur : Au démarrage (ou À l’ouverture de session si le VHD ne doit être visible que pour l’utilisateur actuel).
- Définir l’action :
- Programme/Script :
diskpart
- Arguments :
/s E:\Mount.txt
Mount.txt
contient :select vdisk file="D:\DevDrive.vhdx" attach vdisk exit
- Programme/Script :
- Cocher « Ouvrir les propriétés de cette tâche une fois terminé », puis cliquer Terminer.
- Dans l’onglet Général, cliquer Modifier l’utilisateur ou le groupe… → entrer SYSTEM → OK.
- Laisser les autres onglets avec les valeurs par défaut ou adapter au besoin.
- Valider : le VHD se monte désormais automatiquement à chaque démarrage.
Checklist rapide
- Chemin du VHD correct et accessible.
- Script
Mount.txt
placé dans un dossier protégé. - Tâche planifiée Au démarrage, sous
SYSTEM
, avec privilèges élevés. - Lettre de lecteur fixée (ex.
V:
). - Test manuel réussi (
diskpart /s E:\Mount.txt
), résultat de tâche =0x0
.