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/
44 lines
1.8 KiB
PowerShell
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
|