Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Username aus einem Service heraus ermitteln (https://www.delphipraxis.net/24984-username-aus-einem-service-heraus-ermitteln.html)

peter-weigel 29. Jun 2004 13:07


Username aus einem Service heraus ermitteln
 
Hallo,

wenn ein Service als SYSTEM-Service läuft, kann er durch Interaktion mit dem Desktop herausbekommen, ob gerade ein Nutzer eingeloggt ist bzw. wann er sich ausloggt.

Meine Frage ist nun, wie er den Nutzernamen des momentan eingeloggten Nutzers herausbekommen kann.
Die Funktion GetUsername liefert verständlicherweise nur "SYSTEM".

Mfg

Peter

Luckie 29. Jun 2004 13:10

Re: Username aus einem Service heraus ermitteln
 
Dürfte schwer werden. Es könne ja mehrere Benutzer eingeloggt sein und unter XP gibt es ja noch diese schnelle Benutzerumschaltung. Du könntest eventuell alle eingeloggten Benutzer rausbekommen, aber nicht einen spezifischen.

Mal anders gefragt: Wozu brauchst du es und/oder was willst du machen? Eventuell gibt es noch eine andere Lösung. Interaktive Dienste sind sowieso sicherheitstechnisch bedenklich, da sie unter dem System-Konto laufen. Erstell leiber eine Anwendung, die mit dem Service kommuniziert. Diese anwendung kannst du dann immer unter dem Benutzer-Konto starten.

sakura 29. Jun 2004 13:22

Re: Username aus einem Service heraus ermitteln
 
Zitat:

Zitat von peter-weigel
wenn ein Service als SYSTEM-Service läuft, kann er durch Interaktion mit dem Desktop herausbekommen, ob gerade ein Nutzer eingeloggt ist bzw. wann er sich ausloggt.

Von interaktiven Diensten ist lt. MS und Anti.Viren-Firmen dringends abzuraten.

Hier im Forum suchenshatter Bei Google suchenShatter :shock:

...:cat:...

peter-weigel 29. Jun 2004 13:27

Re: Username aus einem Service heraus ermitteln
 
Hallo,

ich wollte einen Service schreiben, der genau protokolliert,

wann der Computer gestartet oder herunter gefahren wird,
wann sich wer an- oder abmeldet,
wann der Computer schlafengelegt (standby) oder wieder aufgeweckt (wake up) wird.

Bis auf das Ermitteln des Nutzernamens habe ich ja alles schon.
Sicherlich würde auch das Einrichten eines Run-Eintrages in LOCAL_MACHINE gehen,
das wäre aber keine schöne Lösung.

Gruß

Peter

sakura 29. Jun 2004 13:29

Re: Username aus einem Service heraus ermitteln
 
Zitat:

Zitat von peter-weigel
ich wollte einen Service schreiben, der genau protokolliert,

wann der Computer gestartet oder herunter gefahren wird,
wann sich wer an- oder abmeldet,
wann der Computer schlafengelegt (standby) oder wieder aufgeweckt (wake up) wird.

Hm, ich will Dich jetzt nicht weiter davon abhalten. Aber mal eine Frage, was ist falsch an den Einträgen die der PC eh schon in Ereignisprotokoll schreibt :gruebel:

...:cat:...

peter-weigel 29. Jun 2004 13:36

Re: Username aus einem Service heraus ermitteln
 
Hallo,

welche Einträge meinst du?

"Der Ereignisprotokolldienst wurde gestartet."

"Microsoft (R) Windows 2000 (R) 5.0 2195 Service Pack 4 Uniprocessor Free."

Sind die einzigen vom heutigen Tage.

Gruß

Peter

sakura 29. Jun 2004 13:52

Re: Username aus einem Service heraus ermitteln
 
Die Überwachung muss lokal (bzw. in der Domäne) eingestellt werden. Einfach das MMC PlugIn "gpedit.msc" (Start->Ausführen) starten und zu
Richtlinien für lokaler Computer -> Computerkonfiguration -> Windows-Einstellungen -> Sicherheitseinstellungen -> Lokale Richtlinien -> Überwachungsrichtlinien
gehen und das gewünschte einschalten :zwinker: Nach den nächsten Neustart wird alles nur erdenkliche im Systemprotokoll festgehalten.

...:cat:...

peter-weigel 29. Jun 2004 15:33

Re: Username aus einem Service heraus ermitteln
 
Hallo,

> Nach den nächsten Neustart wird alles nur erdenkliche im Systemprotokoll festgehalten.

Das ist korrekt. Allerdings ziemlich unübersichtlich.
Ich könnte damit das Login überwachen, aber wie siehts mit Logout, Shutdown, ... aus. Dazu habe ich da nichts finden können.

Im Prinzip wäre das aber ein gangbarer Weg, nicht schön aber machbar, daß ich den aktuellen Nutzer über das Ereignisprotokoll herausbekomme.
Wobei noch abzuwägen ist, ob der Weg mit einer kleinen Run-Anwendung in LOCAL_MACHINE dann vielleicht doch die bessere Alternative ist.

Gruß

Peter

Phoenix 29. Jun 2004 16:12

Re: Username aus einem Service heraus ermitteln
 
Zitat:

Zitat von peter-weigel
Im Prinzip wäre das aber ein gangbarer Weg, nicht schön aber machbar, daß ich den aktuellen Nutzer über das Ereignisprotokoll herausbekomme.

Du meinst wohl eher die angemeldeten Benutzer. Wie bereits gesagt wurde: Es kann seit XP mehrere gleichzeitig angemeldete Nutzer geben. Von denen hat zwar nur einer den Desktop (ausser bei Terminal Services (2k Server +) bzw. shared Remote Desktop, da sitzen dann zwei auf einer Sitzung), aber die Anwendungen der anderen Nutzer sind weiterhin im Hintergrund aktiv.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz