Ce TP te montre comment automatiser l’installation de logiciels dans Windows Sandbox à l’aide d’un fichier .wsb. Tu vas installer automatiquement Firefox, Chrome, puis une série de logiciels grâce à Chocolatey.
À la fin du TP, tu seras capable de :
.wsb ;.wsb configure Windows Sandbox (XML).<LogonCommand> permet d'exécuter un script automatiquement.Invoke-WebRequest permet de télécharger un installeur depuis Internet.Sur ton PC, crée le dossier :
C:\SandboxTP
À l’intérieur :
Voici une section prête à intégrer dans ton article ou ton TP, expliquant comment installer Firefox depuis le dossier partagé plutôt que de le télécharger en ligne.
Dans certains contextes (réseau lent, test hors-ligne, installation répétée en classe), il peut être plus efficace de télécharger l’installeur Firefox une seule fois sur l’hôte, puis de le copier dans le dossier partagé utilisé par Windows Sandbox.
Cette méthode permet à la sandbox de lire l’installeur directement depuis le dossier mappé, sans passer par Internet.
Télécharge l’installeur complet Firefox depuis : https://download.mozilla.org/?product=firefox-latest&os=win64&lang=fr
Enregistre-le dans :
C:\SandboxTP\Shared
Le fichier ressemble généralement à :
Firefox Installer.exe
Dans ton fichier .wsb, partage ce dossier :
<MappedFolders>
<MappedFolder>
<HostFolder>C:\SandboxTP\Shared</HostFolder>
<SandboxFolder>C:\Shared</SandboxFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
</MappedFolders>
➡️ Dans la sandbox, le dossier apparaîtra sous :
C:\Shared
Crée un script PowerShell dans C:\SandboxTP\Scripts :
install_firefox_local.ps1$installerPath = "C:\Shared\Firefox Installer.exe"
if (Test-Path $installerPath) {
Write-Host "Installation de Firefox depuis le dossier partagé..." -ForegroundColor Cyan
Start-Process $installerPath -ArgumentList "/S" -Wait
Write-Host "Firefox installé avec succès !" -ForegroundColor Green
}
else {
Write-Host "ERREUR : fichier introuvable dans C:\Shared" -ForegroundColor Red
}
<Configuration>
<MappedFolders>
<MappedFolder>
<HostFolder>C:\SandboxTP\Shared</HostFolder>
<SandboxFolder>C:\Shared</SandboxFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
<MappedFolder>
<HostFolder>C:\SandboxTP\Scripts</HostFolder>
<SandboxFolder>C:\Scripts</SandboxFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
</MappedFolders>
<LogonCommand>
<Command>powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\install_firefox_local.ps1"</Command>
</LogonCommand>
</Configuration>
Lorsque la sandbox démarre :
C:\Shared,Crée dans :
C:\SandboxTP\Scripts
un fichier :
install_browsers.ps1
Colle ce script :
Write-Host "Téléchargement et installation de Firefox..." -ForegroundColor Cyan
Invoke-WebRequest "https://download.mozilla.org/?product=firefox-latest&os=win64&lang=fr" `
-OutFile "$env:TEMP\firefox.exe"
Start-Process "$env:TEMP\firefox.exe" -ArgumentList "/S" -Wait
Write-Host "Téléchargement et installation de Google Chrome..." -ForegroundColor Cyan
Invoke-WebRequest "https://dl.google.com/chrome/install/latest/chrome_installer.exe" `
-OutFile "$env:TEMP\chrome.exe"
Start-Process "$env:TEMP\chrome.exe" -ArgumentList "/silent","/install" -Wait
Write-Host "Installation des navigateurs terminée !" -ForegroundColor Green
➡️ Installation silencieuse, entièrement automatisée.
Crée :
C:\SandboxTP\InstallBrowsers.wsb
Avec :
<Configuration>
<MappedFolders>
<MappedFolder>
<HostFolder>C:\SandboxTP\Scripts</HostFolder>
<SandboxFolder>C:\Scripts</SandboxFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
</MappedFolders>
<LogonCommand>
<Command>powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\install_browsers.ps1"</Command>
</LogonCommand>
</Configuration>
👉 Double-clique sur .wsb → la sandbox installe Firefox et Chrome sans rien demander.
Dans C:\SandboxTP\Scripts, crée :
install_choco.ps1Write-Host "Installation de Chocolatey..." -ForegroundColor Yellow
Set-ExecutionPolicy Bypass -Scope Process -Force
Invoke-Expression ((New-Object System.Net.WebClient).DownloadString(
'https://community.chocolatey.org/install.ps1'
))
Write-Host "Chocolatey installé !" -ForegroundColor Green
## Liste des logiciels à installer
$packages = @(
"7zip",
"vlc",
"notepadplusplus",
"git",
"python"
)
Write-Host "Installation des logiciels..." -ForegroundColor Cyan
foreach ($pkg in $packages) {
choco install $pkg -y
}
Write-Host "Toutes les installations sont terminées !" -ForegroundColor Green
Crée :
C:\SandboxTP\InstallChoco.wsb
Contenu :
<Configuration>
<MappedFolders>
<MappedFolder>
<HostFolder>C:\SandboxTP\Scripts</HostFolder>
<SandboxFolder>C:\Scripts</SandboxFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
</MappedFolders>
<LogonCommand>
<Command>powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\install_choco.ps1"</Command>
</LogonCommand>
</Configuration>
🎉 La sandbox démarre et :
Ajoute googlechrome ou firefox à la liste $packages.
Installe via Chocolatey :
Crée un .wsb qui :
C:\SandboxTP\Code dans C:\Code ;Explique pourquoi il peut être dangereux d’utiliser un dossier mappé en écriture lorsque tu installes un fichier téléchargé automatiquement.