Windows Sandbox sur Windows 11 : effectuez vos tests en toute sécurité dans un bac à sable
Sommaire
I. Présentation
Depuis Windows 10 version 1903, Microsoft propose Windows Sandbox, une fonctionnalité intégrée aux éditions professionnelles et entreprise de Windows. Sur Windows 11, cette fonctionnalité est toujours présente, toujours aussi pratique, et très pratique pour effectuer des tests en toute sécurité.
Le principe est simple : Windows Sandbox permet de lancer un environnement Windows temporaire et isolé, sous forme de machine virtuelle légère ! Cette fonctionnalité est idéale dans différents cas d'usage, parmi lesquels :
- Tester un logiciel ou un exécutable (sans venir "polluer" son système principal),
- Ouvrir un fichier suspect,
- Exécuter un script PowerShell,
- Naviguer ou manipuler temporairement sans laisser de trace sur Windows
Attention, à la fermeture de la sandbox, toutes les modifications sont perdues. À la réouverture, vous repartez d’un environnement propre. Windows Sandbox est donc un environnement jetable et réutilisable à souhait.
Vous préférez le format vidéo ? Retrouvez ce tutoriel en vidéo sur ma chaîne YouTube :
Version originale de l'article : 31 octobre 2019.
II. Prérequis pour Windows Sandbox sur Windows 11
Avant de profiter de Windows Sandbox, assurez-vous de respecter les conditions suivantes : v b asqwù>.
| Prérequis | Détail |
|---|---|
| Édition de Windows | Windows 11 Pro, Enterprise ou Education - Non disponible sur l'édition Famille. Windows 10 est compatible également (version 1903 ou supérieure) |
| Architecture | 64 bits (x64) |
| RAM minimale | 4 Go, 8 Go recommandés |
| Processeur | 2 cœurs minimum |
| Espace disque | 1 Go libre minimum |
| Virtualisation | Activée dans le BIOS/UEFI, à savoir Intel-VT ou AMD-V. Recherchez une option comme "Virtualization Technology". |
Vous pouvez vérifier si Sandbox est activée avec cette commande PowerShell :
Get-WindowsOptionalFeature -FeatureName "Containers-DisposableClientVM" -Online
Vous obtenez un résultat similaire à celui ci-dessous, avec l'état de la fonctionnalité sur la ligne State. La valeur Disabled indique que la fonction de Bac à sable de Windows est désactivée.
FeatureName : Containers-DisposableClientVM
DisplayName : Bac à sable Windows
Description : Active les dépendances nécessaires à l'exécution des scénarios Bac à sable Windows.
RestartRequired : Possible
State : Disabled
CustomProperties :
III. Activer Windows Sandbox sur Windows 11
Désormais, nous allons voir comment activer Windows Sandbox (WSB) sur une machine Windows 11. L'activation peut être effectuée via l'interface graphique ou la ligne de commande PowerShell.
- Ouvrez le menu Démarrer et tapez "Fonctionnalités".
- Cliquez sur "Activer ou désactiver des fonctionnalités Windows".
- Cochez "Bac à sable Windows" (ou "Windows Sandbox" si votre système est en anglais).
- Validez et redémarrez votre PC.

Si la case est grisée, c'est probablement parce que la virtualisation est désactivée dans le BIOS / UEFI de votre PC.
Si vous êtes plutôt adepte de PowerShell, voici une commande pour activer Windows Sandbox de cette façon. Pensez à lancer la console PowerShell en tant qu'administrateur.
Enable-WindowsOptionalFeature -FeatureName "Containers-DisposableClientVM" -All -Online
Pour finaliser l'installation, vous devez redémarrer votre PC comme l'indique l'assistant.

IV. Prise en main de Windows Sandbox
Une fois activée, recherchez "Sandbox" dans le menu Démarrer et ouvrez l’application. Une session Windows minimaliste se lance dans une fenêtre isolée.
A. Windows Sandbox : quelques détails techniques
Avant d'évoquer l'utilisation de Windows Sandbox, il me semble intéressant de partager quelques détails techniques sur son fonctionnement et ses composants.
- La sandbox repose sur la technologie de conteneurs de Windows, ce qui crée une différence avec les machines virtuelles traditionnelles.
- Elle utilise deux processus principaux :
WindowsSandbox.exe(environ 160 Mo de RAM)VmmemWindowsSandbox(1 à 1,5 Go de RAM), exécuté avec un compte système isolé
- Le compte sur l'environnement Bac à sable est nommé
WDAGUtilityAccount.
B. Lancer son premier bac à sable sur Windows
Pour lancer un bac à sable, vous n'avez qu'à rechercher Windows Sandbox sur votre PC et à le lancer.

