Freigeben über


Sicherheitskontexte für Aufgaben

Aufgaben werden registriert und unter einem bestimmten Sicherheitskontext ausgeführt. Benutzer können Anwendungen erstellen, die Aufgaben erfolgreich registrieren, aktualisieren, löschen oder ausführen, aber der Benutzer muss die richtigen Anmeldeinformationen angeben, wenn eine Aufgabe registriert ist und die Anwendung in einem Prozess mit den richtigen Berechtigungen ausgeführt werden muss.

Angeben von Anmeldeinformationen

Sie können den Sicherheitskontext für eine Aufgabe angeben, indem Sie Anmeldeinformationen in den Methoden ITaskFolder::RegisterTask oder ITaskFolder::RegisterTaskDefinition (TaskFolder.RegisterTask Oder TaskFolder.RegisterTaskDefinition für Skripting) angeben oder der Prinzipaleigenschaft von ITaskDefinition (TaskDefinition.Principal für Skripting) einen Prinzipal zuweisen. Wenn ein Prinzipal für eine Aufgabendefinition erstellt wird und dann die Aufgabendefinition mithilfe der RegisterTaskDefinition-Methode mit unterschiedlichen Anmeldeinformationen registriert wird, die in den Methodenparametern angegeben sind, überschreibt die in der RegisterTaskDefinition-Methode angegebenen Anmeldeinformationen die Anmeldeinformationen im Prinzipal. Wenn ein Prinzipal für eine Aufgabendefinition mit XML erstellt wird und dann der XML-Code für die Aufgabe mithilfe der RegisterTask-Methode mit unterschiedlichen Anmeldeinformationen registriert wird, die in den Methodenparametern angegeben sind, überschreibt die in der RegisterTask-Methode angegebenen Anmeldeinformationen die Anmeldeinformationen im Prinzipal.

Sie geben ein Benutzerkonto oder eine Gruppe beim Registrieren einer Aufgabe an oder geben das Prinzip für einen Vorgang an. Der Sicherheitskontext des Benutzerkontos oder der Gruppe wird für den Sicherheitskontext der Aufgabe verwendet. In diesen Methoden und Eigenschaften definieren Sie auch den Anmeldetyp. Der Anmeldetyp wird durch eine der Konstanten in der TASK_LOGON_TYPE-Aufzählung definiert.

Aufgaben, die mit dem flag TASK_LOGON_PASSWORD oder TASK_LOGON_S4U registriert sind, werden nur gestartet, wenn der angegebene Benutzer die Anmeldung als Batchberechtigung aktiviert hat. Administratoren und Gruppenbenutzer der Gruppe "Sicherungsoperatoren" haben diese Berechtigung standardmäßig aktiviert.

Wenn Sie die ITaskService::Connect (TaskService.Connect for scripting)-Methode aufrufen, verwenden alle nachfolgenden Methodenaufrufe an den Task Scheduler-Dienst die Anmeldeinformationen, die an die Connect-Methode übergeben wurden. Dies ist wichtig, wenn Sie Aufgaben mit einem interaktiven Anmeldetyp registrieren. Wenn Sie eine Aufgabe mit dem Anmeldetyp "TASK_LOGON_INTERACTIVE_TOKEN" registrieren und die Aufgabe keine Anmeldeinformationen enthält, die in der Principal-Eigenschaft der Aufgabendefinition angegeben sind, die in den Parametern für RegisterTaskDefinition angegeben oder im XML-Code angegeben ist, der an RegisterTask übergeben wird, wird die Aufgabe mit den Anmeldeinformationen des Benutzers registriert, der die Connect-Methode aufgerufen hat.

Benutzerkontensteuerung (User Account Control, UAC) Sicherheit für Aufgaben

