Создать список IP-адресов с именами пользователей в сети Windows

Недавно мы настроили GFI WebMonitor в нашей сети, которая возвращает мне IP-адреса вместо пользовательских. Я нахожусь в процессе определения, сможем ли мы реализовать аутентификацию на прокси-сервере, чтобы использовать ISA или TMG, чтобы разрешить его, но на данный момент мне нужен способ быстро и точно сгенерировать список имен пользователей AD и текущий соответствующий IP-адрес от сервера DHCP. Это на удивление сложнее, чем я ожидал.

Есть ли возможность сканировать диапазон IP-адресов и получать список имен пользователей или сканировать список пользователей активного каталога и получать IP-адреса?

Я дурачился с Nmap и PowerShell, чтобы сделать это, но в настоящее время я против стены.

редактировать


Самым простым способом, который я нашел для достижения этой цели, является использование утилиты сетевого отображения под названием netview. Он генерирует список всех активных компьютеров в AD и пользователей, вошедших в систему, а также другую полезную информацию (общие ресурсы, статус администратора и т. Д.).

2 ответа

Решение

Вы можете создать сценарий входа, включенный через объект групповой политики в Active Directory, как описано здесь, например.

Следующий скрипт оставляет желать лучшего, но это способ начать:

$file ="\\yourfileserver\`$hiddenshare\WhoLoggedOnWhere.log"

$logontime = (get-date -format o).split("{+}")[0] -Replace ":","."
$domain = [Environment]::userdomainname
$user = [Environment]::username
$machine = [Environment]::machinename
$servicetag = Get-WmiObject win32_SystemEnclosure | select serialnumber
$IPAddr = Get-WmiObject -query "SELECT * FROM Win32_PingStatus `
    WHERE Address='$MyMachineName'" | 
    select IPv4Address
$OS = Gwmi Win32_OperatingSystem
$OSver = $OS.Caption

$result = "$logontime;$domain\$user;$user;$machine;$IPAddr;$OSver;$servicetag"
$result | out-file $file -append

Просто быстрая идея.

Это даст вам имя хоста для отношения IP. Чтобы получить имена пользователей, я могу быть немного более вовлеченным.

 For /f in (listofIPs.bat) do (
 Netsh DHCP \\<yourDHCPServername> scope <your dynamic scope> show client 1 | finstr "%%a"
 )

Затем вам нужно проанализировать и запросить каждый IP-адрес для зарегистрированных пользователей. Удачи!

Другие вопросы по тегам