Quelques secondes plus tard, vous devriez obtenir un environnement prêt à l'emploi, semblable à celui-ci :

L'environnement est minimaliste. Vous pouvez gérer le réseau, accéder aux paramètres et utiliser quelques applications comme l'Explorateur de fichiers et Microsoft Edge. Vous pouvez redimensionner la fenêtre de la Sandbox et même passer en plein écran.
Pour faciliter vos tests, vous pouvez constater dans les options que la redirection du presse-papiers est activée par défaut. Ainsi, vous pouvez copier-coller facilement des fichiers entre le Bac à sable et le système hôte. Sachez également que la sandbox est connectée au réseau, via votre hôte physique.

Vous pouvez réaliser différentes actions dans la Sandbox, lorsqu'elle sera fermée, tout sera effacé. Vous repartez de zéro à chaque fois. Essayez, vous verrez. Par contre, et c'est important de le préciser : le Bac à sable peut être redémarré. C'est pratique si vous installez un programme qui nécessite un redémarrage.
C. Personnaliser Windows Sandbox avec des fichiers .WSB
Windows Sandbox peut être configurée à l’aide de fichiers .wsb (Windows Sandbox Configuration Files). Il s'agit de l'extension choisie par Microsoft pour les fichiers de configuration Windows Sandbox. La syntaxe de ce fichier correspond à du XML, avec des balises propres à cette fonctionnalité.
À l'aide d'un bloc <Configuration>, vous pourrez définir des paramètres. Par exemple, vous pouvez décider de lancer une Sandbox sans réseau pour avoir un niveau d'isolation supérieur.
<Configuration>
<Option>Valeur</Option>
</Configuration>

Un ensemble de paramètres sont disponibles pour vous permettre de personnaliser vos bacs à sable. Vous pouvez créer plusieurs fichiers de configuration WSB prêts à l'emploi et correspondant à différents types de Sandbox. Ils sont tous décrits dans la documentation de Microsoft.
Voici les principaux :
| Fonction | Configuration |
|---|---|
| Désactiver le réseau | <Networking>Disable</Networking> |
| Monter un dossier local | <MappedFolders> |
| Exécuter une commande au démarrage | <LogonCommand><Command>...</Command></LogonCommand> |
| Désactiver le GPU virtualisé | <VGpu>Disable</VGpu> |
| Activer le mode client protégé (isolation renforcée) | <ProtectedClient>Enable</ProtectedClient> |
| Activer la redirection des imprimantes de l'hôte vers la sandbox | <PrinterRedirection> |
| Spécifier la quantité de RAM disponible pour la sandbox (en MB) | <MemoryInMB>4096</MemoryInMB> |
Note : le mode client protégé s'appuie sur l'isolation AppContainer pour améliorer la sécurité. L'isolation d'AppContainer permet d'isoler les informations d'identification, les périphériques, les fichiers, le réseau, les processus et les fenêtres.
D. Exemple d'une sandbox personnalisée
Nous devons de voir, de façon théorique, quelques paramètres exploitables via le fichier de configuration WSB. Pour que ce soit plus concret, voici un exemple complet mettant en action ces différents paramètres.
Enregistrez le fichier suivant avec l’extension .wsb et double-cliquez dessus pour lancer une sandbox préconfigurée :
<Configuration>
<Networking>Enable</Networking>
<MappedFolders>
<MappedFolder>
<HostFolder>C:\SANDBOX</HostFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
</MappedFolders>
<LogonCommand>
<Command>msiexec /i C:\Users\WDAGUtilityAccount\Desktop\SANDBOX\Firefox.msi /quiet</Command>
</LogonCommand>
</Configuration>
Quelle est la configuration de cette sandbox ? Si nous regardons de plus près le code XML, nous pouvons voir les actions suivantes :
- Activation du réseau : la ligne
<Networking>Enable</Networking>permet d'activer la connectivité réseau dans l’environnement sandbox. Cela autorise l’accès à Internet et au réseau local, ce qui est utile pour tester des logiciels qui nécessitent une connexion. Dans certains cas, ce n'est pas souhaitable, donc il conviendra de passer cette option surDisable. - Partage d’un dossier avec l’hôte : la section
<MappedFolders>permet de monter un dossier présent sur le système hôte, iciC:\SANDBOX, dans la sandbox.
Le paramètre<ReadOnly>true</ReadOnly>indique que le dossier est en lecture seule, empêchant toute modification des fichiers d’origine. Ce montage permet d’accéder à des fichiers directement depuis la sandbox, sans avoir à les copier à l’intérieur manuellement. C'est idéal pour automatiser la construction du bac à sable. Vous pouvez mapper plusieurs dossiers, mais attention à ne pas mélanger<MappedFolders>avec<MappedFolder>. - Exécution automatique d’une commande : la section
<LogonCommand>contient une commande à exécuter automatiquement à l’ouverture de la sandbox. Ici, il s’agit de lancer le fichierFirefox.msiavec le paramètre/quiet(viamsiexecpour effectuer une installation silencieuse et automatique), situé dans le dossier partagé. Le chemin complet spécifie le profil de l'utilisateurWDAGUtilityAccount, qui est le compte utilisateur utilisé dans la Sandbox. L'exécutable doit donc être présent dans le dossierC:\SANDBOXde l’hôte avant de lancer la sandbox.
Ainsi, cette configuration permet de créer un environnement de test isolé, avec un accès Internet, un dossier partagé en lecture seule, et le lancement automatique d’un exécutable. L'idée étant de vous montrer comment construire une sandbox personnalisée, avec un ou plusieurs logiciels qui s'installeront automatiquement lors du lancement du bac à sable.
Lorsqu'un dossier est monté dans la Sandbox, il est accessible par l'intermédiaire d'un raccourci sur le bureau. Vous pouvez également constater la présence de l'icône Mozilla Firefox, qui montre que l'application a été installée.

