C# предоставление разрешения" войти в систему как Служба " пользователю windows
Как предоставить пользователю право LogOnAsService для службы?
Мне нужно сделать это вручную, в услуги.msc app я могу перейти на службу, изменить пароль (установив тот же, что и раньше), нажмите кнопку Применить, и я получаю сообщение:
учетная запись .Постгреса была предоставлено право входа в систему как Службы.
Как это сделать из кода, потому что в противном случае я должен дать это разрешение вручную каждый время, когда я запускаю приложение, и это не возможность
@Steve
static void Main()
{
// irrelevant stuff
GrantLogonAsServiceRight("postgres");
// irrelevant stuff
}
private static void GrantLogonAsServiceRight(string username)
{
using (LsaWrapper lsa = new LsaWrapper())
{
lsa.AddPrivileges(username, "SeServiceLogonRight");
}
}
и LSA lib этого парня Вилли.
1 ответов
посмотреть предоставление прав пользователя в C#.
вы должны вызвать API LSA через P / Invoke, и этот URL имеет ссылку на класса что делает это для вас. Таким образом, код, который вы получите, прост:
private static void GrantLogonAsServiceRight(string username)
{
using (LsaWrapper lsa = new LsaWrapper())
{
lsa.AddPrivileges(username, "SeServiceLogonRight");
}
}