[GUIDE] Ressources administrateurs — Windows Server 2025, AD, Hyper-V, PowerShell
Guide complet pour les administrateurs système et IT Pros. Couvre Windows Server 2025, Active Directory, Hyper-V, PowerShell, WSUS, DNS/DHCP et plus encore.
1. Windows Server 2025 — Nouveautés majeures
Windows Server 2025 (disponibilité générale : novembre 2024) apporte des améliorations significatives en matière de sécurité, de gestion hybride et de performances.
Hot Patching
Le Hot Patching permet d’appliquer des mises à jour de sécurité sans redémarrage du serveur. Cette fonctionnalité, auparavant réservée à Azure, est désormais disponible pour les installations on-premises via Azure Arc.
# Vérifier l'état du Hot Patching
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 10
# Activer via Azure Arc
az connectedmachine extension create --name "WindowsOSServicingExtension" `
--resource-group "MonRG" --machine-name "MonServeur"
Avantages : réduction drastique des fenêtres de maintenance, disponibilité accrue (99,99 %+).
Azure Arc intégré
Windows Server 2025 intègre nativement Azure Arc, permettant de gérer vos serveurs on-premises depuis le portail Azure :
- Politiques Azure Policy appliquées aux serveurs locaux
- Microsoft Defender for Cloud unifié
- Monitoring via Azure Monitor et Log Analytics
- Gestion des mises à jour avec Azure Update Manager
SMB over QUIC
Le protocole SMB over QUIC remplace le VPN traditionnel pour l’accès aux partages de fichiers :
- Chiffrement TLS 1.3 natif
- Traversée facilitée des pare-feu (port UDP 443)
- Performance améliorée sur les réseaux à haute latence
# Configurer SMB over QUIC sur le serveur
New-SmbServerCertificateMapping -Name "MonServeur" `
-Thumbprint "CERT_THUMBPRINT" -StoreName "My"
# Vérifier la configuration
Get-SmbServerCertificateMapping
Améliorations Hyper-V
- GPU Partitioning (GPU-P) pour les VMs
- Support NVMe virtuel amélioré
- Live Migration plus rapide avec compression mémoire
- Machines virtuelles de génération 2 par défaut
2. Active Directory — Diagnostic et gestion avancée
Diagnostic complet
dcdiag — Vérification de santé du contrôleur de domaine
# Diagnostic complet de tous les DC
dcdiag /v /c /d /e /s:NomDuDC
# Tests spécifiques critiques
dcdiag /test:DNS /DnsAll # Tests DNS complets
dcdiag /test:Replications # État de la réplication
dcdiag /test:FSMOCheck # Vérification rôles FSMO
dcdiag /test:Advertising # Annonce des services
dcdiag /test:KccEvent # Événements KCC
dcdiag /test:Services # Services AD essentiels
# Exporter le rapport complet
dcdiag /v /c /e > C:\Logs\dcdiag_rapport.txt
repadmin — Réplication Active Directory
# Voir l'état de réplication de tous les DC
repadmin /replsummary
# Forcer la réplication entre deux DC
repadmin /replicate DC02 DC01 "DC=domaine,DC=local"
# Afficher les partenaires de réplication
repadmin /showrepl NomDuDC
# Vérifier la file de réplication
repadmin /queue
# Synchroniser toutes les partitions
repadmin /syncall /AdeP
nltest — Test de confiance et localisation DC
# Vérifier la relation de confiance
nltest /sc_query:domaine.local
# Trouver le DC le plus proche
nltest /dsgetdc:domaine.local
# Réinitialiser le canal sécurisé
nltest /sc_reset:domaine.local
Test-ComputerSecureChannel -Repair -Verbose
Rôles FSMO
| Rôle | Portée | Commande de vérification |
|---|---|---|
| Schema Master | Forêt | Get-ADForest | Select SchemaMaster |
| Domain Naming Master | Forêt | Get-ADForest | Select DomainNamingMaster |
| RID Master | Domaine | Get-ADDomain | Select RIDMaster |
| PDC Emulator | Domaine | Get-ADDomain | Select PDCEmulator |
| Infrastructure Master | Domaine | Get-ADDomain | Select InfrastructureMaster |
# Voir tous les rôles FSMO d'un coup
netdom query fsmo
# Transférer un rôle (méthode propre)
Move-ADDirectoryServerOperationMasterRole -Identity "DC02" `
-OperationMasterRole PDCEmulator,RIDMaster
# Saisir un rôle (si le DC source est hors ligne — ATTENTION)
Move-ADDirectoryServerOperationMasterRole -Identity "DC02" `
-OperationMasterRole SchemaMaster -Force
GPO — Troubleshooting avancé
# Forcer la mise à jour des GPO
gpupdate /force /boot /logoff
# Générer un rapport HTML détaillé
gpresult /h C:\Logs\GPO_Rapport.html /f
gpresult /r # Résumé console
# Vérifier les GPO appliquées à distance
Invoke-Command -ComputerName PC01 -ScriptBlock { gpresult /r }
Get-GPResultantSetOfPolicy -Computer "PC01" -User "domaine\utilisateur" `
-ReportType Html -Path "C:\Logs\RSOP_PC01.html"
Filtrage WMI — Cibler précisément les machines :
# Exemple : GPO uniquement pour Windows 11 24H2+
SELECT * FROM Win32_OperatingSystem WHERE Version LIKE "10.0.2%" AND ProductType = "1"
# Exemple : Uniquement les laptops
SELECT * FROM Win32_Battery WHERE BatteryStatus > 0
# Tester un filtre WMI localement
Get-WmiObject -Query 'SELECT * FROM Win32_OperatingSystem WHERE Version LIKE "10.0.2%"'
Filtrage de sécurité : appliquer la GPO uniquement à un groupe de sécurité spécifique en retirant « Utilisateurs authentifiés » et en ajoutant le groupe cible.
Héritage bloqué : clic droit sur l’OU > « Bloquer l’héritage ». Les GPO « Appliqué » (Enforced) outrepassent ce blocage.
3. Hyper-V — Virtualisation complète
Création de machines virtuelles
# Créer une VM Generation 2
New-VM -Name "SRV-WEB01" -MemoryStartupBytes 4GB `
-Generation 2 -NewVHDPath "D:\VMs\SRV-WEB01\SRV-WEB01.vhdx" `
-NewVHDSizeBytes 100GB -SwitchName "vSwitch-Production"
# Configurer les processeurs et la mémoire dynamique
Set-VM -Name "SRV-WEB01" -ProcessorCount 4 `
-DynamicMemory -MemoryMinimumBytes 2GB `
-MemoryMaximumBytes 8GB -MemoryStartupBytes 4GB
# Monter un ISO pour l'installation
Set-VMDvdDrive -VMName "SRV-WEB01" `
-Path "C:\ISO\WindowsServer2025.iso"
# Configurer le Secure Boot
Set-VMFirmware -VMName "SRV-WEB01" `
-EnableSecureBoot On -SecureBootTemplate "MicrosoftWindows"
# Démarrer la VM
Start-VM -Name "SRV-WEB01"
Configuration réseau — vSwitch
# Créer un vSwitch externe (accès réseau physique)
New-VMSwitch -Name "vSwitch-Production" `
-NetAdapterName "Ethernet0" -AllowManagementOS $true
# Créer un vSwitch interne (communication hôte-VM)
New-VMSwitch -Name "vSwitch-Gestion" -SwitchType Internal
# Créer un vSwitch privé (communication inter-VMs uniquement)
New-VMSwitch -Name "vSwitch-Isolé" -SwitchType Private
# Lister les vSwitches
Get-VMSwitch | Format-Table Name, SwitchType, NetAdapterInterfaceDescription
Live Migration
# Activer Live Migration
Enable-VMMigration
Set-VMMigrationNetwork 10.0.0.0/24
# Migrer une VM vers un autre hôte
Move-VM -Name "SRV-WEB01" -DestinationHost "YOURHOST02" `
-IncludeStorage -DestinationStoragePath "D:\VMs\SRV-WEB01"
Prérequis : même domaine AD, délégation Kerberos (ou CredSSP), réseau dédié recommandé (10 Gbps+).
Checkpoints vs Backups
| Aspect | Checkpoint | Backup (Windows Server Backup / VEEAM) |
|---|---|---|
| Usage | Test/développement | Production |
| Impact perf. | Oui (chaîne AVHDX) | Minimal |
| Restauration granulaire | Non | Oui |
| Recommandé en production | Non | Oui |
# Créer un checkpoint (dev/test uniquement)
Checkpoint-VM -Name "SRV-WEB01" -SnapshotName "Avant-MiseAJour"
# Supprimer les checkpoints (libérer espace)
Remove-VMCheckpoint -VMName "SRV-WEB01" -Name "Avant-MiseAJour"
Bonnes pratiques stockage VHDX
- Utiliser des disques VHDX (et non VHD) — taille max 64 To, résilience aux corruptions
- Préférer les disques fixes en production (meilleure perf.) vs dynamiques en dev
- Séparer les VHDX OS et données sur des volumes physiques distincts
- Utiliser ReFS ou NTFS 64K pour les volumes hébergeant les VHDX
- Activer ODX (Offloaded Data Transfer) sur le stockage compatible
4. PowerShell — Administration serveur
Gestion à distance
# Activer la gestion à distance (sur le serveur cible)
Enable-PSRemoting -Force
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "10.0.0.*"
# Session interactive sur un serveur distant
Enter-PSSession -ComputerName SRV-DC01 -Credential (Get-Credential)
# Exécuter une commande sur plusieurs serveurs
$serveurs = "SRV-DC01", "SRV-WEB01", "SRV-SQL01"
Invoke-Command -ComputerName $serveurs -ScriptBlock {
Get-Service -Name "W32Time" | Select-Object Name, Status, StartType
}
# Copier un fichier vers un serveur distant via session PS
$session = New-PSSession -ComputerName SRV-WEB01
Copy-Item -Path "C:\Scripts\Deploy.ps1" -Destination "C:\Scripts\" `
-ToSession $session
Desired State Configuration (DSC)
DSC permet de définir l’état souhaité d’un serveur et de le maintenir automatiquement :
# Exemple de configuration DSC
Configuration ServeurWeb {
Node "SRV-WEB01" {
WindowsFeature IIS {
Ensure = "Present"
Name = "Web-Server"
}
WindowsFeature IISMgmt {
Ensure = "Present"
Name = "Web-Mgmt-Tools"
}
File SiteWeb {
Ensure = "Present"
Type = "Directory"
DestinationPath = "C:\inetpub\monsite"
}
Service W3SVC {
Name = "W3SVC"
State = "Running"
StartType = "Automatic"
}
}
}
# Compiler et appliquer
ServeurWeb -OutputPath "C:\DSC\ServeurWeb"
Start-DscConfiguration -Path "C:\DSC\ServeurWeb" -Wait -Verbose -Force
# Vérifier la conformité
Test-DscConfiguration -Detailed
Scripts d’administration essentiels
# Inventaire des serveurs du domaine
Get-ADComputer -Filter {OperatingSystem -like "*Server*"} `
-Properties OperatingSystem, LastLogonDate |
Select-Object Name, OperatingSystem, LastLogonDate |
Export-Csv "C:\Rapports\Serveurs_AD.csv" -NoTypeInformation
# Surveiller l'espace disque sur tous les serveurs
Invoke-Command -ComputerName (Get-Content "C:\Admin\serveurs.txt") -ScriptBlock {
Get-Volume | Where-Object { $_.SizeRemaining -lt ($_.Size * 0.1) } |
Select-Object @{N='Serveur';E={$env:COMPUTERNAME}}, DriveLetter,
@{N='Libre_Go';E={[math]::Round($_.SizeRemaining/1GB,2)}},
@{N='Total_Go';E={[math]::Round($_.Size/1GB,2)}}
}
5. WSUS & Patch Tuesday
Configuration WSUS
# Installer WSUS
Install-WindowsFeature -Name UpdateServices -IncludeManagementTools
# Lancer la configuration post-installation
& "C:\Program Files\Update Services\Tools\wsusutil.exe" postinstall `
CONTENT_DIR=D:\WSUS
# Configurer le serveur amont (Microsoft Update)
Set-WsusServerSynchronization -SyncFromMU
$wsus = Get-WsusServer
$wsus.GetSubscription().StartSynchronization()
Planification des mises à jour
| Phase | Délai après Patch Tuesday | Cible |
|---|---|---|
| Test/Dev | J+1 à J+3 | Serveurs de test |
| Pilote | J+7 | 10 % des postes production |
| Production vague 1 | J+14 | Postes de travail |
| Production vague 2 | J+21 | Serveurs de production |
| Serveurs critiques | J+28 | DC, SQL, Exchange |
MECM/SCCM Overview
Microsoft Endpoint Configuration Manager (MECM, ex-SCCM) offre une gestion avancée :
- Déploiement ciblé par collections
- Fenêtres de maintenance configurables
- Rapports de conformité détaillés
- Séquences de tâches pour les déploiements complexes
- Intégration avec Azure Update Manager pour les environnements hybrides
Rapport de conformité
# Script de rapport de conformité WSUS
$wsus = Get-WsusServer
$computerScope = New-Object Microsoft.UpdateServices.Administration.ComputerTargetScope
$updateScope = New-Object Microsoft.UpdateServices.Administration.UpdateScope
$updateScope.ApprovedStates = "Any"
$summary = $wsus.GetSummariesPerComputerTarget($updateScope, $computerScope)
$summary | Select-Object @{N='Ordinateur';E={
($wsus.GetComputerTarget([guid]$_.ComputerTargetId)).FullDomainName
}}, InstalledCount, NeededCount, FailedCount |
Export-Csv "C:\Rapports\WSUS_Conformite.csv" -NoTypeInformation
6. DNS & DHCP
DNS — Configuration et troubleshooting
# Créer une zone DNS principale
Add-DnsServerPrimaryZone -Name "domaine.local" `
-ReplicationScope "Forest" -DynamicUpdate "Secure"
# Ajouter des enregistrements
Add-DnsServerResourceRecordA -Name "srv-web01" `
-ZoneName "domaine.local" -IPv4Address "10.0.1.10"
Add-DnsServerResourceRecordCName -Name "intranet" `
-ZoneName "domaine.local" -HostNameAlias "srv-web01.domaine.local"
# Configurer un redirecteur conditionnel
Add-DnsServerConditionalForwarderZone -Name "partenaire.com" `
-MasterServers 192.168.1.1, 192.168.1.2
# Transfert de zone (vers un serveur secondaire)
Set-DnsServerPrimaryZone -Name "domaine.local" `
-SecureSecondaries TransferToSecureServers `
-SecondaryServers "10.0.0.12"
# Troubleshooting DNS
Clear-DnsClientCache # Vider le cache client
Clear-DnsServerCache # Vider le cache serveur
Resolve-DnsName -Name "srv-web01.domaine.local" -Type A -DnsOnly
nslookup -type=SOA domaine.local
Test-DnsServer -IPAddress 10.0.0.10 -ZoneName "domaine.local"
DHCP — Configuration et gestion
# Installer et configurer DHCP
Install-WindowsFeature -Name DHCP -IncludeManagementTools
Add-DhcpServerSecurityGroup
Restart-Service DHCPServer
# Créer un scope
Add-DhcpServerv4Scope -Name "Réseau Production" `
-StartRange 10.0.1.100 -EndRange 10.0.1.250 `
-SubnetMask 255.255.255.0 -LeaseDuration 8:00:00:00
# Options du scope
Set-DhcpServerv4OptionValue -ScopeId 10.0.1.0 `
-DnsDomain "domaine.local" -DnsServer 10.0.0.10, 10.0.0.11 `
-Router 10.0.1.1
# Réservation DHCP
Add-DhcpServerv4Reservation -ScopeId 10.0.1.0 `
-IPAddress 10.0.1.50 -ClientId "AA-BB-CC-DD-EE-FF" `
-Name "Imprimante-RDC" -Description "Imprimante du rez-de-chaussée"
# Exclure une plage
Add-DhcpServerv4ExclusionRange -ScopeId 10.0.1.0 `
-StartRange 10.0.1.1 -EndRange 10.0.1.99
# Troubleshooting DHCP
Get-DhcpServerv4ScopeStatistics # Statistiques des scopes
Get-DhcpServerv4Lease -ScopeId 10.0.1.0 # Baux actifs
Get-DhcpServerv4FreeIPAddress -ScopeId 10.0.1.0 -NumAddress 5 # IPs libres
7. Tableau des commandes PowerShell essentielles
| Commande | Description |
|---|---|
Get-ADUser -Filter * -Properties LastLogonDate |
Lister les utilisateurs AD avec dernière connexion |
Get-ADComputer -Filter {Enabled -eq $true} |
Lister les ordinateurs actifs du domaine |
Get-EventLog -LogName System -Newest 50 -EntryType Error |
Dernières erreurs système |
Get-Process | Sort-Object CPU -Descending | Select -First 10 |
Top 10 processus par CPU |
Test-NetConnection -ComputerName SRV01 -Port 443 |
Test de connectivité réseau |
Get-WindowsFeature | Where Installed |
Rôles et fonctionnalités installés |
Get-SmbOpenFile |
Fichiers ouverts sur les partages SMB |
Get-DhcpServerv4Lease -ScopeId 10.0.1.0 |
Baux DHCP actifs |
Resolve-DnsName -Name serveur01 -Type A |
Résolution DNS |
Get-WinEvent -FilterHashtable @{LogName='Security';Id=4625} -MaxEvents 20 |
Dernières tentatives de connexion échouées |
Get-VM | Select Name, State, CPUUsage, MemoryAssigned |
État des VMs Hyper-V |
Get-VHD -Path "D:\VMs\disk.vhdx" |
Informations sur un disque VHDX |
Restart-Service -Name DNS -Force |
Redémarrer le service DNS |
Get-ADReplicationPartnerMetadata -Target * |
Métadonnées de réplication AD |
Backup-GPO -All -Path "C:\Backup\GPO" |
Sauvegarder toutes les GPO |
Get-BitLockerVolume |
État du chiffrement BitLocker |
8. Ressources officielles
- Microsoft Learn — Windows Server : learn.microsoft.com/windows-server
- Active Directory Documentation : learn.microsoft.com/windows-server/identity
- Hyper-V Documentation : learn.microsoft.com/virtualization/hyper-v
- PowerShell Documentation : learn.microsoft.com/powershell
- WSUS Documentation : learn.microsoft.com/windows-server/administration/wsus
- Windows Server Blog : techcommunity.microsoft.com
- Sysinternals Suite : learn.microsoft.com/sysinternals
Ce guide est régulièrement mis à jour pour refléter les dernières évolutions de Windows Server et des outils d’administration Microsoft.
Pour un accompagnement professionnel : ayinedjimi-consultants.fr