So finden Sie den Computernamen, bei dem sich ein Benutzer angemeldet hat

9

Gibt es ein Tool, ein Skript oder eine andere Methode, um festzustellen, bei welchem ​​Computernamen ein bestimmter Benutzer gerade angemeldet ist? Oder war sogar angemeldet?

Angenommen, der Benutzer "HRDrone" arbeitet an seinem Computer mit dem Hostnamen "HRStation01".

Ich sitze an meinem Sysadmin-Schreibtisch und weiß nur, dass der Benutzername "HRDrone" ist. Wie kann ich herausfinden, dass er bei "HRStation01" angemeldet ist, ohne den Benutzer zu fragen? AD-Ereignisanzeige? etwas?

Vielen Dank!

V. Romanov
quelle
Nun, ich habe keine Möglichkeit gefunden, dies mit generischen Fenstern oder AD-Tools zu tun, aber es stellte sich heraus, dass unser AV-System (SEP 11) die erforderlichen Informationen speichert, sodass ich es mit einem VB-Skript gelöst habe, das die Antiviren-Datenbank abfragt. Ich denke, eine ähnliche Lösung mit einem anderen System wie SMS / SCOM könnte verwendet werden.
V. Romanov
social.technet.microsoft.com/wiki/contents/articles/… hier ist eine alternative Möglichkeit, dies mit einem gpo
mike zu erreichen, das am

Antworten:

8

Es gibt ein großartiges Sysinternals-Dienstprogramm, das genau dies für Sie erledigt - PsLoggedOn

Sam Cogan
quelle
Wenn twig psloggedon das Netzwerk nicht nach einem bestimmten Benutzer durchsuchen konnte, habe ich es nur verwendet, um herauszufinden, wer sich auf einem bestimmten Computer befindet. Vielen Dank!
JamesOff
Habe es ausprobiert. Es scheint interessant, aber für den täglichen Gebrauch unpraktisch zu sein, da das Scannen aller Computer in der Domäne buchstäblich Stunden dauert und auf Computern abstürzt, die nicht verbunden sind, und so weiter. Ich suche etwas mehr im Sinne eines Ereignisprotokoll-Scans. Wir haben etwas Ähnliches in unserem Antivirensystem, in dem jeder Computername und der zuletzt angemeldete Benutzer protokolliert werden. Ich benutze das manchmal, aber ich frage mich, ob Windows etwas "Eingeboreneres" hat.
V. Romanov
5

Ein billiger Trick, den ich häufig verwende, besteht darin, die unter "Freigegebene Ordner" in der Konsole "Computerverwaltung" aufgeführten "Sitzungen" zu betrachten, die auf einen Dateiservercomputer abzielen, auf dem dem betreffenden Benutzer ein "Laufwerk" "zugeordnet" ist.

Evan Anderson
quelle
1

Wie wäre es mit diesen in Bat-Datei als Benutzer-Anmeldeskript Führen Sie es aus und Sie werden den Spaß sehen

mkdir %username% 
pushd %username% 
net config workstation > %computername%.txt

ODER wenn Sie im Detail benötigen

mkdir %username% 
pushd %username% 
@echo off
echo
echo I am logged on as %UserName%. >> %username%\%computername%.txt
echo My computer's name is %ComputerName%. >> %computername%.txt
echo %Date% >> %computername%.txt
echo %Time% >> %computername%.txt
echo My IP settings are >> %computername%.txt
ipconfig | find "." | find /i /v "suffix" >> %computername%.txt
getmac >> %computername%.txt
echo\

Sie können mich kontaktieren, um weitere Skripte zu erhalten, wenn Sie sie benötigen. Das ist auch für mich ein gutes Lernen

Asim Khan
quelle
0

Ich bin nicht sicher, ob etwas live ist, aber das Sicherheitsereignisprotokoll zeichnet Anmeldungen von Benutzern auf. Durch den Zugriff auf das Ereignisprotokoll auf den Domänencontrollern sollten Sie diese Informationen erhalten. Vorausgesetzt, dass Informationen gesammelt werden. Ich denke, das ist eine Richtlinieneinstellung.

Diese Seite von Microsoft beschreibt eine sehr langsame und komplizierte Methode zum Abfragen der Ereignisprotokolle: http://technet.microsoft.com/en-us/library/ee176699.aspx

Ich bin mir ziemlich sicher, dass dies Ihnen nicht helfen wird, aber es könnte als Audit funktionieren. Dh wer war eingeloggt, als das schlimme Zeug passierte!

Seanchán Torpéist
quelle
0

Ich musste dieses Problem lösen, um in meinem gesamten Unternehmen Remote-Support zu leisten. Dinge wie PsLoggedOn und Tools zum Scannen der Sicherheitsprotokolle des Domänencontrollers erwiesen sich für meine Zwecke als viel zu langsam (den Hostnamen für die Remoteunterstützung von Benutzern zu erhalten). Folgendes habe ich mir ausgedacht:

  • Allen Benutzern ist ein Laufwerk X: in AD im Ordner "Profil - Startseite" zugeordnet
  • Jedem ist das folgende Skript unter Profil - Anmeldeskript zugewiesen

Dieses Skript zeichnet auf, an welchem ​​Computer sie sich in ihrem Basisordner angemeldet haben. Sie werden speziell nicht aufgezeichnet, wenn sie sich bei unserem Terminalserver anmelden, da mir solche Einträge egal sind.

'===============================================================
' Record the logon in their X: drive UNLESS they are on TERM-SERVER!
'===============================================================
If strComputerName <> "TERM-SRVER" Then
    strFile = "X:\login.txt"
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTextFile = objFSO.OpenTextFile(strFile, 8, True)
    objTextFile.WriteLine(strIP + " - " + strComputerName + " - " + CStr(Date) + " " +     CStr(Time))
    objTextFile.Close
    ' Make it hidden
    Set objTextFile = objFSO.GetFile(strFile)
    objTextFile.Attributes = 2
End If

Dann verwende ich ein bisschen VBscript auf meinem lokalen Computer, um das Ausgangsverzeichnis in AD automatisch zu finden, die Protokolldatei zu öffnen und die letzten Zeilen auszudrucken.

Gewähren
quelle
0

Als Systemadministrator können Sie eine Routine in Ihr Anmeldeskript einbetten, um eine zu speichern. txtDatei mit dem Benutzernamen und dem Hostnamen oder verwenden Sie SQLite.

Richard van den Berg
quelle