Erstellen Sie eine Liste von IPs mit Benutzernamen im Windows-Netzwerk

Erstellen Sie eine Liste von IPs mit Benutzernamen im Windows-Netzwerk

Wir haben kürzlich GFI WebMonitor in unserem Netzwerk eingerichtet, das mir IPs statt Benutzer zurückgibt. Ich bin gerade dabei herauszufinden, ob wir eine Authentifizierung auf dem Proxy implementieren können, um ISA oder TMG zu verwenden, damit es aufgelöst werden kann, aber im Moment brauche ich eine Möglichkeit, schnell und genau eine Liste von AD-Benutzernamen und der aktuellen entsprechenden IP-Adresse vom DHCP-Server zu generieren. Dies ist überraschenderweise schwieriger, als ich ursprünglich erwartet hatte.

Gibt es eine Möglichkeit, entweder den IP-Bereich zu scannen und eine Liste mit Benutzernamen zu erhalten oder die Active Directory-Benutzerliste zu scannen und die IP zu erhalten?

Ich habe versucht, dies mit Nmap und Powershell zu erreichen, bin aber derzeit am Ende.

Bearbeiten


Der einfachste Weg, dies zu erreichen, ist meiner Meinung nach die Verwendung eines Netzwerkzuordnungsprogramms namensNetzansicht. Es generiert eine Liste aller im AD aktiven PCs und der angemeldeten Benutzer zusammen mit einigen anderen nützlichen Informationen (Freigaben, Administratorstatus usw.).

Antwort1

Sie können ein Anmeldeskript erstellen, das über ein GPO in Ihrem Active Directory aktiviert wird, wie beschriebenHierzum Beispiel.

Das folgende Skript lässt zwar einiges zu wünschen übrig, ist aber dennoch ein guter Anfang:

$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

Antwort2

Nur eine schnelle Idee.

Dadurch erhalten Sie eine Hostnamen-IP-Beziehung. Benutzernamen zu erhalten, kann etwas aufwändiger sein.

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

Dann müssen Sie jede IP analysieren und nach angemeldeten Benutzern abfragen. Viel Glück!

verwandte Informationen