Mit der Benutzerkontensteuerung (User Account Control, UAC) können Benutzer allgemeine Funktionen wie das Ausführen von Programmen und das Speichern und Ändern von Daten ausführen, ohne Administratorrechte verfügbar zu machen. Standardmäßig wird eine Aufgabe mit berechtigungen auf niedriger Ebene ausgeführt, wenn UAC aktiviert ist. Aufgaben können angeben, dass sie mit erhöhten Rechten oder niedrigen Rechten ausgeführt werden, indem sie eine Berechtigungsstufe aus der TASK_RUNLEVEL_TYPE Enumeration für die RunLevel-Eigenschaft von IPrincipal (Principal.RunLevel für Skripting) festlegen. Der Wert der RunLevel-Eigenschaft bestimmt die Berechtigungsstufe, auf der die Aktionen einer Aufgabe ausgeführt werden. Wenn die Aktionen einer Aufgabe über erhöhte Berechtigungen zum Ausführen verfügen müssen, müssen Sie die RunLevel-Eigenschaft auf TASK_RUNLEVEL_HIGHEST festlegen. Wenn eine Aufgabe mithilfe der Gruppe "Administratoren" für den Sicherheitskontext der Aufgabe registriert ist, müssen Sie auch die RunLevel-Eigenschaft auf TASK_RUNLEVEL_HIGHEST festlegen, wenn Sie die Aufgabe ausführen möchten. Wenn eine Aufgabe mit dem Builtin\Administrator-Konto oder den Konten des lokalen Systems oder des lokalen Diensts registriert ist, wird die RunLevel-Eigenschaft ignoriert. Der Eigenschaftswert wird auch ignoriert, wenn die Benutzerkontensteuerung (User Account Control, UAC) deaktiviert ist. Der Wert der RunLevel-Eigenschaft wirkt sich nicht auf die Berechtigungen aus, die zum Ausführen oder Löschen einer Aufgabe erforderlich sind.

Hinweis

Nach dem Upgrade eines Betriebssystems von Windows XP auf Windows Vista werden Aufgaben, die mit dem Builtin\Administrator-Konto unter Windows XP registriert wurden, die RunLevel-Eigenschaft auf TASK_RUNLEVEL_LUA festgelegt. Dies kann dazu führen, dass einige Aufgaben fehlschlagen. Sie können diese Eigenschaft manuell aktualisieren, um sicherzustellen, dass alle Aufgaben ausgeführt werden.

 

Bei einem Prozess mit niedriger Berechtigung können Sie eine Aufgabe nicht mit der RunLevel-Eigenschaftregistrieren, die TASK_RUNLEVEL_HIGHEST ist. Sie können jedoch eine Aufgabe mit der RunLevel-Eigenschaft registrieren, die TASK_RUNLEVEL_LUA ist. Die Aufgabenaktionen werden mit niedrigen Berechtigungen ausgeführt. Sie dürfen die Aufgabe nicht als Builtin/Administrator, Local System oder für eine Gruppe registrieren.

Aus einem Prozess mit erhöhten Rechten können Sie eine Aufgabe mit der RunLevel-Eigenschaft registrieren, die TASK_RUNLEVEL_HIGHEST oder TASK_RUNLEVEL_LUA entspricht. Die Aufgabe wird mit einer von der RunLevel-Eigenschaft festgelegten Berechtigungsstufe ausgeführt, es sei denn, Sie verwenden das Administratorkonto, in diesem Fall wird die Aufgabe mit erhöhten Berechtigungen ausgeführt.

Aus einem Prozess mit erhöhten Rechten können Sie einen Task Scheduler 1.0-Vorgang registrieren. Der Task scheduler-Dienst legt die Ausführungsebene des Vorgangs auf TASK_RUNLEVEL_HIGHEST fest, und die Aufgabe wird mit erhöhten Rechten ausgeführt.

Aus einem Prozess mit niedriger Berechtigung können Sie auch einen Task Scheduler 1.0-Vorgang registrieren. Der Task scheduler-Dienst legt die Ausführungsebene des Vorgangs auf TASK_RUNLEVEL_LUA fest, und die Aufgabe wird mit niedrigen Rechten ausgeführt. Wenn diese Aufgabe von einem Prozess mit erhöhten Rechten aktualisiert wird, bleibt die Ausführungsebene der Aufgabe TASK_RUNLEVEL_LUA.

Sicherheit für die Registrierung von Aufgaben

