CreateProcessAsUser ???



  • PS: Funktion giebt 0 zurück!

    Aha. Und GetLastError()? Funktioniert der Aufruf von LogonUser()? Falls nein, was gibt GetLastError() nach LogonUser() zurück? Du weißt schon, daß man unter W2K das Privileg SE_TCB_NAME benötigt?



  • LogonUser funkt!
    GetLastError = 6.
    SE_TCB_NAME was is das???
    Das kann ich in der Hilfe nicht finden!

    THX



  • LogonUser funkt!

    Gibt also einen Wert != 0 zurück, ja? Und CreateProcessAsUser gibt 0 zurück, ist das auch richtig?

    GetLastError = 6.

    Ein Blick in winerror.h zeigt:

    //
    // MessageId: ERROR_INVALID_HANDLE
    //
    // MessageText:
    //
    //  The handle is invalid.
    //
    #define ERROR_INVALID_HANDLE             6L
    

    Das einzige HANDLE ist hToken. Bist Du Dir sicher, daß der Aufruf von LogonUser erfolgreich ist?

    SE_TCB_NAME was is das???

    Ein Privileg. Der 'normale' User unter W2K hält dieses eben nicht. Aber für das, was Du hier vorhast, gibt es unter 2K die Funktion CreateProcessWithLogonW(). Benutzt Du denn Win2000?



  • Ja ich benutze Windows 2000.
    CreateProcessAsUser giebt 0 zurück und LogonUser != 0.
    Wenn LogonUser != 0 zurück giebt ist es laut help erfolgreich gewesen ich werde es mal mit CreateProcessWithLogonW versuchen.



  • CreateProcessWithLogonW giebt es bei mir nicht???
    WithLogon ??? ich will mich doch gar nicht Abmelden bzw. Anmelden das soll Virtuell nur mit dem enstprechenden Programm geschehen.
    DD



  • CreateProcessWithLogonW giebt es bei mir nicht???

    Unter 2000 gibt es das. Auch bei Dir. Schau dazu einfach in die Hilfe.

    BTW: Deine Tastatur prellt. Wie wär's mal mit einer neuen?



  • HILFE *g*
    Hallo Leute... Ich will nen Prozess erzeugen aber es klappt einfach nicht!!! Es soll ein Prozess aus einem Service der als root bzw. Administrator gestartet wurde... Also rechtemäßig muesste alles ok sein! Ich möchte einen neuen Prozess mit dem angemeldeten User starten ohne das Password zu wissen!! gibt es da möglichkeiten? noch besser wäre eine Möglichkeit ein Prozess eines Xbeliebigen benutzer zu starten. Ganz wichtig es muss ohne password gehen oder man muss es sich holen können! Ich danke sehr im Voraus



  • Ohne Passwort kannst Du keine beliebigen Processe starten. Das geht vielleicht mit dem gerade angemeldeten User. Dafür brauchst Du aber zumindest ein Token, das diesen repräsentiert. Wenn dieser User nun einen Process startet, der nun seinerseits sein Token und seine ID an den Service übergibt, sollte das klappen.



  • Der Dienst muß als LocalSystem und mit 'Interaktive Beziehung mit dem Desktop erlauben' eingerichtet werden. Sonst kann man die Fkt. CreateProcess(...) nicht benutzen.



  • Der Dienst muß als LocalSystem und mit 'Interaktive Beziehung mit dem Desktop erlauben' eingerichtet werden. Sonst kann man die Fkt. CreateProcess(...) nicht benutzen.

    Sicher kann man das. Warum auch nicht? Man bekommt lediglich nichts zu sehen.
    Wenn ein User angemeldet ist und der Service über die erforderlichen Rechte verfügt, kann man aber auch das hinbekommen:

    startupinfo.lpDesktop = TEXT("WinSta0\\default");
    

Anmelden zum Antworten