Logo Pastebin.fr
Pastebin

Retrouvez, créez et partagez vos snippets en temps réel.

Jjez

# crea_comptes_peda.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"

# Mots de passe
$elevePassword = "eleve"
$profPassword  = "prof"

# Crée un compte local si absent
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
        # Ajout dans le groupe Users (standard)
        net localgroup "Users" $UserName /add | Out-Null
    }
    else {
        Write-Host "Le compte $UserName existe déjà, je ne le recrée pas."
    }
}

# 1) Création des comptes
Ensure-LocalUser -UserName "eleve" -Password $elevePassword -FullName "Compte eleve"
Ensure-LocalUser -UserName "prof"  -Password $profPassword  -FullName "Compte prof"

Write-Host "`n=== Application des restrictions (si profils déjà créés) ===`n"

function Lockdown-UserProfile {
    param(
        [string]$ProfilePath,
        [string]$HiveName
    )

    $ntuserPath = Join-Path $ProfilePath "NTUSER.DAT"
    if (-not (Test-Path $ntuserPath)) {
        Write-Host "Profil $ProfilePath non prêt (pas encore de NTUSER.DAT). Connecte-toi une fois avec ce compte puis relance le script."
        return
    }

    Write-Host "Chargement de la ruche du profil: $ProfilePath"
    # Charge la ruche dans HKU\<HiveName>
    reg load "HKU\$HiveName" "$ntuserPath" > $null 2>&1

    try {
        # Dossiers policies
        $explorerKey = "Registry::HKU\$HiveName\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"
        $systemKey   = "Registry::HKU\$HiveName\Software\Microsoft\Windows\CurrentVersion\Policies\System"
        $sysPolKey   = "Registry::HKU\$HiveName\Software\Policies\Microsoft\Windows\System"

        New-Item -Path $explorerKey -Force | Out-Null
        New-Item -Path $systemKey   -Force | Out-Null
        New-Item -Path $sysPolKey   -Force | Out-Null

        # Interdit Panneau de configuration
        New-ItemProperty -Path $explorerKey -Name "NoControlPanel" -PropertyType DWord -Value 1 -Force | Out-Null
        # Cache la commande Exécuter, certains menus
        New-ItemProperty -Path $explorerKey -Name "NoRun" -PropertyType DWord -Value 1 -Force | Out-Null
        New-ItemProperty -Path $explorerKey -Name "NoViewContextMenu" -PropertyType DWord -Value 1 -Force | Out-Null
        New-ItemProperty -Path $explorerKey -Name "NoFileMenu" -PropertyType DWord -Value 1 -Force | Out-Null
        New-ItemProperty -Path $explorerKey -Name "NoChangeStartMenu" -PropertyType DWord -Value 1 -Force | Out-Null

        # Interdit le gestionnaire des tâches
        New-ItemProperty -Path $systemKey -Name "DisableTaskMgr" -PropertyType DWord -Value 1 -Force | Out-Null

        # Interdit CMD (disable complet)
        # 0 = autorisé, 1 = interdit mais les scripts fonctionnent, 2 = tout interdit
        New-ItemProperty -Path $sysPolKey -Name "DisableCMD" -PropertyType DWord -Value 2 -Force | Out-Null

        Write-Host "Restrictions appliquées sur le profil: $ProfilePath"
    }
    finally {
        # Décharge la ruche
        reg unload "HKU\$HiveName" > $null 2>&1
    }
}

# 2) Application des restrictions sur eleve et prof si leur profil existe

$eleveProfile = "C:\Users\eleve"
$profProfile  = "C:\Users\prof"

if (Test-Path $eleveProfile) {
    Lockdown-UserProfile -ProfilePath $eleveProfile -HiveName "EleveHive"
} else {
    Write-Host "Le dossier $eleveProfile n'existe pas encore. Connecte-toi une fois avec le compte 'eleve', puis relance le script."
}

if (Test-Path $profProfile) {
    Lockdown-UserProfile -ProfilePath $profProfile -HiveName "ProfHive"
} else {
    Write-Host "Le dossier $profProfile n'existe pas encore. Connecte-toi une fois avec le compte 'prof', puis relance le script."
}

Write-Host "`nTerminé."
Write-Host "Rappel :"
Write-Host "1) Lancer ce script en admin -> crée les comptes."
Write-Host "2) Se connecter une fois avec 'eleve' et 'prof' (pour créer leurs profils)."
Write-Host "3) Relancer ce script en admin -> applique les blocages (CMD, Panneau de config, etc.)."

Créé il y a 2 mois.

Rechercher un Pastebin

Aucun paste trouvé.