Windows ネットワーク上のユーザー名を持つ IP のリストを生成する

Windows ネットワーク上のユーザー名を持つ IP のリストを生成する

最近、ネットワークに GFI WebMonitor をセットアップしましたが、ユーザーではなく IP が返されます。プロキシで認証を実装して ISA または TMG を使用して解決できるかどうかを検討中ですが、現時点では、AD ユーザー名のリストと現在の対応する IP アドレスを DHCP サーバーから迅速かつ正確に生成する方法が必要です。これは、当初予想していたよりも驚くほど困難です。

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 を解析してクエリする必要があります。頑張ってください!

関連情報