Domanda

Quando eseguo un servizio come account LocalSystem, posso utilizzare i seguenti codici per lanciare un programma con interfaccia grafica sotto l'account di accesso corrente:

WTSGetActiveConsoleSessionId-> WTSQueryUserToken-> CreateProcessAsUser

Tuttavia, quando si esegue il servizio come il mio account personale, il programma GUI si presenta. Posso vederlo in Task Manager però.

Cosa devo fare per lanciare il programma con interfaccia grafica quando il servizio è in esecuzione con il mio account personale?

È stato utile?

Soluzione

John e jdigital sono sia a destra -. Dalla mia comprensione, i servizi possono generalmente disporre di accesso al desktop (è necessario utilizzare LocalSystem) o di accesso alla rete (è necessario specificare un account per l'esecuzione in)

È necessario dividere due vostra applicazione in due - uno a interagire con il desktop e l'altro per parlare attraverso la rete. Le due parti possono parlare tra di loro per trasmettere informazioni per l'utente finale.

Altri suggerimenti

Tutto ha a che fare con i permessi credo.

LocalSystem dispone di privilegi sufficienti per rappresentare l'utente corrente, ma il tuo account non è così.

Dovresti capire un modo per estendere le autorizzazioni per il servizio, sia per richiedere le credenziali, o la connessione a un servizio di supporto che viene eseguito come LocalSystem.

(Perché si desidera eseguire con il tuo account, invece di LocalSystem?)

Sono sicuro che ci sono molto più approfondita le risposte che si occupano di in di e fuori di di fare questo, ma a un livello elevato Penso che questo sia il problema.

Si può essere in esecuzione nella stazione finestra sbagliata o desktop. Vedere questo riferimento Microsoft sul Stazioni e desktop .

Credo che ciò che si sta cercando di fare può essere considerato una vulnerabilità di sicurezza. Inoltre non è probabile che il lavoro, in alcuni casi pure. Credo jdigital è corretto in quanto ha a che fare con oggetti di finestra e cercando di ottenere l'accesso alla postazione utente corrente ed è desktop. Questo è confuso un sacco quando si è sotto sotto un server di Servizi terminal, dove ci sono più stazioni finestra corrente. Microsoft in realtà non si vuole quello che vuoi e lo rendono più difficile con ogni versione di Windows.

Credo che la soluzione migliore è quello di risolvere il problema da un'altra angolazione e basta creare un'applicazione GUI che l'utente esegue (manaully o automaticamente al momento del login) e si parla al vostro servizio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top