Есть программа на C #.Он запускается под пользователем без прав администратора в Windows 7. UAC включен.
Эта программа запускает дочерний процесс:
webClientProcess.StartInfo.CreateNoWindow = true;
webClientProcess.StartInfo.FileName = @".\StartWebClient.exe";
webClientProcess.StartInfo.UseShellExecute = true;
webClientProcess.Start();
app.manifest дочернего процесса имеет следующий параметр:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
StartWebClient.exe просто запускает службу Windows WebClient и возвращает ее.
Если UAC включен, у нас появляется всплывающее окно для ввода пароля администратора, и все в порядке.
Если UAC выключен (пользователь не является администратором!), Конечно, у нас нет приглашения, а затем, когда мы запускаем службу WebClient:
var sc = new ServiceController("WebClient");
if (sc.Status != ServiceControllerStatus.Running)
{
sc.Start();
}
у нас есть ошибка: Невозможно открыть службу WebClient на компьютере '.'.
Это связано с отсутствием всплывающего окна с паролем администратора.
Вопрос: есть ли способ запустить службу в этом случае?
Я не смог найти решение здесь или в MSDN.Если по мнению Microsoft эта ситуация является «неправильным вариантом использования», может быть кто-нибудь знает ссылку на соответствующую статью MSDN?У меня нет цели запустить службу с некоторыми взломами, если это запрещено - хорошо, но я не смог найти подтверждение в MSDN.