Se você não quer sniffing de pacotes, eu recomendaria um script powershell em todos os computadores testando uma conexão ldap segura e registrando quem falha. Você poderia se conectar remotamente aos clientes do Controlador de Domínio ou criar um script do lado do cliente que registrasse falhas em um servidor de arquivos.
A ideia do script é simular uma conexão ldap segura. Ele usa a estrutura .net que vem originalmente no windows 7 sp1 ou superior.
Caso você queira executar remotamente a partir do DC, o script será semelhante a este (requer permissão para o powershell remoto que pode ser obtido seguindo este artigo link ):
Import-Module ActiveDirectory
$domain = "contoso.com"
$user = "Administrator"
$password = "P@ssw0rd"
$IPFilter = "192.168.1.*"
$scriptblock = {
write-host "$(hostname) - " -NoNewLine
try {
$LDAPS = New-Object adsi ("LDAP://$($args[0]):636",$args[1],$args[2],'SecureSocketsLayer')
Write-Host "Secure LDAP Connection succeeded."
} Catch {
Write-Host "Secure LDAP Connection failed." -foregroundcolor red
}
}
$Computers = Get-ADComputer -filter * -Properties IPv4Address | Where{ $_.IPv4Address -like $IPFilter}
foreach($Computer in $Computers)
{
try {
$session = New-PSSession $Computer.Name -ErrorAction Stop
Invoke-Command -Session $session -ScriptBlock $scriptblock -ArgumentList $domain,$user,$password
}catch{
Write-Host "Connection to $($Computer.Name) failed." -foregroundcolor red
}
}
Ou se você quiser um script local que faça login em um servidor remoto:
$domain = "contoso.com"
$user = "Administrator"
$password = "P@ssw0rd"
$LogFile = "\fileserver\logs\ldapconnection.log"
try {
$LDAPS = New-Object adsi ("LDAP://$domain:636",$user,$password,'SecureSocketsLayer')
"$(hostname) - Secure LDAP Connection succeeded." | Out-File $LogFile -Append
} Catch {
"$(hostname) - Secure LDAP Connection failed." | Out-File $LogFile -Append
}
Saída de uma execução de versão remota (os vermelhos são clientes off-line):