Начать процесс из системной учетной записи с определенным именем пользователя - PullRequest
4 голосов
/ 02 апреля 2010

Я разрабатываю службу Windows в C#.net, Account: LocalSystem, System: Windows XP SP3
Я хочу, чтобы эта служба проверяла всех зарегистрированных пользователей, запущено ли определенное приложение, а если нет - запустите это приложение как соответствующее имя пользователя.

Я предоставляю домен, имя, пароль, но Start () выбрасывает Win32Exception исключение «Доступ запрещен»

process.StartInfo.Domain = domain;  
process.StartInfo.UserName = name;  
process.StartInfo.Password = password;  
process.StartInfo.FileName = fileName;  
process.StartInfo.UseShellExecute = false;  
process.Start();  

Пользователь, чьи учетные данные я предоставляю, находится в группе администраторов - приложение успешно запускается, если запускается вручную.

Это сделано по-другому?

Спасибо!

1 Ответ

0 голосов
/ 02 апреля 2010

Как вы проверяете приложения, которые работают? В Windows Vista и новее существует разделение между службами и рабочими столами. Это может означать, что вы не можете получить доступ к нужной информации, и по этой причине служба взрывается. В сервисном диалоге есть флажок «разрешить взаимодействие с рабочим столом» или аналогичный. Возможно, вы захотите включить это.

...