Benutzernamen mit einem Dienst auslesen



  • Hallo,

    ich habe folgendes Problem: Ich möchte mit einem Dienst den aktuell angemeldeten Benutzer auslesen.

    Habe schon folgendes ohne Erfolg probiert:

    getenv("username"); - Hier ist der Benutername aber Lerr :-((
    GetUserName - Hier erhalte ich immer SYSTEM :-(((

    Habt ihr noch ein paar Ideen für mich?

    Danke und Gruß

    Tobias



  • Welchen Benutzer? von den vielen?
    Console-Session? Remote-Session?
    Unter NT/XP kann es ganz viele angemeldete Benutzer geben... unter XP können sich sogar beliebig viele Benutzer den Rechner teilen und sich gleichzeitig anmelden (via Remote-Desktop).
    Welchen willst Du jetzt wissen?

    Siehe:
    - WTSEnumerateSessions
    - OpenWindowStation
    - GetUserObjectInformation



  • Hallo,

    Den Benutzer, den ich auch GetUserName bekomme 🙂

    Danke und Gruß

    Tobias



  • Wenn Du in einem Service bisst läuft der normalerweise im Serivce-Account... somit ist das nicht vergleichbar.

    Und wenn Du im Gegensatz eine "normale" Anwendung hast, dann wird die i.d.R. von einem Benutzer in einer bestimmten Session gestartet. Da gibt es also kein Zuordnungs-Problem...

    Im Service kannst Du natürlich auch "GetUserName" aufrufen. Das liefert dann den Benutzernamen, in welchem der Service gestartet wurde.



  • Sowas habe ich mir schon gedacht,

    also sieht es schlecht aus.

    Die Idee, die ich jetzt noch hab, ist beim Start vom Rechner in die Autostart ein kleines Programm zu tun, welches mir den Username an den Dienst schickt.
    Wäre das Okay, oder ehr nicht so gut?

    Danke und Gruß

    Tobias



  • Was spricht gegen
    - WTSEnumerateSessions
    - OpenWindowStation
    - GetUserObjectInformation
    ?

    Wenn Du was in den Autostart tust, hast Du ja wieder das gleiche Problem... wenn sich mehrere Anmelden, wird jedesmal der Namen Deinem Service mitgeteilt... das Problem hast Du somit nur verlagert...



  • Hallo,

    damit hast du natürlich Recht 😞

    Naja, nach den Befehlen hab ich gegoogelt, aber so Recht was gefunden habe ich nicht. Kannst du mir vielleicht noch ein paar Informationen zu den Befehlen geben?

    DANKE

    Tobias




Anmelden zum Antworten