Trovare i percorsi degli utenti da un servizio
-
27-10-2019 - |
Domanda
Nel processo di scrittura di un servizio che ho
//# Service Account Information
serviceProcessInstaller.Account = ServiceAccount.LocalSystem;
nel programma di installazione per questo.
Stavo avendo problemi a scrivere un registro
static string USERS_HOME_DIR = Environment.GetEnvironmentVariable("HOMEDRIVE") + Environment.GetEnvironmentVariable("HOMEPATH");
Da quando il servizio era in esecuzione (installato "come amministratore") il logger dell'evento stava segnalando
Il servizio non può essere avviato. System.io.DirectoryNotFoundException: Impossibile trovare una parte del percorso 'C: Documents Cartella di interesse'
Ho bisogno dei sentieri degli utenti di Local_PC, qualche idea su come ottenerli?
AGGIORNARE
In realtà sarebbe meglio ottenere il percorso per l'utente attualmente registrato, poiché la loro sessione e il servizio iniziano. Il mio sevice non è rientrante ma un utente è migliore di nessuno.
Soluzione
Se capisco correttamente la tua domanda, quello che stai cercando sono il Enumerazioni di cartelle speciali.
Con qualcosa di simile:
String PersonalFolder = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
Se si desidera eseguire il servizio come account LocalSystem, esiste una serie separata di standard per la memorizzazione dei dati. Vedere Questa risposta su Serverfault.