Servizio Windows Avvio di Process COM Server - CSIDL_APPDATA che restituisce come percorso utente diverso

StackOverflow https://stackoverflow.com/questions/5860347

Domanda

Ho un servizio Windows scritto in C#. Questo servizio genera una serie di thread MTA. In ciascuno di questi thread è istanziata una classe com fuori dal processo. Ho impostato il servizio in esecuzione come utente attuale (aggiungi le credenziali di accesso appropriate). Quando il servizio avvia, appare da Task Manager che è in esecuzione come mio utente. Se il servizio effettua un controllo per la directory utente di roaming locale, restituisce la mia directory utente come previsto. Quando la mia classe COM che viene eseguita come Exe Out of Process fa questo controllo, restituisce un percorso in Windows System32 config SystemProfile AppData roaming.

Chiunque può far luce su ciò che sta accadendo qui, e ancora più specificamente, come posso far funzionare il server di processo come utente del servizio. Ho controllato in Task Manager e secondo Task Manager l'EXE è in esecuzione come lo stesso utente (nella stessa sessione) del servizio.

Non sono sicuro se il sistema operativo sia un fattore, ma l'ho visto su Vista 32 (SP2) e Win7 64 (SP1)

È stato utile?

Soluzione

È possibile eseguire il server come un account specifico utilizzando Correre come. Non molto flessibile ma sembra fare quello che vuoi qui.

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