Frage

Wenn ich einen Dienst als Localsystem-Konto ausgeführt wird, kann ich folgende Codes verwenden, um ein GUI-Programm unter dem aktuellen Login-Konto zu starten:

WTSGetActiveConsoleSessionId-> WTSQueryUserToken-> CreateProcessAsUser

Allerdings, wenn ich den Dienst als mein persönliches Konto ausführen, wird das GUI-Programm nicht angezeigt. Ich kann, obwohl es in der Task-Manager sehen.

Was soll ich tun, um das GUI-Programm zu starten, wenn der Dienst unter meinem persönlichen Konto ausgeführt wird?

War es hilfreich?

Lösung

John und jdigital sind beide recht -. Aus meinem Verständnis können Dienste im Allgemeinen entweder Desktop-Zugriff (Sie müssen Local verwenden) oder den Netzzugang (Sie müssen ein Konto angeben, unter auszuführen)

In Kürze erhalten Sie müssen zwei der App in zwei Teile aufgeteilt - eine mit dem Desktop und dem anderen zu interagieren, um das Netzwerk zu besprechen. Die beiden Teile können dann miteinander sprechen Info an den Endanwender weiterzuleiten.

Andere Tipps

Das alles hat mit Berechtigungen zu tun, glaube ich.

Local verfügt über ausreichende Berechtigungen die aktuellen Benutzer zu verkörpern, aber Ihr Konto nicht.

Sie müßten einen Weg finden, um Berechtigungen zu Ihren Diensten zu erweitern, entweder durch die Anmeldeinformationen aufgefordert werden, oder zu einem Helferdienst verbinden, die als Localsystem ausgeführt wird.

(Warum wollen Sie mit Ihrem Konto statt Localsystem laufen sollen?)

Ich bin sicher, es gibt viel gründliche Antworten, die mit dem in dem und aus den befassen, dies zu tun, aber auf einem hohen Niveau ich denke, das ist das Problem.

Sie können in der falschen Fensterstation oder Desktop ausgeführt werden. Sehen Sie diese Microsoft Bezug auf Arbeitsstationen und Desktops .

Ich glaube, dass das, was Sie zu tun versuchen wird, kann eine Sicherheitslücke betrachtet. Es ist auch als auch in einigen Fällen arbeiten, nicht wahrscheinlich. Ich denke, jdigital in richtig ist, dass es mit Fensterstationen zu tun und zu versuchen, den Zugriff auf die aktuelle Benutzerarbeitsstation zu bekommen und es ist Desktop. Das ist viel zu verwechseln, wenn Sie unter unter einem Terminaldienste-Server, wo es mehr aktuellen Fenster-Stationen sind. Microsoft wirklich wollen Sie nicht, was Sie wollen und sie machen es schwieriger, mit jedem Release von Windows.

Ich denke, Ihre beste Wette ist, um das Problem aus einem anderen Blickwinkel zu lösen und nur eine GUI-Anwendung erstellen, die der Benutzer läuft (manaully oder automatisch bei der Anmeldung) und an Ihren Service spricht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top