Запуск службы windows в дочернем процессе с повышением привилегий при отключенном UAC - PullRequest
1 голос
/ 29 сентября 2019

Есть программа на 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.

...