ITaskFolder::RegisterTaskDefinition-Methode (taskschd.h)

Registriert (erstellt) einen Task an einem angegebenen Speicherort mithilfe der ITaskDefinition-Schnittstelle , um einen Vorgang zu definieren.

Syntax

HRESULT RegisterTaskDefinition(
  [in]           BSTR            path,
  [in]           ITaskDefinition *pDefinition,
  [in]           LONG            flags,
  [in]           VARIANT         userId,
  [in]           VARIANT         password,
  [in]           TASK_LOGON_TYPE logonType,
  [in, optional] VARIANT         sddl,
  [out]          IRegisteredTask **ppTask
);

Parameter

[in] path

Der Name der Aufgabe. Wenn dieser Wert NULL ist, wird der Task im Stammtaskordner registriert, und der Vorgangsname ist ein GUID-Wert, der vom Taskplanerdienst erstellt wird.

Ein Aufgabenname kann nicht mit einem Leerzeichen beginnen oder enden. Das Zeichen "." kann nicht verwendet werden, um den aktuellen Aufgabenordner und den "." anzugeben. Zeichen können nicht verwendet werden, um den übergeordneten Aufgabenordner im Pfad anzugeben.

[in] pDefinition

Die Definition der registrierten Aufgabe.

[in] flags

Eine TASK_CREATION Konstante.

Wert Bedeutung
TASK_VALIDATE_ONLY
0x1
Der Taskplaner überprüft die Syntax des XML-Codes, das die Aufgabe beschreibt, registriert die Aufgabe jedoch nicht. Diese Konstante kann nicht mit den werten TASK_CREATE, TASK_UPDATE oder TASK_CREATE_OR_UPDATE kombiniert werden.
TASK_CREATE
0x2
Der Taskplaner registriert die Aufgabe als neue Aufgabe.
TASK_UPDATE
0x4
Der Taskplaner registriert den Task als aktualisierte Version einer vorhandenen Aufgabe. Wenn eine Aufgabe mit einem Registrierungstrigger aktualisiert wird, wird der Task nach dem Update ausgeführt.
TASK_CREATE_OR_UPDATE
0x6
Der Taskplaner registriert den Task entweder als neue Aufgabe oder als aktualisierte Version, wenn der Task bereits vorhanden ist. Entspricht TASK_CREATE | TASK_UPDATE.
TASK_DISABLE
0x8
Der Taskplaner deaktiviert den vorhandenen Task.
TASK_DONT_ADD_PRINCIPAL_ACE
0x10
Der Taskplaner wird am Hinzufügen des Zugriffssteuerungseintrags (ACE) für den Kontextprinzipal gehindert. Wenn die ITaskFolder::RegisterTaskDefinition-Funktion mit diesem Flag aufgerufen wird, um eine Aufgabe zu aktualisieren, fügt der Taskplanerdienst den ACE für den neuen Kontextprinzipal nicht hinzu und entfernt den ACE nicht aus dem alten Kontextprinzipal.
TASK_IGNORE_REGISTRATION_TRIGGERS
0x20
Der Taskplaner erstellt den Task, ignoriert jedoch die Registrierungstrigger im Task. Durch Ignorieren der Registrierungstrigger wird der Task nicht ausgeführt, wenn er registriert wird, es sei denn, ein zeitbasierter Trigger bewirkt, dass er bei der Registrierung ausgeführt wird.

[in] userId

Die Benutzeranmeldeinformationen, die zum Registrieren der Aufgabe verwendet werden. Falls vorhanden, haben diese Anmeldeinformationen Vorrang vor den Anmeldeinformationen, die im Aufgabendefinitionsobjekt angegeben sind, auf das der pDefinition-Parameter verweist.

Hinweis Wenn der Task als Taskplaner 1.0-Aufgabe definiert ist, verwenden Sie in diesem userId-Parameter keinen Gruppennamen (anstelle eines bestimmten Benutzernamens). Ein Task wird als Taskplaner 1.0-Aufgabe definiert, wenn die Kompatibilitätseigenschaft in den Einstellungen der Aufgabe auf TASK_COMPATIBILITY_V1 festgelegt ist.
 

[in] password

Das Kennwort für die Benutzer-ID, die zum Registrieren der Aufgabe verwendet wird. Wenn der TASK_LOGON_SERVICE_ACCOUNT Anmeldetyp verwendet wird, muss das Kennwort ein leerer VARIANT-Wert sein, z. B. VT_NULL oder VT_EMPTY.

[in] logonType

Definiert, welche Anmeldetechnik zum Ausführen der registrierten Aufgabe verwendet wird.

