gerhardtgerhardt
Grünschnabel
ich habe jetzt wirklich an allen möglichen Orten gesucht und komme einfach nicht weiter.
Aufgabe zusammengefasst:
1.) Ausführen eines Kommandos mit einer einfachen Anwendung ohne Fenster oder Konsole.
2.) Das Kommando startet einen mir unbekannten Prozess.Ich bekomme nur die IP und den Prozessnamen.
3.) Der unbekannte Prozess ist übrigens eine Javaanwendung.
4.) Domain, User und Password habe ich auch.
Was verwende ich:
-- Ich setze alle möglichen Privilegien SeTcbPrivilege,SeChangeNotifyPrivilege,...etc
-- Ich rufe LogonUser auf
-- Ich rufe ImpersonateLoggedOnUser auf
-- Und dann CreateProcessAsUser
--WaitForSingleObject hat keinen Sinn mehr, da die Java exe mir den Prozessaufruf wieder nimmt und somit keine Verbindung mit meiner exe mehr besteht. diese beendet sich dann daher von selbst und das ist auch so gewollt.
Die Tatsachen:
Ich starte Meine Anwendung von meinem PC aus einem lokalen Verzeichnis. Und der "Javaprozess" wird auf dem Verzeichnis eines anderen Rechner gestartet und übernimmt korrekt seine Aufgaben.
Aber starte ich 1. meine Anwendnung von meinem PC aus dem Verzeichnis des gemappten PC, bekomme ich zwar richtige returncodes der oben genannten Funktionen, aber der Prozess tut gar nichts. Die Create... Funktion gibt auch 1 zurück.
Meine exe schließt sich dann wieder.
Starte ich 2. die Anwendung von gemappten PC aus bekomme ich fast gar keine Fehlercodes zurück.
So das Kuriosum:
zu letzterem bei LogOnUser kommt 1 zurück, also OK dann habe ich vorsichtshalber dahinter GetLastError() gesetzt und dort bekomme ich 2 zurück.
Die Create... Funktion scheitert
Liegt das an irgendwelchen weiteren Rechten?Aber am gemappten PC bin ich doch richtig angemeldet und ... Verzweifel
Vielleicht hat ja jemand von euch eine Idee.
Gerhardt
Aufgabe zusammengefasst:
1.) Ausführen eines Kommandos mit einer einfachen Anwendung ohne Fenster oder Konsole.
2.) Das Kommando startet einen mir unbekannten Prozess.Ich bekomme nur die IP und den Prozessnamen.
3.) Der unbekannte Prozess ist übrigens eine Javaanwendung.
4.) Domain, User und Password habe ich auch.
Was verwende ich:
-- Ich setze alle möglichen Privilegien SeTcbPrivilege,SeChangeNotifyPrivilege,...etc
-- Ich rufe LogonUser auf
Code:
LogonUser(user,domain,password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &hToken );
-- Ich rufe ImpersonateLoggedOnUser auf
Code:
ImpersonateLoggedOnUser(hToken);
-- Und dann CreateProcessAsUser
Code:
ok = CreateProcessAsUser(hToken,NULL,commando,NULL,NULL,true,NORMAL_PRIORITY_CLASS,NULL,NULL,&si,&pi);
--WaitForSingleObject hat keinen Sinn mehr, da die Java exe mir den Prozessaufruf wieder nimmt und somit keine Verbindung mit meiner exe mehr besteht. diese beendet sich dann daher von selbst und das ist auch so gewollt.
Die Tatsachen:
Ich starte Meine Anwendung von meinem PC aus einem lokalen Verzeichnis. Und der "Javaprozess" wird auf dem Verzeichnis eines anderen Rechner gestartet und übernimmt korrekt seine Aufgaben.
Aber starte ich 1. meine Anwendnung von meinem PC aus dem Verzeichnis des gemappten PC, bekomme ich zwar richtige returncodes der oben genannten Funktionen, aber der Prozess tut gar nichts. Die Create... Funktion gibt auch 1 zurück.
Meine exe schließt sich dann wieder.
Starte ich 2. die Anwendung von gemappten PC aus bekomme ich fast gar keine Fehlercodes zurück.
So das Kuriosum:
zu letzterem bei LogOnUser kommt 1 zurück, also OK dann habe ich vorsichtshalber dahinter GetLastError() gesetzt und dort bekomme ich 2 zurück.
Die Create... Funktion scheitert
Liegt das an irgendwelchen weiteren Rechten?Aber am gemappten PC bin ich doch richtig angemeldet und ... Verzweifel
Vielleicht hat ja jemand von euch eine Idee.
Gerhardt