Auslesen des angemeldeten Benutzers



  • Hallo,

    kann man unter Windows den _angemeldeten_ Benutzer ermitteln, auch wenn ein Prozess unter einem anderen Benutzer läuft?

    GetUsername liefert offenbar den Benutzernamen, der momentan mit dem Prozess assoziiert ist.



  • Kommt drauf an, wie hoch deine Rechte sind.

    Wenn du als Service (LocalSystem) läufst bekommst du von WTSQueryUserToken() einen Token des angemeldenten Users in einer Session (WTSGetActiveConsoleSessionId)

    Als normaler Windows Prozess kannst du es über die Shell versuchen:
    GetShellWindow() -> GetWindowThreadProcessId() -> OpenProcess() -> OpenProcessToken()

    Sobald du den Token hast, sollt dir GetTokenInformation(TokenUser) die SID des Users sagen und LookupAccountSid() gibt dir dann den Namen des Users aus 😉

    Natürlich vorausgesetzt, du hast bei allen Schritten die jeweils nötigen Rechte die APIs aufzurufen.



  • Was denn für Rechte? Gibt doch nur normal und admin/elevated ?!


Anmelden zum Antworten