c # Octroi de l’autorisation «Ouvrir une session en tant que service» à un utilisateur Windows

Comment puis-je accorder à un utilisateur le droit LogOnAsService pour un service?

Je dois le faire manuellement. Dans l’application services.msc, je peux accéder au service, modifier le mot de passe (en utilisant le même mot qu’auparavant), cliquer sur Appliquer et je reçois un message:

Le compte. \ Postgres dispose du droit d’ouverture de session en tant que service.

Comment puis-je faire cela à partir de code, car sinon je dois donner cette permission à la main chaque fois que je lance l’application et ce n’est pas une possibilité

@Steve

static void Main() { // irrelevant stuff GrantLogonAsServiceRight("postgres"); // irrelevant stuff } private static void GrantLogonAsServiceRight(ssortingng username) { using (LsaWrapper lsa = new LsaWrapper()) { lsa.AddPrivileges(username, "SeServiceLogonRight"); } } 

et le lib LSA par ce gars Willy.

Voir Octroi de droits d’utilisateur en C # .

Vous devez appeler les API LSA via P / Invoke, et cette URL contient une référence à une classe wrapper qui le fait pour vous. Donc, le code avec lequel vous vous retrouvez est simple:

 private static void GrantLogonAsServiceRight(ssortingng username) { using (LsaWrapper lsa = new LsaWrapper()) { lsa.AddPrivileges(username, "SeServiceLogonRight"); } }