Создаю сервис:
public partial class HostService : ServiceBase
{
public HostService()
{
InitializeComponent();
this.ServiceName = "RemoteAdmin";
this.EventLog.Log = "RemoteAdmin LOG";
}
static void Main(string[] args)
{
ServiceBase.Run(new HostService());
}
private static RemoteServer Host;
protected override void OnStart(string[] args)
{
Host = RemoteServer.Start();
base.OnStart(args);
}
protected override void OnStop()
{
if (Host != null)
{
Host.OnStop();
}
base.OnStop();
}
}
[RunInstaller(true)]
public partial class RemoteAdminInstaller : Installer
{
public RemoteAdminInstaller()
{
InitializeComponent();
ServiceProcessInstaller serviceProcessInstaller = new ServiceProcessInstaller();
ServiceInstaller serviceInstaller = new ServiceInstaller();
serviceProcessInstaller.Account = ServiceAccount.LocalService;
serviceProcessInstaller.Username = "";
serviceProcessInstaller.Password = "";
serviceInstaller.DisplayName = "RemoteAdmin";
serviceInstaller.StartType = ServiceStartMode.Automatic;
serviceInstaller.ServiceName = "RemoteAdmin Service";
this.Installers.Add(serviceProcessInstaller);
this.Installers.Add(serviceInstaller);
}
}
И зарускаю его так:
ServiceController[] services = ServiceController.GetServices();
foreach (ServiceController service in services)
{
if (service.DisplayName == "RemoteAdmin")
{
if (service.Status != ServiceControllerStatus.Running)
{
service.Start();
Console.WriteLine("Service RemoteAdmin start");
Console.WriteLine("For quit press any key ...");
Console.ReadKey();
}
}
}
При запуске ошибка: отказ в доступе, я так понимаю это настройки политики безопасности не дают запустить сервис, как и где их настраивать
Спасибо
Это то в принципе понятно что руками можно, хотелось бы програмными средствами есть у кого работающий пример установки-запуска службы с настраиванием политики безопасности.
Спасибо
Здравствуйте, DarkSmile, Вы писали:
DS>Здравствуйте, Аноним, Вы писали:
DS>попробуй LocalSystem
Разговор двух подруг:
— Тань, а ты тампаксы пробовала?
— Пробовала, мне сникерсы больше нравятся.
Здравствуйте, Аноним, Вы писали:
А>Это то в принципе понятно что руками можно, хотелось бы програмными средствами есть у кого работающий пример установки-запуска службы с настраиванием политики безопасности.
ServiceController[] services = ServiceController.GetServices();
foreach (ServiceController service in services)
{
if (service.DisplayName == "RemoteAdmin")
{
if (service.Status != ServiceControllerStatus.Running)
{
service.Start();
Console.WriteLine("Service RemoteAdmin start");
Console.WriteLine("For quit press any key ...");
Console.ReadKey();
}
}
}
Программа установки запускается под аккаунтом пользователя и соответсвенно с привилегиями этого аккаунта. Так вот, если пользователь имеет привилегию менять политики безопасности, то с вероятностью 99.9% он имеет привилегию запускать службы. И наоборот — если пользователь не имеет привилегию запускать службу, то навряд ли он сможет что-либо изменить в политиках безопасности, будь то стандартные средства администрирования, будь то самописные тулзы.