Si vous voulez installer une application comme Visual Studio Code, en récupérant les sources directement sur Internet, c'est possible. Voici la commande à utiliser (il y a en réalité un enchainement de 2 commandes) :
<LogonCommand>
<Command>powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "Invoke-WebRequest 'https://update.code.visualstudio.com/latest/win32-x64-user/stable' -OutFile 'C:\Users\WDAGUtilityAccount\Downloads\vscode.exe'; Start-Process 'C:\Users\WDAGUtilityAccount\Downloads\vscode.exe' -ArgumentList '/verysilent', '/suppressmsgboxes' -Wait"</Command>
</LogonCommand>
Si vous êtes allergique avec la syntaxe XML et que vous préférez les clics, vous pouvez utiliser l'outil communautaire Windows Sandbox Editor. Créé par Damien Van Robaeys, il permet de créer un fichier WSB à partir d'une interface graphique.
E. Créer une sandbox avec WinGet DSC
Par défaut, Windows Sandbox n'a pas accès au gestionnaire de paquets WinGet, car il n'est pas installé dans cet environnement minimaliste. Cependant, il est assez pratique pour automatiser l'installation d'applications, donc il peut s'avérer judicieux de l'installer. Vous pouvez l'installer avec des commandes exécutées dans un bloc <LogonCommand> dans un fichier WSB (via un script PS1 externe) ou en utilisant WinGet DSC.
WinGet DSC est une extension de WinGet permettant de déclarer l’état souhaité d’un ensemble d’applications à installer sur Windows, en utilisant un fichier de configuration YAML. Nous pourrions le considérer comme une extension de PowerShell DSC greffée directement sur WinGet.
Ainsi, nous pouvons déclarer la configuration attendue dans un fichier YAML et lancer la construction de la Windows Sandbox directement depuis WinGet. D'ailleurs, Microsoft met à disposition un modèle de configuration nommé sandbox.winget qui sert à déployer une Sandbox en installant automatiquement WinGet.
Voici la partie principale de ce code (sans les commentaires) :
properties:
resources:
- resource: Microsoft.WindowsSandbox.DSC/WindowsSandbox
directives:
description: Create Windows Sandbox with Winget installed
allowPrerelease: true
settings:
Ensure: Present
#WsbFile: <Provide a custom .wsb file to open. The parameters below will override existing values in the wsb file>
LogonCommand: >
cmd /c start powershell -NoExit -Command "$progressPreference = 'silentlyContinue';
Write-Host 'Setting execution policy to remote signed...' `n;
Set-ExecutionPolicy RemoteSigned -Force;
Write-Host "Installing WinGet PowerShell module from PSGallery...";
Install-PackageProvider -Name NuGet -Force | Out-Null;
Install-Module -Name Microsoft.WinGet.Client -Force -Repository PSGallery | Out-Null;
Write-Host "Using Repair-WinGetPackageManager cmdlet to bootstrap WinGet...";
Repair-WinGetPackageManager -Force -Latest -Verbose;
Write-Host "Done.";
MemoryInMB: 4096
configurationVersion: 0.2.0
Ensuite, vous devez lancer la construction d'une sandbox depuis WinGet en exécutant cette commande :
winget.exe configure C:\temp\sandbox.winget --accept-configuration-agreements
Cette configuration va effectuer les actions suivantes :
- Installer le fournisseur de paquet
NuGetsur la machine - Installer le module PowerShell
WinGet.Client - Lancer une réparation du client WinGet grâce à la commande
Repair-WinGetPackageManagerpour automatiser l'installation de WinGet.
L'installation de WinGet reste pour autant fastidieuse et elle ne fonctionne pas toujours. Surtout, c'est une opération qui prend plusieurs minutes... D'une manière générale, si vous lancez des scripts ou des commandes d'installation de paquets dans une Windows Sandbox, je vous recommande de lui associer au moins 4 Go de RAM (<MemoryInMB>4096</MemoryInMB>).
F. Windows Sandbox : installer des paquets avec WinGet
Pour terminer, voyons comment installer WinGet dans Windows Sandbox à l’aide des packages APPX et MSIXBUNDLE. Cette méthode présente l’avantage d’être plus fiable, plus rapide, et entièrement hors ligne, car les fichiers nécessaires sont préalablement téléchargés puis accessibles directement depuis la sandbox.
Vous devez créer un répertoire, comme C:\SANDBOX, et lui ajouter ces fichiers :

Vous pouvez télécharger les paquets via ces liens :
- Les dépendances VCLibs UWP Desktop et Microsoft UI XAML sont à récupérer dans cette archive ZIP
- Le paquet Microsoft Desktop App Installer, correspondant à WinGet, peut être récupéré via ce lien
- D'une façon générale, récupérez la version de votre choix en consultant le GitHub du projet WinGet.
Vous devez créer un fichier de Sandbox. Ce fichier .wsb sert à configurer automatiquement une instance de Windows Sandbox en installant WinGet et plusieurs paquets (applications). Il exécute un script PowerShell au lancement et ce script nommé winget.ps1 se chargera de préparer l’environnement.
<Configuration>
<Networking>Enable</Networking>
<MappedFolders>
<MappedFolder>
<HostFolder>C:\SANDBOX</HostFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
</MappedFolders>
<LogonCommand>
<Command>powershell.exe -ExecutionPolicy Bypass -File C:\Users\WDAGUtilityAccount\Desktop\SANDBOX\winget.ps1</Command>
</LogonCommand>
<MemoryInMB>4096</MemoryInMB>
</Configuration>
Remarque : l'option <LogonCommand> peut être utilisée pour lancer un script PowerShell à l'aide de powershell.exe et les bons arguments, notamment -File pour préciser le nom du fichier à exécuter. Vous pouvez exécuter les actions de votre choix.
Voici le code du script PowerShell permettant d'installer WinGet et plusieurs applications, à savoir PowerShell (dernière version), Visual Studio Code et Mozilla Firefox. Ces paquets seront récupérés en ligne. La transcription PowerShell est activée afin d'avoir un fichier journal sur le Bureau de la Sandbox, ce qui sera particulièrement utile pour suivre la progression (et éventuellement faire du débogage).
# Évite l'affichage de la barre de progression pour accélérer le script
$progressPreference = 'silentlyContinue'
# Démarre la transcription de la session PowerShell vers un fichier log
Start-Transcript C:\users\wdagutilityaccount\Desktop\WinGet.log
# Définit le chemin d'accès local contenant les fichiers .appx et .msixbundle
$path = "C:\Users\WDAGUtilityAccount\Desktop\SANDBOX"
# Installe la dépendance VCLibs requise pour WinGet
Add-AppxPackage -Path "$path\Microsoft.VCLibs.140.00.UWPDesktop_14.0.33728.0_x64.appx"
# Installe la dépendance Microsoft UI XAML
Add-AppxPackage -Path "$path\Microsoft.UI.Xaml.2.8.x64.appx"
# Installe WinGet (Microsoft.DesktopAppInstaller) dans la sandbox
Add-AppxPackage -Path "$path\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
# Liste des applications à installer avec WinGet
$WinGetPackages = "Microsoft.PowerShell", "Microsoft.VisualStudioCode", "Mozilla.Firefox"
# Boucle sur chaque package pour l'installer silencieusement via WinGet
foreach ($Package in $WinGetPackages) {
Write-Output "Installation de l'application $Package"
WinGet.exe install --id $Package --disable-interactivity --accept-source-agreements --source winget --silent --force
}
# Arrête la transcription
Stop-Transcript
Une fois votre Sandbox construire à partir de ce modèle, vous obtiendrez cet environnement :

Grâce à ce script, vous pouvez automatiser l’installation de WinGet et d’un ensemble d’applications dans Windows Sandbox, même si WinGet n’est pas préinstallé.
V. Conclusion
Windows Sandbox est une fonctionnalité puissante, simple à utiliser et très pratique pour tester des logiciels ou manipuler des fichiers suspects sans compromettre la sécurité de votre système principal. Grâce à sa nature éphémère et isolée, elle constitue une solution idéale pour les environnements de test temporaires, sans pour autant remplacer les machines virtuelles.
Avec les fichiers de configuration .wsb, il est de personnaliser le comportement de la sandbox : exécution de scripts, montage de dossiers, désactivation du réseau, etc. De quoi créer des environnements adaptés à vos besoins. Pour une intégration encore plus forte, vous pouvez tester l'outil Run-in-Sandbox, également développé par Damien Van Robaeys et qui d'exécuter facilement un fichier dans une sandbox d'un simple clic droit.
Utilisez-vous Windows Sandbox ? N’hésitez pas à partager vos retours en commentaire.


Merci ! Je ne connaissais pas ! Va être utile pour faire des tests plutôt que polluer ma machine 🙂
Bonjour, le fichier de configuration de sandbox doit être enregistré ou?
Merci bonne soirée
Bonjour Axel,
Tu l’enregistres à l’endroit que tu veux… Tout en sachant qu’il faut exécuter directement le fichier pour lancer la Sandbox personnalisée par la suite.
Cordialement,
Florian
Bonjour,
Avant tout bravo pour tout ce que vous faite, vous êtes une source d’inspiration exceptionnel.
Merci encore.
Je reviens sur votre article :
https://www.it-connect.fr/installation-et-configuration-de-windows-sandbox/#V_Executer_une_sandbox_preconfiguree
Savez-vous comment autoriser la SB à surfer mais ne pas accéder à la machine hôte ?
Merci de votre retour
@ bientôt.
Hello Alfred,
A ma connaissance ce n’est pas possible. Puis, si la machine n’accède pas à ta machine hôte mais qu’elle peut accéder au réseau et potentiellement aux autres machines connectées sur le réseau, ça reste problématique, non ?
Bonne journée
Florian
Bonjour,
Merci pour cette vidéo et ce tuto.
J’ai créé une SandBox avec son propre fichier de configuration mais lorsque je la lance il me met un message d’erreur.
Voici mon fichier de configuration
Disable
D:\SANDBOX
true
C:\Users\WDAGUtilityAccount\Desktop\SANDBOX\ChromeStandaloneSetup64.exe /S
J’ai bien copier le fichier ChromeStandanone.exe dans le dossier D:\Sandbox
Et le message d’erreur est Le fichier spécifié est introuvable. Une idée?
J’ai le même problème.
enleve le /s
C:\Users\WDAGUtilityAccount\Desktop\SANDBOX\ChromeStandaloneSetup64.exe
Bonjour,
Est-il possible d’autoriser l’accès à un périphérique USB spécifique ?
Cordialement.
bonjour,
comment enregistrer une instance de ma sand box , pour pouvoir la réutiliser ultérieurement?
cordialement,
Bonjour,
La sandbox n’a pas vocation à durer dans le temps, donc elle sera détruite à chaque fois. Pour avoir une configuration de base, il faut passer par un fichier de configuration avec l’extension .WSB, comme je l’explique dans l’article.
bonjour et merci pour cet excellent tuto.
j’ai un petit souci, à chaque fois que j’essaie d’installer un log sur la sandbox (vlc par exemple), windows me dit que le logiciel en question est déjà en cours d’utilisation et que l’installation va être fermée…
j’avoue je ne comprends pas pourquoi
re-bonjour,
ok désolé je viens de comprendre, bêtement pour simplifer, j’avais renommé « vlc-3.0.20-win64.exe » en « vlc.exe ». Et visiblement la sandbox ne le digèrait pas…
Bref, merci encore !
« Voici une reformulation fluide et claire de ton paragraphe : »
ChatGPT spotted 😉
Loool, en effet, ça n’a rien à faire là. Et, il m’arrive de reformuler certaines phrases avec l’IA pour gagner un peu de temps 🙂
Bonjour,
J’utilise régulièrement la sandbox. C’est super pratique.
J’ai néanmoins une question : est-ce que le windows hote génère de la log sur l’utilisation de la SB ? Et, évidemment, si c’est le cas, où se cache-t-elle ?
Merci