Dienstbenutzerkonten
Jeder Dienst wird im Sicherheitskontext eines Benutzerkontos ausgeführt. Der Benutzername und das Kennwort eines Kontos werden von der CreateService-Funktion zum Zeitpunkt der Dienstinstallation angegeben. Der Benutzername und das Kennwort können mithilfe der ChangeServiceConfig-Funktion geändert werden. Sie können die QueryServiceConfig-Funktion verwenden, um den Benutzernamen (aber nicht das Kennwort) abzurufen, der einem Dienstobjekt zugeordnet ist. Der Dienststeuerungs-Manager (Service Control Manager, SCM) lädt automatisch das Benutzerprofil.
Beim Starten eines Diensts meldet sich der SCM bei dem Konto an, das dem Dienst zugeordnet ist. Wenn die Anmeldung erfolgreich ist, erstellt das System ein Zugriffstoken und fügt es an den neuen Dienstprozess an. Dieses Token identifiziert den Dienstprozess in allen nachfolgenden Interaktionen mit sicherungsfähigen Objekten (Objekten, denen eine Sicherheitsbeschreibung zugeordnet ist). Wenn der Dienst beispielsweise versucht, ein Handle für eine Pipe zu öffnen, vergleicht das System das Zugriffstoken des Diensts mit der Sicherheitsbeschreibung der Pipe, bevor der Zugriff gewährt wird.
Der SCM verwaltet die Kennwörter von Dienstbenutzerkonten nicht. Wenn ein Kennwort abgelaufen ist, schlägt die Anmeldung fehl, und der Dienst kann nicht gestartet werden. Der Systemadministrator, der Den Diensten Konten zuweist, kann Konten mit Kennwörtern erstellen, die nie ablaufen. Der Administrator kann auch Konten mit Kennwörtern verwalten, die ablaufen, indem er ein Dienstkonfigurationsprogramm verwendet, um die Kennwörter regelmäßig zu ändern.
Wenn ein Dienst einen anderen Dienst vor der Freigabe seiner Informationen erkennen muss, kann der zweite Dienst entweder dasselbe Konto wie der erste Dienst verwenden oder in einem Konto ausgeführt werden, das zu einem Alias gehört, der vom ersten Dienst erkannt wird. Dienste, die verteilt über das Netzwerk ausgeführt werden müssen, sollten in domänenweiten Konten ausgeführt werden.
Sie können eines der folgenden speziellen Konten angeben, anstatt ein Benutzerkonto für den Dienst anzugeben: