Lab_AD_Complet/scripts/check-prereqs.ps1
Corentin 8e1b06e090 Initial lab release: Docker-based Active Directory lab
Complete Active Directory teaching environment based on dockurr/windows:
- Windows Server domain controller, Windows 11 client, Debian 12 client
- docker-compose orchestration, env-driven configuration
- Bilingual documentation (FR + EN) for students
- Dual approach (GUI + PowerShell) in every procedure
- Instructor course plan and reference scripts
- RDP launcher scripts for Linux, macOS and Windows

Made by AcadéNice - https://acadenice.fr/
2026-04-17 11:29:49 +02:00

44 lines
1.8 KiB
PowerShell

# Vérifie les prérequis locaux avant de lancer le lab (Windows).
# Fait par AcadéNice - https://acadenice.fr/
$ErrorActionPreference = "Continue"
$fail = 0
function OK ($m) { Write-Host "[ OK ] $m" }
function KO ($m) { Write-Host "[FAIL] $m"; $script:fail = 1 }
function WARN ($m) { Write-Host "[WARN] $m" }
Write-Host "Vérification des prérequis"
Write-Host ""
try { $v = docker --version; OK "docker : $v" } catch { KO "docker absent" }
try { docker compose version | Out-Null; OK "docker compose v2 présent" } catch { KO "docker compose v2 absent" }
try { docker info | Out-Null; OK "daemon docker joignable" } catch { KO "daemon docker inaccessible" }
try { wsl --version | Out-Null; OK "WSL2 présent" } catch { WARN "WSL2 non détecté" }
$wslConfig = "$env:USERPROFILE\.wslconfig"
if (Test-Path $wslConfig) {
if ((Get-Content $wslConfig -Raw) -match "nestedVirtualization\s*=\s*true") {
OK ".wslconfig : virtualisation imbriquée activée"
} else {
WARN ".wslconfig : ajouter 'nestedVirtualization=true' sous [wsl2]"
}
} else {
WARN "$wslConfig absent - créez-le avec [wsl2] / nestedVirtualization=true"
}
$ram = [math]::Round((Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory / 1GB)
if ($ram -ge 16) { OK "RAM $ram Go" }
elseif ($ram -ge 12) { WARN "RAM $ram Go (minimum)" }
else { KO "RAM $ram Go insuffisante" }
$freeGB = [math]::Round((Get-Item $PSScriptRoot).PSDrive.Free / 1GB)
if ($freeGB -ge 150) { OK "Disque libre $freeGB Go" }
elseif ($freeGB -ge 80) { WARN "Disque libre $freeGB Go (juste le minimum)" }
else { KO "Disque libre $freeGB Go insuffisant" }
Write-Host ""
if ($fail -eq 0) { Write-Host "Prérequis critiques : OK." ; exit 0 }
Write-Host "Prérequis manquants. Voir docs\etudiant\fr\00-prerequis.md"
exit 1