Windows User auslesen, nicht Threaduser

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von petaod.

    Windows User auslesen, nicht Threaduser

    Hallo,

    ich stehe gerade etwas auf dem Schlauch, ich habe folgendes vor.
    Mein App wird im Windows als anderer Benutzer gestartet, soweit funktioniert das auch, jetzt möchte ich aber aus diesem APP heraus eine Prozess starten, aber nicht als der andere User sondern als der User der Windowsanmeldung.

    Mit:

    VB.NET-Quellcode

    1. Dim user As String = System.Security.Principal.WindowsIdentity.GetCurrent().Name
    2. oder
    3. Dim user As String = Environment.UserName
    bekomme ich nur den User heraus, der die App gestartet hat.

    Bsp.
    Windowsanmeldung ist USER
    Die APP wird gestartet als Admin
    Der Prozess soll dann als User gestartet werden und nicht als Admin

    Kann mir da jemand weiterhelfen?

    Beitrag verschoben ~EaranMaleasi

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „EaranMaleasi“ ()

    Wenn du einen Task als Administrator startet, läuft der in einem völlig anderen Context.
    So wie ein anderer User, der parallel zu dir eingeloggt ist.
    Da gibt es meines Wissens keine Verbindung zu dem Prozess, der den Task gestartet hat.

    Du kannst nur herausfinden, welche anderen interaktiven Benutzer sonst noch eingeloggt sind (einen Explorer laufen haben).
    Ein Beispiel findest du hier:
    codeproject.com/Articles/10937…-Name-using-a-Windows-Ser

    Wenn allerdings parallel noch andere Benutzer eingeloggt sind, bekommst du vermutlich eine Liste all dieser Benutzer (oder eben nur den beliebigen ersten).
    Wird also vermutlich nur zuverlässig funktionieren, wenn nur ein Benutzer interaktiv dran hängt.

    Du könntest allerdings beim Starten des Admin-Prozesses den startenden Benutzer als Parameter mitgeben.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --