Какое разрешение пользователя требуется службе для запуска / остановки других служб? - PullRequest
5 голосов
/ 01 октября 2010

Я написал службу, которая должна запускать / останавливать другие службы. Это код, который я использую:

ServiceController sc = new ServiceController("servicename");
if(sc.Status != ServiceControllerStatus.Running)
{
    sc.Start();
}

Это стек вызовов исключения. (Извините, но сообщение локализовано на немецком языке, но это не относится к пониманию моей проблемы)

System.InvalidOperationException: Der Dienst SCardSvr kann nicht auf dem

Компьютер. Geöffnet Werden. ---> System.ComponentModel.Win32Exception: Zugriff verweigert
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.ServiceProcess.ServiceController.GetServiceHandle (Int32 DesiredAccess)
bei System.ServiceProcess.ServiceController.Start (String [] арг)
bei System.ServiceProcess.ServiceController.Start ()

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

1 Ответ

1 голос
/ 01 октября 2010

Нужно ли иметь возможность запускать и останавливать произвольные службы или определенный набор?

Для более детального контроля можно установить разрешения для определенной службы.См. http://msmvps.com/blogs/erikr/archive/2007/09/26/set-permissions-on-a-specific-service-windows.aspx?CommentPosted=true#commentmessage

Члены группы «опытные пользователи» могут запускать и останавливать службы.Смотри http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/windows_security_default_settings.mspx?mfr=true

...