1. Installer et configurer #
Partir sur de bonnes bases.
Check-list #
- Windows Server en version prise en charge, Server Core par défaut, rôles minimaux.
- Nommage cohérent (
SRV-FONCTION-NN), IP fixe, DNS internes, heure synchronisée sur l'émulateur PDC. - Configuration décrite en code : scripts PowerShell, DSC, ou Ansible pour Windows, versionnés dans Git.
- Administration à distance (Windows Admin Center, PowerShell Remoting) depuis un poste d'administration dédié.
2. Identité et accès #
Protéger Active Directory, c'est protéger tout le reste.
Le modèle par niveaux #
- Au moins deux contrôleurs de domaine, sauvegardés (état du système) et surveillés (
dcdiag,repadmin). - Comptes d'administration nominatifs et séparés des comptes de messagerie, groupe « Admins du domaine » quasi vide, MFA pour les accès privilégiés.
- Windows LAPS sur tous les serveurs et postes, gMSA pour les services, corbeille AD activée.
- Droits attribués à des groupes (AGDLP), délégation sur les OU plutôt que des droits d'administrateur du domaine.
- Revue trimestrielle : comptes inactifs, membres des groupes privilégiés, mesure PingCastle.
3. Exploiter #
Au quotidien.
Mises à jour, sécurité, sauvegarde #
| Domaine | Pratique | Vérification |
|---|---|---|
| Mises à jour | anneaux mensuels après le Patch Tuesday | Get-HotFix, rapport WSUS ou Azure Update Manager |
| Sécurité | ligne de base Microsoft, SMBv1 absent, BitLocker, Defender à jour | Get-MpComputerStatus, manage-bde -status |
| GPO | une GPO par thème, OU pilote, sauvegarde des GPO | gpresult /h, Backup-GPO -All |
| Stockage | miroir pour les données vives, alertes à 80 % | Get-Volume, Get-VirtualDisk |
| Sauvegarde | 3-2-1 avec une copie immuable, test de restauration mensuel | wbadmin get versions |
| Journaux | tailles augmentées, audit avancé, centralisation | Get-WinEvent, SIEM |
| Supervision | CPU, mémoire, disque, services, certificats, réplication AD | Prometheus windows_exporter, Zabbix, Azure Monitor, Dynatrace |
Bonne pratique : Documentez chaque serveur (rôle, propriétaire, dépendances, procédure de redémarrage et de restauration) et chaque changement. Une procédure écrite et testée vaut mieux que l'expertise d'une seule personne.
Commandes à connaître #
| Action | Commande |
|---|---|
| Bilan rapide d’un serveur | Get-ComputerInfo -Property OsName, OsUptime, CsTotalPhysicalMemory |
| Services automatiques arrêtés | Get-Service | Where-Object { $_.StartType -eq 'Automatic' -and $_.Status -ne 'Running' } |
| Espace disque | Get-Volume | Where-Object DriveLetter |
| Santé AD | dcdiag /e /q ; repadmin /replsummary |
| Comptes inactifs | Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 |
| Certificats bientôt expirés | Get-ChildItem Cert:\LocalMachine\My | Where-Object NotAfter -lt (Get-Date).AddDays(30) |
| Erreurs récentes | Get-WinEvent -FilterHashtable @{LogName='System'; Level=2; StartTime=(Get-Date).AddDays(-1)} |
