Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#30

Re: Angemeldeten Benutzer aus Dienst ermitteln

  Alt 11. Dez 2007, 22:45
Zitat von Dezipaitor:
Zitat von xZise:
Oder könnte man die Tokens der Explorer.exe herausfinden? Weil unter Windows 2000 konnte sich ja nur ein Benutzer anmelden...
CreateCompatibilityQueryUserToken macht genau das. Dieser Konstruktor darf in einem Dienst nur in Windows2000 aufgerufen werden.
Aber anscheinend tut er das nicht korrekt, oder er muss als root-Element die Explorer.exe haben, was aber sinnlos wäre (oder nicht?), weil man damit ja auch die eigenen Tokens kennt?!

Zitat von Dezipaitor:
Zitat von xZise:
PS: Läuft die Explorer.exe eigentlich auch, wenn niemand angemeldet ist?
Er schlägt natürlich fehl, wenn keiner eingeloggt ist, weil dann der Explorer.exe Prozess nicht existiert.
Du kannst erst dann das UserToken unter Win2000 bekommen, wenn ein Benutzer sich angemeldet hat und Explorer.exe existiert.
Naja, aber der Benutzer ist ja angemeldetet.

Zitat von Dezipaitor:
Für WindowsXP/2003 und neuer verwende auf jeden Fall den Konstruktor CreateWTSQueryUserToken.
Betriebssystem ist aber nicht Windows XP oder höher!

Also folgern wir daraus, dass ein installierter Dienst unter Windows 2000 mithilfe von CreateCompatibilityQueryUserToken nicht den (?) Token des angemeldeten Benutzers herausfinden kann?

Mensch ist das geil xD Gerade das Betriebssystem, welches nur einen Benutzer unterstützt, kann nicht den Benutzernamen oder Adminrechte zurückgeben?
Da sollte es doch besser funktionieren, weil es nur einen geben kann, also es nur 2 Fälle gibt: Angemeldet/Abgemeldet

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat