Het gebeurd zelden, maar nu dus wel: Ik moest iets installeren op een domeincontroller, waarbij een domeingebruiker rechten moest hebben om aan te melden als een service. Normaal gesproken niet zo lastig: Je start de local policy editor, gaat naar computerconfiguratie, windows settings, assign userrights, en select logon as a service. Maar op een domeincontroller kun je daar niets toevoegen. Dan heb je ook de mogelijkheid om dat via een grouppolicy te doen, maar dat is dan weer te omslachtig. Je kunt NTrights (uit de Windows 2003 resourcekit) gebruiken, maar dan moest ik die eerst gaan downloaden en installeren. Powershell? Misschien, maar ook daarvoor moest wat gedownload worden. Uiteindelijk kwam ik op een vbscript uit. En dat heeft dan toch mijn voorkeur: Scriptje kopieren naar notepad, wegschrijven cscript <script> starten, en het werkt.

Dat script, dat heb ik gevonden op http://morgantechspace.com/2013/11/Set-or-Grant-Logon-As-A-Service-right-to-User.html#ViaCommandLine. En als die site nou eens offline gaat, hier dan ook maar het script:

' SetLogonAsAServiceRight.vbs
' Sample VBScript to set or grant Logon As A Service Right.
' Author: http://www.morgantechspace.com/
' ------------------------------------------------------'

Dim strUserName,ConfigFileName,OrgStr,RepStr,inputFile,strInputFile,outputFile,obj
strUserName = "domain\user"
Dim oShell
Set oShell = CreateObject ("WScript.Shell")
oShell.Run "secedit /export /cfg config.inf", 0, true
oShell.Run "secedit /import /cfg config.inf /db database.sdb", 0, true

ConfigFileName = "config.inf"
OrgStr = "SeServiceLogonRight ="
RepStr = "SeServiceLogonRight = " & strUserName & ","
Set inputFile = CreateObject("Scripting.FileSystemObject").OpenTextFile("config.inf", 1,1,-1)
strInputFile = inputFile.ReadAll
inputFile.Close
Set inputFile = Nothing

Set outputFile = CreateObject("Scripting.FileSystemObject").OpenTextFile("config.inf",2,1,-1)
outputFile.Write (Replace(strInputFile,OrgStr,RepStr))
outputFile.Close
Set outputFile = Nothing
oShell.Run "secedit /configure /db database.sdb /cfg config.inf",0,true
set oShell= Nothing
Set obj = CreateObject("Scripting.FileSystemObject")
obj.DeleteFile("config.inf")
obj.DeleteFile("database.sdb")
Msgbox "Logon As A Service Right granted to user '"& strUserName &"' using Vbscript code"
Vergeet niet de strUserName aan te passen...