AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Angemeldeten Benutzer aus Dienst ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Angemeldeten Benutzer aus Dienst ermitteln

Ein Thema von xZise · begonnen am 28. Nov 2007 · letzter Beitrag vom 31. Mär 2009
Antwort Antwort
Seite 3 von 5     123 45      
Benutzerbild von xZise
xZise

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

Re: Angemeldeter Benutzer aus Dienst ermitteln

  Alt 10. Dez 2007, 10:53
Okay
Aber er kompliert nur JwaWindows und JwaVista.
Aber ich benötige wegen den Tokens andere dcus.

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

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#22

Re: Angemeldeter Benutzer aus Dienst ermitteln

  Alt 10. Dez 2007, 13:56
Zitat von xZise:
Okay
Aber er kompliert nur JwaWindows und JwaVista.
Aber ich benötige wegen den Tokens andere dcus.

MfG
xZise
Die JWSCL verwendet die JEDI API für die API Aufrufe.
Um z.b. Token nutzen zu können verwendest du die Unit JwsclToken, die in "...\jedi-api-lib\jwscl\trunk\source" liegt.

Diesen Pfad kannst du auch in den globalen Suchpfad von Delphi eintragen. Im Gegensatz zur JWA verwendet die JWSCL keine
Pakete, da es sich hier nicht lohnt DCU Dateien zu verwenden. Sie wird einfach zu oft aktualisiert.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

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

Re: Angemeldeter Benutzer aus Dienst ermitteln

  Alt 11. Dez 2007, 07:59
Hmmm....

Er gibt eine Fehlermeldung aus, dass der Explorer.exe Prozess nicht gefunden wurde.
Natürlich gibt es den nicht als Starter des Dienstes, aber wenn ich das Aufrufe gibt es eine Explorer.exe

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
11. Dez 2007, 08:07
Dieses Thema wurde von "SirThornberry" von "Object-Pascal / Delphi-Language" nach "Windows API / MS.NET Framework API" verschoben.
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#25

Re: Angemeldeten Benutzer aus Dienst ermitteln

  Alt 11. Dez 2007, 17:02
Ich verstehe nicht, warum das ein Problem der JWSCL sein soll?!
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

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

Re: Angemeldeten Benutzer aus Dienst ermitteln

  Alt 11. Dez 2007, 17:21
Naja? Wenn ich das Token "lade", bekomme ich den Fehler dass keine Explorer.exe gestartet ist?
Allerdings ist dem nicht so ...
Also weiß ich nicht, warum die JWSCL einen Fehler wirft und deshalb kein Ergebnis liefert.

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

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#27

Re: Angemeldeten Benutzer aus Dienst ermitteln

  Alt 11. Dez 2007, 17:31
Axo jetzt verstehe ich. Du verwendest CreateCompatibilityQueryUserToken .

Natürlich gibt es kein Explorer.exe, wenn kein Benutzer eingeloggt ist, oder dein Dienst sich nicht in der Session eines angemeldeten Benutzers liegt.

Du kannst es natürlich mit try/except abfangen. Viele Methoden werfen Exceptions.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

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

Re: Angemeldeten Benutzer aus Dienst ermitteln

  Alt 11. Dez 2007, 17:50
Zitat von Dezipaitor:
Axo jetzt verstehe ich. Du verwendest CreateCompatibilityQueryUserToken .

Natürlich gibt es kein Explorer.exe, wenn kein Benutzer eingeloggt ist, oder dein Dienst sich nicht in der Session eines angemeldeten Benutzers liegt.
Das ist ja so ne besonderheit des Dienstes, dass er normalerweise immer läuft xD

Zitat von Dezipaitor:
Du kannst es natürlich mit try/except abfangen. Viele Methoden werfen Exceptions.
Naja, aber wenn ich Dienst über /install installiere nützt mir dann diese Funktion ja wenig.
Oder könnte man die Tokens der Explorer.exe herausfinden? Weil unter Windows 2000 konnte sich ja nur ein Benutzer anmelden...

MfG
xZise

PS: Läuft die Explorer.exe eigentlich auch, wenn niemand angemeldet ist?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#29

Re: Angemeldeten Benutzer aus Dienst ermitteln

  Alt 11. Dez 2007, 19:08
Zitat von xZise:
Naja, aber wenn ich Dienst über /install installiere nützt mir dann diese Funktion ja wenig.
Installieren und Starten ist ein Unterschied.

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.
Zitat von xZise:
PS: Läuft die Explorer.exe eigentlich auch, wenn niemand angemeldet ist?
[/quote]
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.

Für WindowsXP/2003 und neuer verwende auf jeden Fall den Konstruktor CreateWTSQueryUserToken.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
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
Antwort Antwort
Seite 3 von 5     123 45      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz