Windows / AD
📚 Déploiement Postes Windows Linux Clonezilla Sysprep PowerShell
Clonezilla, Sysprep, Unattend.xml, PowerShell post-install, winget, preseed Debian — déployer et configurer des postes Windows et Linux efficacement.
Méthodes de déploiement — Comparaison
| Méthode | Avantage | Usage typique | Complexité |
|---|---|---|---|
| Clonezilla (image disque) | Simple, rapide, sans infra | Petits parcs, urgence, postes identiques | ⭐ |
| WinPE + Unattend.xml | Léger, personnalisable, sans serveur | Déploiement silencieux, automatisé | ⭐⭐ |
| MDT + WDS (Microsoft) | Natif Windows, GPO intégrées, PXE | Environnements Windows AD moyens | ⭐⭐⭐ |
| Ansible / Scripts PowerShell | Automatisation post-install | Configuration logiciels sur parc existant | ⭐⭐ |
| SCCM / Intune | Industriel, 100+ postes, reporting | Grandes entreprises | ⭐⭐⭐⭐ |
Clonezilla — Clonage et déploiement rapide
Clonezilla est l'outil de référence pour cloner un poste maître vers plusieurs postes identiques. Disponible en live USB, il supporte les images locales et distantes (SSH, Samba, NFS).
1
Préparer le poste maître
Installer Windows + tous les pilotes + logiciels standards de l'entreprise. S'assurer que tout fonctionne correctement.
2
Généraliser avec Sysprep
Exécuter
sysprep /generalize /oobe /shutdown pour généraliser l'image : supprime le SID, le nom de machine et les comptes — le poste s'éteint automatiquement.3
Capturer l'image avec Clonezilla
Booter sur Clonezilla live USB. Choisir device-image → save disk. Sauvegarder vers un NAS Samba, NFS ou clé USB externe.
4
Restaurer sur les nouveaux postes
Booter sur Clonezilla. Choisir device-image → restore disk. L'image est déployée en quelques minutes.
5
Post-déploiement Windows
Windows OOBE se lance automatiquement : configurer le nom du poste, joindre le domaine AD, lancer
gpupdate /force.sysprep-master.bat
@echo off REM === Généralisation du poste maître avant capture Clonezilla === REM Fermer toutes les applications avant d'exécuter ce script echo Préparation de l'image maître... echo Sysprep va généraliser le poste et l'éteindre. echo. pause REM Nettoyer avant sysprep cleanmgr /sagerun:1 ipconfig /flushdns REM Lancer sysprep (le poste s'éteint automatiquement) C:\Windows\System32\Sysprep\sysprep.exe /generalize /oobe /shutdown /quiet REM Capturer l'image avec Clonezilla depuis un live USB APRES l'extinction
Unattend.xml — Installation Windows automatique
Le fichier de réponses Unattend.xml automatise toutes les étapes de l'installation Windows : partitionnement, région, jointure de domaine, compte administrateur local.
unattend.xml
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<!-- Phase WinPE : langue et partitionnement -->
<settings pass="windowsPE">
<component name="Microsoft-Windows-International-Core-WinPE">
<UILanguage>fr-FR</UILanguage>
<UserLocale>fr-FR</UserLocale>
<KeyboardLayout>040c:0000040c</KeyboardLayout>
</component>
</settings>
<!-- Phase spécialisation : nom, domaine -->
<settings pass="specialize">
<component name="Microsoft-Windows-Shell-Setup">
<ComputerName>*</ComputerName> <!-- * = nom généré -->
<TimeZone>Romance Standard Time</TimeZone>
</component>
<component name="Microsoft-Windows-UnattendedJoin">
<Identification>
<Credentials>
<Domain>ENTREPRISE.LOCAL</Domain>
<Username>svc_join</Username>
<Password>JoinP@ss!</Password>
</Credentials>
<JoinDomain>ENTREPRISE.LOCAL</JoinDomain>
<MachineObjectOU>OU=Postes,DC=ENTREPRISE,DC=LOCAL</MachineObjectOU>
</Identification>
</component>
</settings>
<!-- Phase OOBE : compte local, bypass écrans -->
<settings pass="oobeSystem">
<component name="Microsoft-Windows-Shell-Setup">
<OOBE>
<HideEULAPage>true</HideEULAPage>
<SkipUserOOBE>true</SkipUserOOBE>
<SkipMachineOOBE>true</SkipMachineOOBE>
</OOBE>
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Name>Administrateur</Name>
<Password><Value>LocalAdm!n2025</Value></Password>
<Group>Administrators</Group>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
</component>
</settings>
</unattend>Script PowerShell — Post-déploiement Windows
post-deploy.ps1
#Requires -RunAsAdministrator
# Script de post-déploiement Windows
# Exécuter depuis une clé USB ou un partage réseau \\srv-deploy\scripts\
param(
[string]$NomPoste = "",
[string]$Domaine = "ENTREPRISE.LOCAL",
[string]$OUPath = "OU=Postes,OU=IT,DC=ENTREPRISE,DC=LOCAL"
)
function Log($msg) {
Write-Host "[$(Get-Date -Format 'HH:mm:ss')] $msg" -ForegroundColor Cyan
}
# 1. Renommer le poste
if ($NomPoste -ne "") {
Log "Renommage du poste en $NomPoste"
Rename-Computer -NewName $NomPoste -Force
}
# 2. Fuseau horaire et synchronisation NTP
Log "Configuration fuseau horaire Europe/Paris"
Set-TimeZone -Id "Romance Standard Time"
w32tm /resync /force | Out-Null
# 3. Désactiver les services inutiles (Xbox, Fax...)
Log "Désactivation services inutiles"
@("XboxGipSvc","XblGameSave","XblAuthManager","XboxNetApiSvc","Fax","MapsBroker") | ForEach-Object {
Stop-Service $_ -Force -ErrorAction SilentlyContinue
Set-Service $_ -StartupType Disabled -ErrorAction SilentlyContinue
}
# 4. Installer les logiciels standards via winget
Log "Installation des logiciels standards"
$apps = @(
@{id="7zip.7zip"; name="7-Zip"},
@{id="Adobe.Acrobat.Reader.64-bit"; name="Adobe Reader"},
@{id="Mozilla.Firefox.Fr"; name="Firefox FR"},
@{id="VideoLAN.VLC"; name="VLC"},
@{id="Microsoft.Teams"; name="Microsoft Teams"},
@{id="Notepad++.Notepad++"; name="Notepad++"}
)
foreach ($app in $apps) {
Log " Installation : $($app.name)"
winget install --id $app.id --silent --accept-source-agreements --accept-package-agreements 2>&1 | Out-Null
Log " $(if ($LASTEXITCODE -eq 0) {'✓ OK'} else {'✗ Erreur (code ' + $LASTEXITCODE + ')'})"
}
# 5. Activer le Bureau à distance (RDP)
Log "Activation RDP"
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server" fDenyTSConnections 0
Enable-NetFirewallRule -DisplayGroup "Bureau à distance"
# 6. Installer l'agent GLPI (inventaire automatique)
Log "Installation GLPI Agent"
$glpiMsi = "\\srv-deploy\outils\glpi-agent-x64.msi"
if (Test-Path $glpiMsi) {
msiexec /i $glpiMsi /quiet /norestart SERVER="http://glpi.entreprise.local/front/inventory.php" | Out-Null
Log " GLPI Agent installé"
}
# 7. Jonction au domaine AD
Log "Jonction au domaine $Domaine"
$cred = Get-Credential -Message "Compte de jonction (svc_join)"
Add-Computer -DomainName $Domaine -OUPath $OUPath -Credential $cred -Force
# 8. GPO
Log "Application des stratégies de groupe"
gpupdate /force | Out-Null
Log "=== Post-déploiement terminé. Redémarrage dans 30s ==="
Start-Sleep 30
Restart-Computer -ForceInstallation silencieuse — Référence winget
| Logiciel | ID winget | Commande |
|---|---|---|
| 7-Zip | 7zip.7zip | winget install 7zip.7zip --silent |
| Adobe Reader | Adobe.Acrobat.Reader.64-bit | winget install Adobe.Acrobat.Reader.64-bit --silent |
| Firefox FR | Mozilla.Firefox.Fr | winget install Mozilla.Firefox.Fr --silent |
| VLC | VideoLAN.VLC | winget install VideoLAN.VLC --silent |
| Chrome | Google.Chrome | winget install Google.Chrome --silent |
| Teams | Microsoft.Teams | winget install Microsoft.Teams --silent |
| Notepad++ | Notepad++.Notepad++ | winget install Notepad++.Notepad++ --silent |
| Git | Git.Git | winget install Git.Git --silent |
| VS Code | Microsoft.VisualStudioCode | winget install Microsoft.VisualStudioCode --silent |
Déploiement Linux — Preseed Debian
preseed-debian.cfg
# Fichier preseed pour installation Debian 12 automatique # Placer dans /var/www/html/preseed/ sur le serveur HTTP # Localisation d-i debian-installer/locale string fr_FR d-i keyboard-configuration/xkb-keymap select fr # Réseau (DHCP automatique) d-i netcfg/choose_interface select auto d-i netcfg/get_hostname string poste-debian d-i netcfg/get_domain string entreprise.local # Horloge d-i clock-setup/utc boolean true d-i time/zone string Europe/Paris d-i clock-setup/ntp boolean true # Partitionnement automatique LVM d-i partman-auto/method string lvm d-i partman-auto/disk string /dev/sda d-i partman-auto-lvm/guided_size string max d-i partman-auto/choose_recipe select atomic d-i partman/confirm boolean true d-i partman/confirm_nooverwrite boolean true # Compte utilisateur d-i passwd/root-login boolean false d-i passwd/user-fullname string Technicien IT d-i passwd/username string tech d-i passwd/user-password password TechPass2025! d-i passwd/user-password-again password TechPass2025! d-i passwd/user-default-groups string sudo # Sélection des paquets tasksel tasksel/first multiselect standard d-i pkgsel/include string openssh-server curl wget vim git sudo htop # Script post-install (configuration finale) d-i preseed/late_command string \ in-target apt-get install -y curl wget sudo openssh-server; \ in-target systemctl enable ssh; \ echo "tech ALL=(ALL) NOPASSWD:ALL" >> /target/etc/sudoers.d/tech
Checklist déploiement — Livraison poste
| # | Étape | Vérification |
|---|---|---|
| 1 | Matériel | No série noté, état physique OK, accessoires vérifiés |
| 2 | BIOS/UEFI | Secure Boot activé, date/heure correctes |
| 3 | OS installé | Windows/Linux installé, licence activée |
| 4 | Pilotes | Réseau, affichage, audio tous fonctionnels |
| 5 | Mises à jour | Windows Update ou apt upgrade — tout à jour |
| 6 | Antivirus | Agent AV installé, à jour, premier scan OK |
| 7 | Domaine AD | Poste joint au domaine, dans la bonne OU, GPO appliquées |
| 8 | Logiciels | Suite Office, navigateur, logiciels métier installés |
| 9 | GLPI Agent | Poste visible dans GLPI avec inventaire matériel/logiciel |
| 10 | Supervision | Agent Zabbix installé, poste visible et supervisé |
| 11 | RDP | Bureau à distance fonctionnel (si requis) |
| 12 | Test utilisateur | Connexion avec le compte de l'utilisateur final testée |
| 13 | Étiquette | Étiquette inventaire posée (no série + nom réseau) |
| 14 | PV de remise | Document signé, utilisateur informé des spécificités |
Utiliser GLPI Agent pour automatiser l'inventaire dès le premier démarrage. Couplé à GLPI, il remonte automatiquement : CPU, RAM, disque, OS, logiciels installés, numéro de série et adresse MAC — sans aucune saisie manuelle.
Outils de déploiement
Clonezilla Download
Clonage/restauration d'images disque — gratuit
Windows ADK
Kit de déploiement Windows (WinPE, DISM, unattend)
Microsoft MDT
Microsoft Deployment Toolkit — gratuit
Winget Packages
Catalogue des paquets winget disponibles
GLPI Agent
Agent d'inventaire automatique Windows/Linux
Debian Preseed
Documentation officielle preseed Debian
Ajouter Les Fibrés à mes sources préférées
Retrouvez plus souvent nos guides dans vos résultats Google