Jednym z największych wyzwań stojących przed administratorami IT jest śledzenie przyczyn blokowania konta. Informację tę można zawsze zdobyć za pomocą Windows PowerShell, ale jest to proces skomplikowany. Ewentualnie można użyć kompletnego narzędzia do inspekcji AD, takiego jak ADAudit Plus.
W poniższym artykule porównano sposób śledzenia przyczyny zablokowania konta za pomocą Windows PowerShell oraz ADAudit Plus:
#requires -Module ActiveDirectory
#Import-Module ActiveDirectory -EA Stop
Function Get-AccountLockoutStatus {
[CmdletBinding()]
param(
[Parameter(
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true,
Position=0)]
[string[]]
$ComputerName = (Get-ADDomainController -Filter * | select -ExpandProperty Name),
[Parameter()]
[string]
$Username,
[Parameter()]
[int]
$DaysFromToday = 3
)
BEGIN {
$Object = @()
}
PROCESS {
Foreach ($Computer in $ComputerName) {
try {
$EventID = Get-WinEvent -ComputerName $Computer -FilterHashtable @{Logname = 'Security'; ID = 4740; StartTime = (Get-Date).AddDays(-$DaysFromToday)} -EA 0
Foreach ($Event in $EventID) {
$Properties = @{Computername = $Computer
Time = $Event.TimeCreated
Username = $Event.Properties.value[0]
CallerComputer = $Event.Properties.value[1]
}
$Object += New-Object -TypeName PSObject -Property $Properties | Select ComputerName, Username, Time, CallerComputer
}
} catch {
$ErrorMessage = $Computer + " Error: " + $_.Exception.Message
} finally {
if ($Username) {
Write-Output $Object | Where-Object {$_.Username -eq $Username}
} else {
Write-Output $Object
}
$Object = $null
}
}
}
END {}
}
Poniżej przedstawiono ograniczenia dotyczące stosowania PowerShell w celu śledzenia przyczyny blokady konta:
Z kolei ADAudit Plus szybko zeskanuje wszystkie kontrolery domeny w domenie, aby pobrać informacje o możliwej przyczynie blokady konta w formie intuicyjnego raportu. Administratorzy IT mogą wykorzystywać tę informację w celu zbadania i rozwiązania problemu.