Jak sprawdzić datę zmiany hasła użytkownika w ActiveDirectory za pomocą PowerShell


 

Czasem zdarza się, że administrator musi odpowiadać na dziwne pytania swoich użytkowników. Jednym z nich jest „kiedy muszę zmienić swoje hasło?”
Przecież nie od dziś wiadomo, że użytkownik może czegoś nie wiedzieć, natomiast geek IT musi wiedzieć wszystko.
Jeśli korzystamy w sieci z usługi ActiveDirectory z pomocą przychodzi nam PowerShell.
A odpowiedź na pytanie użytkownika załatwia następujący skrypt:

$userDN = dsquery user -samid $args[0]
$userLDAP = ([ADSI]("LDAP://"+ $userDN.Substring(1,($userDN.Length -2))))
$lastPWD = $userLDAP.InvokeGet("PasswordLastChanged")
$current = Get-Date
$daysfromchange = [int](((Get-Date) - [datetime]$lastPWD).Totaldays)
#poniżej musimy zmienić 90 na inną liczbę odpowiadającą
#za okres ważności hasła
$daystochange = 90 - $daysfromchange
Write-Host "User: " $args[0]
Write-Host "LastPasswordChange: " $lastPWD
Write-Host "CurrentDate: " $current
Write-Host "DaysFromChange: " $daysfromchange
Write-Host "DaysToChange: " $daystochange

Zapisujemy skrypt jako np. lastPWD.ps1.

Użycie skryptu:

PS C:\> ./lastPWD.ps1 login_użytkownika

Tutaj znajdziecie poradę, jak znaleźć użytkowników ze starymi hasłami w Windows, a tutaj jak to hasło zmienić.

 


Podobne Tematy: