Windows Server
AdministrationConfiguration Serveur
Renommer un serveur Windows
# Renommer un serveur et redémarrer Rename-Computer -NewName "[NOM_SERVEUR]" -Force -Restart # Renommer sans redémarrer Rename-Computer -NewName "[NOM_SERVEUR]" -Force
Renommage d'un serveur après l'installation ou lors d'une restructuration
Le renommage nécessite un redémarrage pour être effectif
Commande `hostname` affiche le nouveau nom
Configurer une adresse IP statique
# Configurer une IP statique
New-NetIPAddress -InterfaceIndex [ID_INTERFACE] `
-IPAddress [ADRESSE_IP] `
-PrefixLength [MASQUE] `
-DefaultGateway [PASSERELLE]
# Exemple concret
New-NetIPAddress -InterfaceIndex 2 `
-IPAddress 192.168.1.10 `
-PrefixLength 24 `
-DefaultGateway 192.168.1.1
Configuration manuelle d'adresse IP pour les serveurs
Vérifier que l'adresse IP n'est pas déjà utilisée
`ping [ADRESSE_IP]` fonctionne depuis un autre poste
Configurer interface réseau avec DHCP
# Activer DHCP sur une interface
Set-NetIPInterface -InterfaceAlias "Ethernet" -Dhcp Enabled
# Désactiver DHCP
Set-NetIPInterface -InterfaceAlias "Ethernet" -Dhcp Disabled
# Configurer DNS client
Set-DnsClientServerAddress -InterfaceIndex 2 `
-ServerAddresses @("8.8.8.8", "8.8.4.4")
Configuration automatique d'adresse IP ou modification DNS
DHCP peut attribuer une IP différente à chaque redémarrage
Rôles & Fonctionnalités
Installer AD Domain Services
# Installer AD DS avec les outils
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
# Promouvoir en contrôleur de domaine
Install-ADDSForest -DomainName "[NOM_DOMAINE]" `
-DomainNetbiosName "[NETBIOS_NAME]" `
-InstallDNS `
-Force
Création d'un nouveau domaine Active Directory
Opération irréversible, redémarrage requis
`Get-ADDomain` retourne les informations du domaine
Installer Serveur de Fichiers
# Installer le rôle Serveur de Fichiers Install-WindowsFeature FS-FileServer -IncludeManagementTools # Vérifier l'installation Get-WindowsFeature FS-FileServer | Select-Object Name, Installed
Création d'un serveur de fichiers pour partages réseau
La fonctionnalité apparaît comme installée
PowerShell
ScriptingConfiguration Réseau
Lister les interfaces réseau
# Lister toutes les interfaces Get-NetAdapter # Voir la configuration complète Get-NetIPConfiguration # Adresses IP détaillées Get-NetIPAddress -AddressFamily IPv4 | Sort-Object InterfaceIndex
Vérification de la configuration réseau
Certaines interfaces peuvent être virtuelles
Affichage cohérent des interfaces actives
Gestion avancée des adresses IP
# Supprimer une adresse IP existante Get-NetIPAddress -InterfaceAlias "Ethernet 2" | Remove-NetIPAddress -Confirm:$false # Ajouter une nouvelle adresse IP New-NetIPAddress -InterfaceAlias "Ethernet 2" -IPAddress 172.16.2.1 -PrefixLength 28 # Vérifier les configurations IP Get-NetIPConfiguration | Select-Object InterfaceAlias, InterfaceIndex, IPv4Address
Modification ou correction de configuration IP
La suppression d'adresse IP peut couper la connectivité
Gestion Système
Gestion des services Windows
# Démarrer un service
Start-Service -Name "[NOM_SERVICE]"
# Arrêter un service
Stop-Service -Name "[NOM_SERVICE]" -Force
# Configurer démarrage automatique
Set-Service -Name "[NOM_SERVICE]" -StartupType Automatic
# Voir services en cours
Get-Service | Where-Object {$_.Status -eq "Running"} | Select-Object Name, DisplayName
Maintenance, redémarrage de services, configuration
Certains services critiques ne doivent pas être arrêtés
Service qui ne démarre pas, service bloqué
Redémarrer un serveur
# Redémarrer immédiatement Restart-Computer -Force # Redémarrer avec délai (30 secondes) Restart-Computer -Delay 30 -Force # Redémarrer un ordinateur distant Restart-Computer -ComputerName "SRV-01" -Force
Application de mises à jour, résolution de problèmes
Prévenir les utilisateurs avant redémarrage en production
Réseau & Pare-feu
ConnectivitéPare-feu Windows
Activer/désactiver le pare-feu
# Désactiver temporairement le pare-feu Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False # Activer le pare-feu Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True # Vérifier l'état du pare-feu Get-NetFirewallProfile | Select-Object Name, Enabled
Tests de connectivité, dépannage réseau
Ne pas laisser le pare-feu désactivé en production
Impossible de ping un serveur, ports bloqués
Créer des règles de pare-feu
# Autoriser ICMP (ping) pour un réseau spécifique New-NetFirewallRule ` -DisplayName "Allow ICMPv4 LAN" ` -Direction Inbound ` -Protocol ICMPv4 ` -ICMPType 8 ` -RemoteAddress 192.168.1.0/24 ` -Profile Any ` -Action Allow # Autoriser le trafic forwardé New-NetFirewallRule ` -DisplayName "Allow Forwarded Traffic" ` -Direction Inbound ` -Action Allow ` -Profile Any ` -InterfaceAlias "Ethernet 2" ` -Protocol Any
Ouverture de ports pour applications, routage
Limiter les règles aux adresses IP nécessaires uniquement
Gestion des règles de pare-feu
# Supprimer une règle par son nom Remove-NetFirewallRule -DisplayName "Allow ICMPv4 Anywhere" # Supprimer plusieurs règles Get-NetFirewallRule -Profile Private | Remove-NetFirewallRule # Activer des groupes de règles Enable-NetFirewallRule -DisplayGroup "File and Printer Sharing" Enable-NetFirewallRule -DisplayGroup "Remote Service Management"
Nettoyage de règles obsolètes, activation de fonctionnalités
Les services nécessaires sont accessibles
Routage & NAT
Configuration NAT
# Créer une configuration NAT
New-NetNat -Name "[NOM_NAT]" `
-InternalIPInterfaceAddressPrefix "[RESEAU_CIDR]"
# Exemple pour réseau interne
New-NetNat -Name "LAN-NAT" `
-InternalIPInterfaceAddressPrefix "192.168.1.0/24"
# Voir configurations existantes
Get-NetNat
# Supprimer une configuration
Remove-NetNat -Name "[NOM_NAT]" -Confirm:$false
Partage de connexion Internet, masquage d'adresses
Configuration complexe, bien tester
Les clients du réseau interne peuvent accéder à Internet
Gestion du routage IP
# Activer/désactiver le forwarding IP
Set-NetIPInterface -InterfaceAlias "Ethernet 2" -Forwarding Enabled
Set-NetIPInterface -InterfaceAlias "Ethernet" -Forwarding Disabled
# Ajouter une route statique
New-NetRoute -DestinationPrefix "172.16.0.0/24" `
-NextHop "172.16.2.140" `
-InterfaceIndex 2 `
-PolicyStore PersistentStore
# Vérifier les routes
Get-NetRoute -AddressFamily IPv4 | Where-Object {$_.DestinationPrefix -ne "0.0.0.0/0"} | Format-Table
Configuration de routeurs, connexion entre réseaux
Les routes incorrectes peuvent couper la connectivité
Configuration DHCP Relay
# Installer DHCP Relay (via netsh) netsh routing ip relay install # Déclarer le serveur DHCP netsh routing ip relay add dhcpserver 172.16.2.1 # Activer DHCP Relay sur une interface netsh routing ip relay add interface "Ethernet 2"
Relayer les requêtes DHCP entre réseaux
Nécessite une configuration de pare-feu appropriée
Active Directory
Domain ServicesStructure AD
Organisation logique pour gestion fluide et application simplifiée des GPO
Séparation administration/utilisateurs, regroupement par métier
Création Structure AD
Créer les Unités d'Organisation (OU)
# OU principales $DomainDN = "DC=afci,DC=lab" New-ADOrganizationalUnit -Name "AFCI-Formation" -Path $DomainDN -ProtectedFromAccidentalDeletion $true New-ADOrganizationalUnit -Name "Ordinateurs" -Path "OU=AFCI-Formation,$DomainDN" New-ADOrganizationalUnit -Name "Utilisateurs" -Path "OU=AFCI-Formation,$DomainDN" New-ADOrganizationalUnit -Name "_Admins" -Path "OU=AFCI-Formation,$DomainDN" New-ADOrganizationalUnit -Name "Groupes" -Path "OU=AFCI-Formation,$DomainDN" New-ADOrganizationalUnit -Name "Serveurs" -Path "OU=AFCI-Formation,$DomainDN" # Sous-OU Ordinateurs New-ADOrganizationalUnit -Name "Administration" -Path "OU=Ordinateurs,OU=AFCI-Formation,$DomainDN" New-ADOrganizationalUnit -Name "Salles-Formation" -Path "OU=Ordinateurs,OU=AFCI-Formation,$DomainDN"
Initialisation de la structure Active Directory
Planifier la structure avant création
Créer les groupes AD
# Création de groupes pour les partages
$DLGroups = @(
"LD-FS-Commun-R",
"LD-FS-Commun-RW",
"LD-FS-Commun-F",
"LD-FS-Formation-R",
"LD-FS-Formation-RW",
"LD-FS-Formation-F",
"LD-FS-Administration-RW",
"LD-FS-Administration-F"
)
foreach ($group in $DLGroups) {
New-ADGroup `
-Name $group `
-GroupScope DomainLocal `
-GroupCategory Security `
-Path "OU=Groupes,DC=afci,DC=lab"
}
Création des groupes pour gestion des permissions
Les groupes apparaissent dans l'OU Groupes
Utilisateurs & Groupes
Créer un utilisateur AD
# Créer un nouvel utilisateur
New-ADUser -Name "[NOM_COMPLET]" `
-GivenName "[PRENOM]" `
-Surname "[NOM]" `
-SamAccountName "[LOGIN]" `
-UserPrincipalName "[LOGIN]@[DOMAINE]" `
-Enabled $true `
-AccountPassword (ConvertTo-SecureString "[MDP]" -AsPlainText -Force)
Création de comptes utilisateurs en masse
Le mot de passe doit respecter la politique de sécurité
L'utilisateur peut se connecter au domaine
Gestion des membres de groupes
# Ajouter des membres à un groupe
Add-ADGroupMember -Identity "LD-FS-Commun-R" `
-Members "GG-Direction","GG-Comptabilite","GG-Secretariat"
# Retirer un membre
Remove-ADGroupMember -Identity "LD-FS-Commun-R" `
-Members "GG-Secretariat" -Confirm:$false
# Vérifier les membres
Get-ADGroupMember -Identity "LD-FS-Commun-R" | Select-Object Name
Configuration des permissions par groupes
Les permissions s'appliquent correctement
DC Répliqué
Promouvoir en DC répliqué
# Promouvoir un serveur en DC répliqué
Install-ADDSDomainController `
-DomainName "afci.lab" `
-SafeModeAdministratorPassword $SafeModePwd `
-Credential $PromotionCreds `
-InstallDns `
-NoGlobalCatalog:$false `
-SiteName "Default-First-Site-Name" `
-ReplicationSourceDC "SRV-01.afci.lab" `
-CreateDnsDelegation:$false `
-NoRebootOnCompletion:$false `
-Force
Ajout d'un contrôleur de domaine supplémentaire
Opération irréversible, nécessite un redémarrage
`repadmin /replsummary` montre une réplication saine
Vérifier la réplication AD
# Vérifier l'état de réplication repadmin /replsummary # Vérifier les informations du DC Get-ADDomainController -Identity "SRV-03" | Format-List * # Tester la connectivité DNS Resolve-DnsName afci.lab -Server 172.16.2.65
Surveillance de la santé AD, dépannage
Aucune erreur dans le résumé de réplication
DHCP & DNS
Services RéseauConfiguration DHCP
Créer un scope DHCP
# Créer un scope DHCP
Add-DhcpServerv4Scope `
-Name "[NOM_SCOPE]" `
-StartRange [DEBUT_PLAGE] `
-EndRange [FIN_PLAGE] `
-SubnetMask [MASQUE_SOUS_RESEAU] `
-State Active
# Exemple pour réseau 192.168.1.0/24
Add-DhcpServerv4Scope `
-Name "Scope-Bureau" `
-StartRange 192.168.1.100 `
-EndRange 192.168.1.200 `
-SubnetMask 255.255.255.0 `
-State Active
Mise en place d'une nouvelle plage DHCP
Éviter les conflits avec les adresses statiques
Les clients reçoivent une adresse de la plage
Configuration DHCP avancée
# Autoriser le serveur DHCP dans AD Add-DhcpServerInDC ` -DnsName "SRV-DHCP.afci.local" ` -IPAddress 172.16.2.1 # Configurer les options DHCP Set-DhcpServerv4OptionValue ` -ScopeId 192.168.0.0 ` -Router 192.168.0.254 ` -DnsServer 172.16.2.1 ` -DnsDomain "afci.lab" # Créer une réservation IP Add-DhcpServerv4Reservation ` -ScopeId 192.168.0.0 ` -IPAddress 192.168.0.1 ` -ClientId "00-00-00-0B-00-00" ` -Name "Reservation-PC-Admin"
Configuration complète du service DHCP
Vérifier les conflits d'adresses IP
Configuration DHCP Failover
# Configuration du failover pour un scope
Add-DhcpServerv4Failover `
-Name "Failover-Lille-Scope" `
-ScopeId 172.16.0.0 `
-PartnerServer "SRV-03.afci.lab" `
-ComputerName "SRV-01.afci.lab" `
-LoadBalancePercent 50 `
-MaxClientLeadTime 01:00:00
# Vérifier les scopes
Get-DhcpServerv4Scope -ComputerName "SRV-01.afci.lab"
Get-DhcpServerv4Scope -ComputerName "SRV-03.afci.lab"
Mise en place de haute disponibilité DHCP
Les clients reçoivent des adresses même si un serveur est down
Configuration DNS
Créer des enregistrements DNS
# Ajouter un enregistrement A
Add-DnsServerResourceRecordA `
-Name "srv04" `
-ZoneName "afci.lab" `
-IPv4Address "172.16.2.104"
# Ajouter un enregistrement CNAME
Add-DnsServerResourceRecordCName `
-Name "www" `
-HostNameAlias "srv01.afci.lab" `
-ZoneName "afci.lab"
# Vérifier les enregistrements
Get-DnsServerResourceRecord -ZoneName "afci.lab" -RRType A
Configuration manuelle de DNS pour nouveaux serveurs
Résolution DNS fonctionnelle pour le nouveau nom
Fichiers & Partages
Partages SMBCréation Partages
Créer l'arborescence et les partages
# Création de l'arborescence
New-Item -ItemType Directory -Path "C:\Shares\Commun" -Force
New-Item -ItemType Directory -Path "C:\Shares\Formation" -Force
New-Item -ItemType Directory -Path "C:\Shares\Administration" -Force
# Nettoyer les droits NTFS par défaut
$Folders = @("C:\Shares\Commun", "C:\Shares\Formation", "C:\Shares\Administration")
foreach ($folder in $Folders) {
icacls $folder /inheritance:r
icacls $folder /remove "Users"
}
# Attribution des droits NTFS
icacls "C:\Shares\Commun" /grant `
"AFCI\LD-FS-Commun-F:(OI)(CI)(F)" `
"AFCI\DL-FS-Commun-RW:(OI)(CI)(M)" `
"AFCI\DL-FS-Commun-R:(OI)(CI)(RX)"
Configuration initiale des partages de fichiers
Les permissions NTFS sont cumulatives avec les permissions SMB
Créer les partages SMB
# Création des partages SMB New-SmbShare -Name "Commun$" ` -Path "C:\Shares\Commun" ` -ChangeAccess "AFCI\LD-FS-Commun-RW" ` -ReadAccess "AFCI\LD-FS-Commun-R" ` -FullAccess "AFCI\LD-FS-Administration-F" New-SmbShare -Name "Formation$" ` -Path "C:\Shares\Formation" ` -ChangeAccess "AFCI\LD-FS-Formation-RW" ` -ReadAccess "AFCI\LD-FS-Formation-R" ` -FullAccess "AFCI\LD-FS-Administration-F" # Vérifier les partages Get-SmbShareAccess Commun$ Get-SmbShareAccess Formation$
Publication des dossiers en partages réseau
Accès au partage depuis un client du domaine
GPO & Stratégies
Stratégies de groupeGestion GPO
Créer et lier une GPO
# Créer une nouvelle GPO
New-GPO -Name "GPO-SEC-Windows-LAPS-Ordinateurs" `
-Comment "Gestion automatique des mots de passe admin locaux via Windows LAPS"
# Lier la GPO à une OU
New-GPLink `
-Name "GPO-SEC-Windows-LAPS-Ordinateurs" `
-Target "OU=Ordinateurs,DC=afci,DC=lab" `
-LinkEnabled Yes
# Vérifier les GPO
Get-GPO -All | Where-Object { $_.DisplayName -like "*LAPS*" }
Déploiement de stratégies de sécurité
Les GPO peuvent affecter de nombreux ordinateurs
Configurer GPO via registre
# Configuration LAPS via registre
$LAPSRegistryKey = "HKLM\Software\Microsoft\Policies\LAPS"
$GPOName = "GPO-SEC-Windows-LAPS-Ordinateurs"
# Sauvegarde dans Active Directory
Set-GPRegistryValue -GpoName $GPOName -Key $LAPSRegistryKey `
-ValueName "BackupDirectory" -Type DWord -Value 1
# Durée de validité (30 jours)
Set-GPRegistryValue -GpoName $GPOName -Key $LAPSRegistryKey `
-ValueName "PasswordAgeDays" -Type DWord -Value 30
# Longueur du mot de passe
Set-GPRegistryValue -GpoName $GPOName -Key $LAPSRegistryKey `
-ValueName "PasswordLength" -Type DWord -Value 14
Configuration avancée de stratégies
Les paramètres s'appliquent après `gpupdate /force`
Windows LAPS
Déploiement Windows LAPS
# Installer le module LAPS
Get-WindowsCapability -Name RSAT*LAPS* -Online
Add-WindowsCapability -Online -Name Rsat.Laps.Tools~~~~0.0.1.0
Import-Module LAPS
# Mise à jour du schéma AD (1 seule fois)
Update-LapsADSchema
# Autoriser les ordinateurs à écrire leur mot de passe
Set-LapsADComputerSelfPermission -Identity "OU=Ordinateurs,DC=afci,DC=lab"
# Délégation de lecture des mots de passe LAPS
Set-LapsADReadPasswordPermission `
-Identity "OU=Ordinateurs,DC=afci,DC=lab" `
-AllowedPrincipals "GG_IT_Admin"
Mise en place de la gestion automatique des mots de passe admin locaux
Opération sensible nécessitant des droits d'administrateur d'entreprise
Services & Rôles
AdministrationRRAS & Routage
Installer et configurer RRAS
# Installer le rôle Routage et Accès à distance Install-WindowsFeature RemoteAccess, Routing -IncludeManagementTools # Activer le service RRAS Install-RemoteAccess -VpnType RoutingOnly # Démarrer et configurer le service Set-Service RemoteAccess -StartupType Automatic Start-Service RemoteAccess
Configuration d'un serveur comme routeur
Nécessite un redémarrage après installation
Gestion à Distance
Configurer Remote Desktop
# Activer Remote Desktop
Set-ItemProperty -Path "HKLM:\\System\\CurrentControlSet\\Control\\Terminal Server" `
-Name "fDenyTSConnections" -Value 0
# Activer les règles de pare-feu pour RDP
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
# Ajouter un utilisateur aux utilisateurs RDP
Add-LocalGroupMember -Group "Remote Desktop Users" -Member "[NOM_UTILISATEUR]"
Accès à distance à un serveur Windows
Sécuriser RDP avec NLA et utilisateurs limités
Connexion RDP réussie
IPAM
Déploiement IPAM
# Installation IPAM
Install-WindowsFeature IPAM -IncludeManagementTools
# Installer RSAT GPMC pour GPO
Add-WindowsCapability -Online -Name Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0
# Provisionnement IPAM via GPO
Invoke-IpamGpoProvisioning `
-Domain "afci.lab" `
-GpoPrefixName "IPAM_AFCI" `
-IpamServerFqdn "SRV-01.afci.lab"
# Démarrer la découverte
Start-ScheduledTask -TaskPath "\Microsoft\Windows\IPAM\" -TaskName "ServerDiscovery"
Gestion centralisée des adresses IP dans un environnement Windows
La découverte prend plusieurs heures, patientez avant configuration
Administration à distance
Remote ManagementPowerShell Remoting
Configurer PowerShell Remoting
# Activer PowerShell Remoting Enable-PSRemoting -Force # Autoriser un hôte comme TrustedHost Set-Item WSMan:\localhost\Client\TrustedHosts -Value "IP_PC_ADMIN" -Force # Configurer WinRM winrm quickconfig # Tester la connexion à un serveur Enter-PSSession -ComputerName "SRV-01" -Credential (Get-Credential)
Administration à distance de serveurs
Sécuriser WinRM avec HTTPS dans les environnements de production
Exécution de commandes à distance
# Exécuter une commande sur un serveur distant
Invoke-Command -ComputerName "SRV-01" -ScriptBlock {
Get-Service | Where-Object {$_.Status -eq "Running"}
}
# Créer un partage à distance
Invoke-Command -ComputerName "SRV-01" -ScriptBlock {
New-Item -Path "C:\Partages\Test" -ItemType Directory -Force
New-SmbShare -Name "TestShare" -Path "C:\Partages\Test" -FullAccess "Administrateurs"
}
Administration centralisée de plusieurs serveurs
La commande s'exécute correctement sur l'hôte distant
Jonction au domaine
Joindre un ordinateur au domaine
# Joindre un ordinateur au domaine
Add-Computer -DomainName "afci.lab" `
-Credential (Get-Credential -UserName "AFCI\Administrator") `
-Restart
# Vérifier l'appartenance au domaine
(Get-CimInstance Win32_ComputerSystem).Domain
# Renommer et joindre au domaine
Rename-Computer -NewName "PC_Admin" -Force -Restart:$false
Add-Computer -DomainName "afci.lab" -Credential $Creds -Restart
Intégration de nouveaux postes dans le domaine
Redémarrage requis pour que la jonction soit effective
Utilitaires
OutilsCommandes Utiles
Commandes réseau utiles
# Tester la connectivité Test-NetConnection -ComputerName "[HOTE]" -TraceRoute # Vérifier les ports ouverts Test-NetConnection -ComputerName "[HOTE]" -Port [PORT] # Faire un ping continu Test-Connection -ComputerName "[HOTE]" -Count 10 # Résoudre un nom DNS Resolve-DnsName -Name "[NOM_DOMAINE]"
Diagnostic de problèmes réseau
Certains hôtes peuvent bloquer ICMP ou les scans de port
Connectivité établie ou problème identifié
Journal des événements
# Voir les événements RRAS Get-EventLog -LogName System -Source RemoteAccess -Newest 20 # Vérifier l'état du NAT Get-NetNatStaticMapping Get-NetNatSession # Vérifier les services Get-Service RemoteAccess | Select-Object Name, Status
Dépannage de services, investigation d'erreurs
Identification de la cause d'un problème
Gestion de l'exécution PowerShell
# Modifier la politique d'exécution Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force # Vérifier la politique actuelle Get-ExecutionPolicy -List # Vérifier la langue disponible Get-WinUserLanguageList # Changer la langue d'affichage Set-WinUILanguageOverride -Language en-US
Exécution de scripts, configuration système
Bypass peut être dangereux pour la sécurité
Scripts Complets
AutomatisationScripts de Configuration
Script complet : Configuration RRAS avec NAT
# Script complet de configuration RRAS avec NAT # ============================================ # 1. Installer les rôles nécessaires Install-WindowsFeature RemoteAccess, Routing -IncludeManagementTools Restart-Computer -Force # 2. Activer le service RRAS Install-RemoteAccess -VpnType RoutingOnly # 3. Démarrer et configurer le service Set-Service RemoteAccess -StartupType Automatic Start-Service RemoteAccess # 4. Configurer les interfaces (exemple pour RT1) # Interface WAN (vers Internet) New-NetIPAddress -InterfaceIndex 1 -IPAddress 172.16.2.141 -PrefixLength 28 -DefaultGateway 172.16.2.142 # Interface LAN (utilisateurs) New-NetIPAddress -InterfaceIndex 2 -IPAddress 172.16.1.254 -PrefixLength 24 # Interface Serveurs New-NetIPAddress -InterfaceIndex 5 -IPAddress 172.16.2.62 -PrefixLength 26 # 5. Configurer les routes statiques New-NetRoute -DestinationPrefix "172.16.0.0/24" -NextHop "172.16.2.140" -InterfaceIndex 2 New-NetRoute -DestinationPrefix "172.16.2.0/26" -NextHop "172.16.2.140" -InterfaceIndex 2 # 6. Activer le forwarding IP Set-NetIPInterface -InterfaceAlias "Ethernet" -Forwarding Enabled Set-NetIPInterface -InterfaceAlias "Ethernet 2" -Forwarding Enabled # 7. Configurer DHCP Relay (optionnel) netsh routing ip relay install netsh routing ip relay add dhcpserver 172.16.2.1 # 8. Activer les règles de pare-feu nécessaires Enable-NetFirewallRule -DisplayGroup "File and Printer Sharing" Enable-NetFirewallRule -DisplayGroup "Remote Service Management" Write-Host "Configuration RRAS terminée avec succès!" -ForegroundColor Green
Configuration complète d'un serveur comme routeur avec NAT
Adapter les adresses IP et interfaces selon votre topologie
Le trafic passe entre les réseaux et NAT fonctionne
Script complet : Promotion en DC répliqué
# Script complet pour promouvoir SRV-03 en DC répliqué
# ======================================================
# Variables de configuration
$ServerName = "SRV-03"
$DomainName = "afci.lab"
$DomainNetbios = "AFCI"
$ServerIP = "172.16.2.65"
$ServerGateway = "172.16.2.126"
$PrimaryDNS = "172.16.2.1"
$SecondaryDNS = "8.8.8.8"
# 1. Configuration réseau
$Adapter = Get-NetAdapter -Physical | Where-Object {$_.Status -eq 'Up'} | Select-Object -First 1
Set-NetIPInterface -InterfaceIndex $Adapter.InterfaceIndex -Dhcp Disabled
New-NetIPAddress -InterfaceIndex $Adapter.InterfaceIndex `
-IPAddress $ServerIP `
-PrefixLength 26 `
-DefaultGateway $ServerGateway
Set-DnsClientServerAddress -InterfaceIndex $Adapter.InterfaceIndex `
-ServerAddresses @($PrimaryDNS, $SecondaryDNS)
# 2. Renommage du serveur
Rename-Computer -NewName $ServerName -Force -Restart:$false
# 3. Jonction au domaine (si nécessaire)
$CurrentDomain = (Get-CimInstance Win32_ComputerSystem).Domain
if ($CurrentDomain -ne $DomainName) {
$Creds = Get-Credential -UserName "$DomainNetbios\Administrator"
Add-Computer -DomainName $DomainName -Credential $Creds -Force -Restart
exit 0
}
# 4. Installation des rôles AD
Install-WindowsFeature AD-Domain-Services, DNS -IncludeManagementTools
# 5. Découverte du DC existant
$SourceDC_FQDN = (Resolve-DnsName -Name $PrimaryDNS -Type PTR).NameHost
if ([string]::IsNullOrEmpty($SourceDC_FQDN)) {
$SourceDC_FQDN = "SRV-01.$DomainName"
}
# 6. Promotion en DC répliqué
$SafeModePwd = Read-Host -AsSecureString -Prompt "Mot de passe SAFE MODE"
$PromotionCreds = Get-Credential -UserName "$DomainNetbios\Administrator"
Install-ADDSDomainController `
-DomainName $DomainName `
-SafeModeAdministratorPassword $SafeModePwd `
-Credential $PromotionCreds `
-InstallDns `
-NoGlobalCatalog:$false `
-SiteName "Default-First-Site-Name" `
-ReplicationSourceDC $SourceDC_FQDN `
-CreateDnsDelegation:$false `
-NoRebootOnCompletion:$false `
-Force
Write-Host "Promotion réussie! Redémarrage en cours..." -ForegroundColor Green
Ajout d'un contrôleur de domaine répliqué dans un domaine existant
Opération irréversible, nécessite un redémarrage
`repadmin /replsummary` montre une réplication saine
Script complet : Configuration DHCP Failover
# Script de configuration DHCP Failover entre SRV-01 et SRV-03
# =============================================================
# 1. Installer le rôle DHCP sur SRV-03 (si nécessaire)
Install-WindowsFeature -Name DHCP -IncludeManagementTools
# 2. Autoriser le service dans le pare-feu
netsh advfirewall firewall add rule name="DHCP Server" dir=in action=allow protocol=UDP localport=67,68
# 3. Redémarrer le service
Restart-Service DHCPServer -Force
Set-Service -Name DHCPServer -StartupType Automatic
# 4. Configuration du failover pour le scope Lille
Add-DhcpServerv4Failover `
-Name "Failover-Lille-Scope" `
-ScopeId 172.16.0.0 `
-PartnerServer "SRV-03.afci.lab" `
-ComputerName "SRV-01.afci.lab" `
-LoadBalancePercent 50 `
-MaxClientLeadTime 01:00:00
# 5. Configuration du failover pour le scope Arras
Add-DhcpServerv4Failover `
-Name "Failover-Arras-Scope" `
-ScopeId 172.16.1.0 `
-PartnerServer "SRV-03.afci.lab" `
-ComputerName "SRV-01.afci.lab" `
-LoadBalancePercent 50 `
-MaxClientLeadTime 01:00:00
# 6. Vérification des scopes
Write-Host "=== Scopes sur SRV-01 ===" -ForegroundColor Cyan
Get-DhcpServerv4Scope -ComputerName "SRV-01.afci.lab" | Format-Table ScopeId, Name, State
Write-Host "`n=== Scopes sur SRV-03 ===" -ForegroundColor Cyan
Get-DhcpServerv4Scope -ComputerName "SRV-03.afci.lab" | Format-Table ScopeId, Name, State
Write-Host "`n=== État du failover ===" -ForegroundColor Cyan
Get-DhcpServerv4Failover -ComputerName "SRV-01.afci.lab" | Format-Table Name, PartnerServer, Mode
Write-Host "`nConfiguration DHCP Failover terminée avec succès!" -ForegroundColor Green
Mise en place de haute disponibilité pour le service DHCP
Les deux serveurs doivent être dans le même domaine
Les clients reçoivent des adresses même si un serveur DHCP est down
Script complet : Déploiement IPAM
# Script de déploiement IPAM en mode production (GPO)
# ====================================================
# 1. Installation IPAM
Install-WindowsFeature IPAM -IncludeManagementTools
Restart-Computer
# 2. Installer RSAT GPMC pour GPO
Add-WindowsCapability -Online -Name Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0
# 3. Importer les modules
Import-Module GroupPolicy
Import-Module ActiveDirectory
Import-Module IpamServer
# 4. Provisionnement IPAM via GPO
Invoke-IpamGpoProvisioning `
-Domain "afci.lab" `
-GpoPrefixName "IPAM_AFCI" `
-IpamServerFqdn "SRV-01.afci.lab"
# 5. Démarrer la découverte
Start-ScheduledTask -TaskPath "\Microsoft\Windows\IPAM\" -TaskName "ServerDiscovery"
# 6. Attendre la découverte (2-4 heures)
Write-Host "Découverte en cours (2 à 4 heures)..." -ForegroundColor Yellow
Write-Host "Les serveurs DC/DHCP/DNS seront découverts automatiquement" -ForegroundColor White
# 7. Vérifier l'état de découverte (après attente)
Write-Host "`n=== État des serveurs découverts ===" -ForegroundColor Cyan
Get-IpamServerInventory | Format-Table ServerFqdn, ServiceType, ManageabilityStatus
# 8. Configuration de la structure réseau (post-découverte)
Add-IpamBlock -NetworkId "172.16.0.0/16" -Description "Infrastructure AFCI" -Owner "IT-AFCI"
Add-IpamSubnet -NetworkId "172.16.0.0/24" -SubnetName "Lille-Users" -Site "Lille" -Description "Utilisateurs Lille"
Add-IpamSubnet -NetworkId "172.16.1.0/24" -SubnetName "Arras-Users" -Site "Arras" -Description "Utilisateurs Arras"
Add-IpamSubnet -NetworkId "172.16.2.0/26" -SubnetName "Infra-Serveurs" -Description "Réseau Serveurs-Lille"
Add-IpamSubnet -NetworkId "172.16.2.64/26" -SubnetName "Infra-Serveurs" -Description "Réseau Serveurs-Arras"
Add-IpamSubnet -NetworkId "172.16.2.128/28" -SubnetName "Infra-Serveurs" -Description "Réseau interconnexion"
Write-Host "`nIPAM déployé avec succès!" -ForegroundColor Green
Gestion centralisée des adresses IP dans un environnement Windows
La découverte prend plusieurs heures, patientez avant configuration
Les serveurs apparaissent dans la console IPAM
Script complet : Déploiement Windows LAPS
# Script de déploiement Windows LAPS
# Domaine : afci.lab
# OU cible : OU=Ordinateurs,DC=afci,DC=lab
# =============================================
# 1. Installer le module LAPS
Get-WindowsCapability -Name RSAT*LAPS* -Online
Add-WindowsCapability -Online -Name Rsat.Laps.Tools~~~~0.0.1.0
Import-Module LAPS
Import-Module GroupPolicy
# Variables
$DomainOU = "OU=Ordinateurs,DC=afci,DC=lab"
$GPOName = "GPO-SEC-Windows-LAPS-Ordinateurs"
$LAPSRegistryKey = "HKLM\Software\Microsoft\Policies\LAPS"
$LAPSReaders = "GG_IT_Admin"
# 2. Mise à jour du schéma Active Directory (1 seule fois)
Update-LapsADSchema
# 3. Autoriser les ordinateurs à écrire leur mot de passe
Set-LapsADComputerSelfPermission -Identity $DomainOU
# 4. Délégation de lecture des mots de passe LAPS
Set-LapsADReadPasswordPermission `
-Identity $DomainOU `
-AllowedPrincipals $LAPSReaders
# 5. Création de la GPO LAPS
if (-not (Get-GPO -Name $GPOName -ErrorAction SilentlyContinue)) {
New-GPO -Name $GPOName -Comment "Gestion automatique des mots de passe admin locaux via Windows LAPS"
}
# 6. Lier la GPO à l'OU Ordinateurs
New-GPLink `
-Name $GPOName `
-Target $DomainOU `
-LinkEnabled Yes
# 7. Configuration LAPS via registre
Set-GPRegistryValue -GpoName $GPOName -Key $LAPSRegistryKey `
-ValueName "BackupDirectory" -Type DWord -Value 1
Set-GPRegistryValue -GpoName $GPOName -Key $LAPSRegistryKey `
-ValueName "PasswordAgeDays" -Type DWord -Value 30
Set-GPRegistryValue -GpoName $GPOName -Key $LAPSRegistryKey `
-ValueName "PasswordLength" -Type DWord -Value 14
Set-GPRegistryValue -GpoName $GPOName -Key $LAPSRegistryKey `
-ValueName "PasswordComplexity" -Type DWord -Value 4
Set-GPRegistryValue -GpoName $GPOName -Key $LAPSRegistryKey `
-ValueName "AdminAccountName" -Type String -Value "Administrator"
Set-GPRegistryValue -GpoName $GPOName -Key $LAPSRegistryKey `
-ValueName "EnablePasswordEncryption" -Type DWord -Value 1
Write-Host "=== Déploiement Windows LAPS terminé avec succès ===" -ForegroundColor Green
Sécurisation des mots de passe administrateur locaux
Nécessite des droits d'administrateur d'entreprise
Les mots de passe administrateur sont automatiquement gérés