Powershell: Mikor volt utoljára visszaállítva a helyi rendszergazdai fiók jelszava?
Legutóbbi bejegyzésemben (itt található) arról írtam, hogyan lehet meghatározni a helyi rendszergazdai fiók fióknevét egy számítógépen. Most, hogy ismerjük a fiók nevét, mikor változott utoljára a jelszó a fiókban?
A számítógépeken (klienseken vagy szervereken) lévő helyi fiókok kezelése gondot okozhat, és egy dolog, ami egy kicsit egyszerűbbé teszi az auditálást, az, hogy megtudjuk, milyen régi a helyi felhasználó jelszava a számítógépen. A Get-SWLocalAdmin függvény a legutóbbi bejegyzésemben egy UserPrincipal típusú objektumot ad vissza, amely sok érdekes tulajdonsággal rendelkezik, például a LastPasswordSet, amely egy DateTime objektumot ad vissza, amely megmondja, mikor volt utoljára beállítva a jelszó.
Ha már tudjuk a lekérdezni kívánt fiók nevét, vagy ha a beépített rendszergazdai fióktól eltérő fiókot szeretnénk lekérdezni, használhatjuk az alábbi Get-SWLocalPasswordLastSet függvényt, amely egy DateTime objektumot ad vissza.
function Get-SWLocalPasswordLastSet {
[CmdletBinding()]
param (
[Parameter(Mandatory=$true)]
[String]$UserName,
[Parameter(Mandatory=$true)]
[String]$ComputerName
)
Try {
Add-Type -AssemblyName System.DirectoryServices.AccountManagement
$PrincipalContext = New-Object System.DirectoryServices.AccountManagement.PrincipalContext([System.DirectoryServices.AccountManagement.ContextType]::Machine, $ComputerName)
$User = [System.DirectoryServices.AccountManagement.UserPrincipal]::FindByIdentity($PrincipalContext, $UserName)
$User.LastPasswordSet
}
Catch {
Write-Warning -Message "$($_.Exception.Message)"
}
}A UserPrincipal objektum számos egyéb érdekes tulajdonsággal is rendelkezik, mint például az Enabled, BadLogonCount és LastLogon, valamint néhány figyelemre méltó metódus, például a Delete, ExpirePasswordNow, GetGroups, ChangePassword és SetPassword.
Ha többet szeretne megtudni a UserPrincipal osztályról, kérjük, tekintse meg az MSDN-t a következő címen: http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.userprincipal(v=vs.110).aspx
Legközelebb közelebbről megvizsgáljuk, hogyan állíthatjuk vissza a jelszót egy helyi fiókban, és hogyan ellenőrizhetjük, hogy a jelszó be van-e állítva (vagy csak azt, hogy a jelszó megfelel-e az elvártnak).