Wert Bedeutung
TASK_LOGON_NONE
0
Die Anmeldemethode wird nicht angegeben. Wird für Nicht-NT-Anmeldeinformationen verwendet.
TASK_LOGON_PASSWORD
1
Verwenden Sie ein Kennwort für die Protokollierung für den Benutzer. Das Kennwort muss zum Zeitpunkt der Registrierung angegeben werden.
TASK_LOGON_S4U
2
Verwenden Sie ein vorhandenes interaktives Token, um einen Task auszuführen. Der Benutzer muss sich mit einer S4U-Anmeldung (Service for User) anmelden. Wenn eine S4U-Anmeldung verwendet wird, wird kein Kennwort vom System gespeichert, und es gibt keinen Zugriff auf das Netzwerk oder auf verschlüsselte Dateien.
TASK_LOGON_INTERACTIVE_TOKEN
3
Der Benutzer muss bereits angemeldet sein. Der Task wird nur in einer vorhandenen interaktiven Sitzung ausgeführt.
TASK_LOGON_GROUP
4
Gruppenaktivierung. Das Feld groupId gibt die Gruppe an.
TASK_LOGON_SERVICE_ACCOUNT
5
Gibt an, dass ein Lokales System-, lokales Dienst- oder Netzwerkdienstkonto als Sicherheitskontext zum Ausführen der Aufgabe verwendet wird.
TASK_LOGON_INTERACTIVE_TOKEN_OR_PASSWORD
6
Verwenden Sie zunächst das interaktive Token. Wenn der Benutzer nicht angemeldet ist (kein interaktives Token verfügbar), wird das Kennwort verwendet. Das Kennwort muss angegeben werden, wenn eine Aufgabe registriert wird. Dieses Flag wird für neue Aufgaben nicht empfohlen, da es weniger zuverlässig ist als TASK_LOGON_PASSWORD.

[in, optional] sddl

Der Sicherheitsdeskriptor, der der registrierten Aufgabe zugeordnet ist. Sie können die Zugriffssteuerungsliste (Access Control List, ACL) im Sicherheitsdeskriptor für eine Aufgabe angeben, um bestimmten Benutzern und Gruppen den Zugriff auf eine Aufgabe zu erlauben oder zu verweigern.

Hinweis Wenn dem Lokalen Systemkonto der Zugriff auf eine Aufgabe verweigert wird, kann der Aufgabenplanungsdienst unerwartete Ergebnisse erzeugen.
 

[out] ppTask

Eine IRegisteredTask-Schnittstelle , die die neue Aufgabe darstellt.

Übergeben Sie einen Verweis auf einen NULL-IRegisteredTask-Schnittstellenzeiger. Das Verweisen auf einen Nicht-NULL-Zeiger kann zu einem Speicherverlust führen, da der Zeiger überschrieben wird.

Rückgabewert

Diese Methode kann einen dieser Werte zurückgeben.

Rückgabecode/-wert BESCHREIBUNG
S_OK
0x0
Der Vorgang wurde erfolgreich abgeschlossen.
E_ACCESS_DENIED
0x80070005
Der Zugriff wird verweigert, um eine Verbindung mit dem Aufgabenplanerdienst herzustellen.
E_OUTOFMEMORY
0x8007000e
Die Anwendung verfügt nicht über genügend Arbeitsspeicher, um den Vorgang abzuschließen, oder der Benutzer oder das Kennwort verfügt über mindestens einen NULL - und einen Ungleich-NULL-Wert .
SCHED_S_BATCH_LOGON_PROBLEM
0x0004131C
Die Aufgabe ist registriert, kann aber möglicherweise nicht gestartet werden. Batchanmeldungsberechtigungen müssen für den Aufgabenprinzipal aktiviert sein.
SCHED_S_SOME_TRIGGERS_FAILED
0x0004131B
Der Task ist registriert, aber nicht alle angegebenen Trigger starten den Task.

Hinweise

Bei einer Aufgabe, die eine Meldungsfeldaktion enthält, wird das Meldungsfeld angezeigt, wenn die Aufgabe aktiviert ist und der Vorgang über einen interaktiven Anmeldetyp verfügt. Um den Vorgangsanmeldungstyp auf interaktiv festzulegen, geben Sie TASK_LOGON_INTERACTIVE_TOKEN oder TASK_LOGON_GROUP in der LogonType-Eigenschaft des Aufgabenprinzipals oder im logonType-Parameter von ITaskFolder::RegisterTask oder ITaskFolder::RegisterTaskDefinition an.

Nur ein Mitglied der Gruppe Administratoren kann eine Aufgabe mit einem Starttrigger erstellen.

Sie können eine Aufgabe erfolgreich mit einer Gruppe registrieren, die im userId-Parameter angegeben ist und TASK_LOGON_INTERACTIVE_TOKEN im logonType-Parameter von ITaskFolder::RegisterTask oder ITaskFolder::RegisterTaskDefinition angegeben, aber der Task wird nicht ausgeführt.

Das Gemeinsame Übergeben der werte TASK_VALIDATE_ONLY und TASK_IGNORE_REGISTRATION_TRIGGERS an den flags-Parameter ist ein ungültiges Argument.

Die ITaskFolder::RegisterTaskDefinition-Methode gibt einen Fehler 80070534 zurück, wenn sie vom Systemkonto aufgerufen wird, wobei der Benutzerparametergleich NULL, der Kennwortparametergleich NULL und der logonType-Parameter gleich TASK_LOGON_SERVICE_ACCOUNT ist.

Wenn ein Task ein Netzwerk definiert, das in den NetworkSettings-Einstellungen der Aufgabe nicht vorhanden ist, gibt die ITaskFolder::RegisterTaskDefinition-Methode beim Registrieren der Aufgabe einen Fehler 0x8000ffff zurück.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile taskschd.h
Bibliothek Taskschd.lib
DLL Taskschd.dll

Weitere Informationen

IRegisteredTask

ITaskFolder

Aufgabenplanung