Запуск службы Windows Out-Process COM-сервер - CSIDL_APPDATA возвращается как другой путь пользователя - PullRequest
0 голосов
/ 02 мая 2011

У меня есть служба Windows, написанная на C #.Этот сервис порождает несколько потоков MTA.В каждом из этих потоков создается экземпляр внепроцессного COM-класса.Я настроил службу для работы от имени текущего пользователя (добавьте соответствующий логин в учетные данные).Когда служба запускается, из диспетчера задач появляется, что она работает как мой пользователь.Если служба выполняет проверку локального роумингового каталога пользователя, она возвращает мой каталог пользователя, как и ожидалось.Когда мой COM-класс, который выполняется как вне процесса exe, делает эту проверку, он возвращает путь в Windows \ System32 \ Config \ systemprofile \ AppData \ Roaming.

Может кто-нибудь пролить свет на то, что происходитздесь, и даже более конкретно, как я могу получить сервер вне процесса для работы в качестве пользователя службы.Я проверил в диспетчере задач, и в соответствии с диспетчером задач, исполняемый файл работает как тот же пользователь (в том же сеансе), что и служба.

Не уверен, является ли ОС фактором, но я видел этона Vista 32 (sp2) и Win7 64 (sp1)

1 Ответ

1 голос
/ 02 мая 2011

Вы можете заставить сервер работать под определенной учетной записью, используя RunAs . Не очень гибкий, но, кажется, делает то, что вы хотите здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...