Unlock-ADUserAccount — odblokowanie konta AD
🏢 Active Directory POWERSHELLOdblokowuje zablokowane konto AD i opcjonalnie wymusza reset hasła przy następnym logowaniu
Opis
Skrypt do obsługi zablokowanych kont użytkowników — helpdesk II linii. Funkcje: - Sprawdza aktualny status blokady i liczbę złych prób - Odblokowuje konto (Unlock-ADAccount) - Opcjonalnie: -ResetPassword — wymusza zmianę hasła przy logowaniu - Wyświetla stan konta przed i po operacji - Ostrzega jeśli konto jest wyłączone Użycie: .\Unlock-ADUserAccount.ps1 -Identity jkowalski [-ResetPassword]
🕒 2026-04-13
📦 Źródło: own
skrypt.ps1
#Requires -Modules ActiveDirectory
<#
.SYNOPSIS
Odblokowuje konto AD i opcjonalnie resetuje hasło użytkownika.
.DESCRIPTION
Sprawdza status blokady, odblokowuje konto i opcjonalnie wymusza reset hasła
przy następnym logowaniu. Wyświetla historię złych prób logowania.
.PARAMETER Identity
SamAccountName użytkownika.
.PARAMETER ResetPassword
Przełącznik — jeśli podany, wymusza zmianę hasła przy następnym logowaniu.
.EXAMPLE
.\Unlock-ADUserAccount.ps1 -Identity jkowalski
.\Unlock-ADUserAccount.ps1 -Identity jkowalski -ResetPassword
#>
param(
[Parameter(Mandatory)]
[string]$Identity,
[switch]$ResetPassword
)
Import-Module ActiveDirectory -ErrorAction Stop
$user = Get-ADUser -Identity $Identity -Properties LockedOut, BadLogonCount, BadPasswordTime, LastBadPasswordAttempt, Enabled, PasswordExpired -ErrorAction Stop
Write-Host "`nUżytkownik: $($user.DisplayName) [$($user.SamAccountName)]" -ForegroundColor Cyan
Write-Host " Konto aktywne : $($user.Enabled)"
Write-Host " Zablokowane : $($user.LockedOut)"
Write-Host " Złe próby : $($user.BadLogonCount)"
Write-Host " Ostatnia zła : $($user.LastBadPasswordAttempt)"
Write-Host " Hasło wygasłe : $($user.PasswordExpired)"
if (-not $user.Enabled) {
Write-Warning "Konto jest WYŁĄCZONE — odblokowanie nie przywróci dostępu."
}
if ($user.LockedOut) {
Unlock-ADAccount -Identity $Identity
Write-Host "`n[OK] Konto odblokowane." -ForegroundColor Green
} else {
Write-Host "`n[INFO] Konto nie było zablokowane." -ForegroundColor Yellow
}
if ($ResetPassword) {
Set-ADUser -Identity $Identity -ChangePasswordAtLogon $true
Write-Host "[OK] Ustawiono wymaganie zmiany hasła przy następnym logowaniu." -ForegroundColor Green
}
# Potwierdzenie stanu po operacji
$updated = Get-ADUser -Identity $Identity -Properties LockedOut, BadLogonCount
Write-Host "`nStan po operacji:"
Write-Host " Zablokowane : $($updated.LockedOut)"
Write-Host " Złe próby : $($updated.BadLogonCount)"