# crea_comptes_peda_v2.ps1
# A lancer en tant qu'administrateur sur chaque PC
# Vérifie qu'on est bien en admin
$principal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
if (-not $principal.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)) {
Write-Error "Merci de lancer ce script en tant qu'administrateur."
exit 1
}
Write-Host "=== Création / vérification des comptes eleve et prof ===`n"
$elevePassword = "eleve"
$profPassword = "prof"
function Ensure-LocalUser {
param(
[string]$UserName,
[string]$Password,
[string]$FullName
)
if (-not (Get-LocalUser -Name $UserName -ErrorAction SilentlyContinue)) {
Write-Host "Création du compte $UserName ..."
net user $UserName $Password /add /y /fullname:"$FullName" /passwordchg:no /passwordreq:yes | Out-Null
net localgroup "Users" $UserName /add | Out-Null
}
else {
Write-Host "Le compte $UserName existe déjà, je ne le recrée pas."
}
}
# Création des comptes eleve / prof
Ensure-LocalUser -UserName "eleve" -Password $elevePassword -FullName "Compte eleve"
Ensure-LocalUser -UserName "prof" -Password $profPassword -FullName "Compte prof"
Write-Host "`n=== Blocage des outils système pour eleve et prof ===`n"
function Deny-ToolsForUser {
param(
[string]$UserName
)
$targets = @(
"$env:WINDIR\System32\cmd.exe",
"$env:WINDIR\System32\WindowsPowerShell\v1.0\powershell.exe",
"$env:WINDIR\System32\WindowsPowerShell\v1.0\powershell_ise.exe",
"$env:WINDIR\System32\control.exe",
"$env:WINDIR\regedit.exe",
"$env:WINDIR\System32\mmc.exe",
"$env:WINDIR\System32\taskmgr.exe",
"$env:WINDIR\ImmersiveControlPanel\SystemSettings.exe" # Paramètres Windows
)
foreach ($t in $targets) {
if (Test-Path $t) {
Write-Host "Blocage de $t pour l'utilisateur $UserName"
icacls "$t" /deny "$UserName:(RX)" > $null 2>&1
}
}
}
Deny-ToolsForUser -UserName "eleve"
Deny-ToolsForUser -UserName "prof"
Write-Host "`nTerminé."
Write-Host "Les comptes 'eleve' et 'prof' ne peuvent plus lancer CMD, PowerShell, Panneau de config, Paramètres, Regedit, MMC, Gestionnaire des tâches, etc."
Write-Host "Ton compte admin / mini n'est pas touché."