[GUIDE] Ressources administrateurs — Windows Server 2025, AD, Hyper-V, PowerShell

[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


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