Situatie
Conturile de utilizatori sau computere care au rămas active în Active Directory, deși angajații au plecat sau PC-urile au fost casate, reprezintă o breșă majoră de securitate. În loc să le cauți manual, acest script le identifică și generează un raport clar.
Solutie
Scriptul PowerShell (Find-InactiveAccounts.ps1)
# — CONFIGURARE —
$zileInactivitate = 90
# ——————-
# Importă modulul de Active Directory
Import-Module ActiveDirectory
$dataLimita = (Get-Date).AddDays(-$zileInactivitate)
Write-Host “Se caută utilizatorii inactivi de mai mult de $zileInactivitate zile…” -ForegroundColor Cyan
# Preluăm utilizatorii inactivi care sunt încă activați (Enabled)
$useriInactivi = Get-ADUser -Filter {Enabled -eq $true} -Properties LastLogonDate, Description |
Where-Object { $_.LastLogonDate -lt $dataLimita -and $_.LastLogonDate -ne $null } |
Select-Object Name, SamAccountName, LastLogonDate, Description
if ($useriInactivi) {
Write-Host “⚠️ S-au găsit $($useriInactivi.Count) conturi de utilizator inactive:” -ForegroundColor Yellow
$useriInactivi | Format-Table -AutoSize
# OPȚIONAL: Pentru a le dezactiva automat, decomentează linia de mai jos:
# $useriInactivi | ForEach-Object { Disable-ADAccount -Identity $_.SamAccountName; Write-Host “Dezactivat: $($_.Name)” -ForegroundColor Red }
} else {
Write-Host “✅ Nu s-au găsit conturi de utilizator inactive.” -ForegroundColor Green
}
Ce trebuie să modifici în script?
$zileInactivitate = 90 -> Standardul din industrie pentru conturi “stale” este de 90 de zile, dar poți schimba valoarea în 30 sau 180 în funcție de politica companiei.
Dezactivarea automată: Din fabrică, scriptul doar afișează conturile (Safe Mode). Dacă vrei ca scriptul să le și dezactiveze automat la rulare, șterge caracterul # din fața ultimei linii de cod.
Leave A Comment?