在 Windows 网络上生成带有用户名的 IP 列表

在 Windows 网络上生成带有用户名的 IP 列表

我们最近在网络上设置了 GFI WebMonitor,它返回的是 IP 而不是用户。我正在确定我们是否能够在代理上实施身份验证以使用 ISA 或 TMG 来解析它,但目前我需要一种方法来快速准确地从 DHCP 服务器生成 AD 用户名和当前对应的 IP 地址的列表。这比我最初预想的要困难得多。

有没有办法扫描 IP 范围并获取用户名列表或扫描活动目录用户列表并获取 IP?

我一直在使用 nmap 和 powershell 来做到这一点,但目前遇到了瓶颈。

编辑


我发现实现此目的的最简单方法是使用名为的网络映射实用程序网络视图。它会生成 AD 上所有活动 PC 和登录用户的列表以及一些其他有用信息(共享、管理员状态等)。

答案1

您可以按照以下说明创建通过 Active Directory 中的 GPO 启用的登录脚本这里例如。

下面的脚本虽然有很多不足之处,但是可以作为一个开始:

$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

答案2

这只是一个简单的想法。

这将为您提供主机名与 IP 的关系。要获取用户名,可能需要更复杂一些。

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

然后您需要解析并查询每个 IP 以查找已登录的用户。祝您好运!

相关内容