Wenn Sie eine Aufgabe aus einem Konto registrieren, das Mitglied der Gruppe "Administratoren" ist, müssen Sie beim Registrieren der Aufgabe nur in den folgenden Situationen ein Kennwort angeben:

  • Wenn Sie die Aufgabe registrieren, die unter dem Sicherheitskontext Ihres Kontos oder des Kontos eines anderen Benutzers ausgeführt werden soll, und verwenden Sie das TASK_LOGON_PASSWORD Flag in der RegisterTask- oder RegisterTaskDefinition-Methode .
  • Wenn Sie die Aufgabe registrieren, die unter dem Sicherheitskontext eines anderen Benutzerkontos ausgeführt werden soll und Sie das TASK_LOGON_S4U Flag in der RegisterTask - oder RegisterTaskDefinition-Methode verwenden.

Sie können eine Benutzergruppe nicht als Sicherheitskontext einer Aufgabe verwenden, wenn Sie die Aufgabe mithilfe des TASK_LOGON_S4U Flags oder des TASK_LOGON_PASSWORD Flags in der RegisterTask- oder RegisterTaskDefinition-Methode registrieren.

Wenn Sie eine Aufgabe aus einem Benutzerkonto registrieren, das kein Mitglied der Gruppe "Administratoren" ist, müssen Sie beim Registrieren der Aufgabe kein Kennwort angeben, wenn Sie die Aufgabe registrieren, die unter dem Sicherheitskontext Ihres Kontos ausgeführt werden soll, und den Anmeldetyp S4U oder interaktive Anmeldung verwenden. Andernfalls müssen Sie beim Registrieren der Aufgabe ein Kennwort angeben. Außerdem können Sie die Aufgabe nicht mit dem Konto des lokalen Diensts oder mithilfe einer Gruppe für den Sicherheitskontext der Aufgabe registrieren.

Sicherheit beim Lesen, Aktualisieren, Löschen und Ausführen von Aufgaben

Standardmäßig kann ein Benutzer, der eine Aufgabe erstellt, die Aufgabe lesen, aktualisieren, löschen und ausführen. Ein Benutzer muss über die Berechtigung zum Schreiben von Dateien für eine Aufgabendatei verfügen, um eine Aufgabe zu aktualisieren, die Leseberechtigung für eine Aufgabendatei zu lesen, eine Aufgabe zu löschen, die Berechtigung zum Löschen einer Aufgabe zu löschen und die Berechtigung zum Ausführen einer Aufgabe mithilfe der IRegisteredTask::Run - oder RunEx-Methoden (RegisteredTask.Run und RunEx für Skripting) auszuführen. Mitglieder der Gruppe "Administratoren" oder des SYSTEM-Kontos können alle Aufgaben lesen, aktualisieren, löschen und ausführen. Mitglieder der Gruppe "Benutzer", des LocalService-Kontos und des NetworkService-Kontos können nur die von ihnen erstellten Aufgaben lesen, aktualisieren, löschen und ausführen. Dieses Standardverhalten wird geändert, wenn die DACL der Aufgabendatei geändert wird. In diesem Fall definiert die DACL, welche Benutzer über Die Berechtigung zum Schreiben, Lesen, Ausführen und Löschen von Dateien verfügen. Verwenden Sie zum Festlegen von Berechtigungen für eine Aufgabendatei die IRegisteredTask.SetSecurityDescriptor-Methode (RegisteredTask.SetSecurityDescriptor for scripting), oder legen Sie den Sicherheitsdeskriptor fest, wenn Sie die Aufgabe mit den Methoden RegisterTask oder RegisterTaskDefinition registrieren.

Ein Benutzer muss zusätzlich zu den Lese-/Schreibberechtigungen über die Berechtigung "WriteDAC" verfügen, um eine Aufgabe zu aktualisieren, wenn für die Aufgabenaktualisierung eine Änderung an der DACL für die Aufgabe erforderlich ist.

Informationen zur Aufgabenregistrierung

Über den Taskplaner-

Härtung der Aufgabensicherheit

TaskFolder.RegisterTaskDefinition

ITaskFolder::RegisterTaskDefinition

Principal-Eigenschaft von ITaskDefinition

TASK_LOGON_TYPE