ITaskFolder::RegisterTask-Methode (taskschd.h)

Registriert (erstellt) eine neue Aufgabe im Ordner mithilfe von XML, um die Aufgabe zu definieren.

Syntax

HRESULT RegisterTask(
  [in]           BSTR            path,
  [in]           BSTR            xmlText,
  [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 Vorgangsname. Wenn dieser Wert NULL-ist, wird die Aufgabe im Stammaufgabenordner registriert, und der Vorgangsname ist ein GUID-Wert, der vom Taskplanerdienst erstellt wird.

Ein Vorgangsname kann nicht mit einem Leerzeichen beginnen oder enden. Das Zeichen '.' kann nicht zum Angeben des aktuellen Aufgabenordners und des '.' verwendet werden. Zeichen können nicht verwendet werden, um den übergeordneten Aufgabenordner im Pfad anzugeben.

[in] xmlText

Eine XML-formatierte Definition der Aufgabe.

Die folgenden Themen enthalten Aufgaben, die mithilfe von XML definiert wurden.

[in] flags

Eine TASK_CREATION Konstante.

Wert Bedeutung
TASK_VALIDATE_ONLY
0x1
Der Taskplaner überprüft die Syntax der XML, die den Vorgang beschreibt, registriert jedoch nicht den Vorgang. Diese Konstante kann nicht mit den Werten TASK_CREATE, TASK_UPDATEoder TASK_CREATE_OR_UPDATE kombiniert werden.
TASK_CREATE
0x2
Der Vorgangsplaner registriert den Vorgang als neuen Vorgang.
TASK_UPDATE
0x4
Der Taskplaner registriert den Vorgang als aktualisierte Version eines vorhandenen Vorgangs. Wenn eine Aufgabe mit einem Registrierungstrigger aktualisiert wird, wird die Aufgabe nach dem Update ausgeführt.
TASK_CREATE_OR_UPDATE
0x6
Der Taskplaner registriert den Vorgang entweder als neuen Vorgang oder als aktualisierte Version, wenn der Vorgang bereits vorhanden ist. Entspricht TASK_CREATE | TASK_UPDATE.
TASK_DISABLE
0x8
Der Taskplaner deaktiviert den vorhandenen Vorgang.
TASK_DONT_ADD_PRINCIPAL_ACE
0x10
Der Taskplaner wird daran gehindert, den Zugriffssteuerungseintrag (Access Control Entry, ACE) für den Kontextprinzipal hinzuzufügen. Wenn die ITaskFolder::RegisterTask-Funktion aufgerufen wird, um einen Vorgang zu aktualisieren, fügt der Aufgabenplanerdienst die ACE für den neuen Kontextprinzipal nicht hinzu und entfernt die ACE nicht aus dem alten Kontextprinzipal.
TASK_IGNORE_REGISTRATION_TRIGGERS
0x20
Der Taskplaner erstellt den Vorgang, ignoriert jedoch die Registrierungstrigger im Vorgang. Durch Ignorieren der Registrierungstrigger wird die Aufgabe nicht ausgeführt, wenn sie registriert wird, es sei denn, ein zeitbasierter Trigger bewirkt, dass sie bei der Registrierung ausgeführt wird.

[in] userId

Die Zum Registrieren der Aufgabe verwendeten Benutzeranmeldeinformationen.

Hinweis Wenn der Vorgang als Task Scheduler 1.0-Vorgang definiert ist, verwenden Sie keinen Gruppennamen (anstelle eines bestimmten Benutzernamens) in diesem UserId-Parameter. Ein Vorgang wird als Task Scheduler 1.0-Vorgang definiert, wenn das Versionsattribut des Task-Elements im XML-Code des Vorgangs auf 1.1 festgelegt ist.
 

[in] password

Das Kennwort für die userId, die zum Registrieren der Aufgabe verwendet wurde. Wenn der TASK_LOGON_SERVICE_ACCOUNT Anmeldetyp verwendet wird, muss das Kennwort ein leerer VARIANT Wert wie VT_NULL oder VT_EMPTYsein.

[in] logonType

Ein Wert, der definiert, welche Anmeldetechnik zum Ausführen der registrierten Aufgabe verwendet wird.

Wert Bedeutung
TASK_LOGON_NONE
0
Die Anmeldemethode ist nicht angegeben. Wird für Nicht-NT-Anmeldeinformationen verwendet.
TASK_LOGON_PASSWORD
1
Verwenden Sie ein Kennwort für die Anmeldung beim Benutzer. Das Kennwort muss zur Registrierungszeit angegeben werden.
TASK_LOGON_S4U
2
Verwenden Sie ein vorhandenes interaktives Token, um eine Aufgabe auszuführen. Der Benutzer muss sich mit einem Dienst für die Benutzeranmeldung (S4U) anmelden. Wenn eine S4U-Anmeldung verwendet wird, wird kein Kennwort vom System gespeichert, und es gibt keinen Zugriff auf das Netzwerk oder verschlüsselte Dateien.
TASK_LOGON_INTERACTIVE_TOKEN
3
Der Benutzer muss bereits angemeldet sein. Die Aufgabe wird nur in einer vorhandenen interaktiven Sitzung ausgeführt.
TASK_LOGON_GROUP
4
Gruppenaktivierung. Das groupId- Feld gibt die Gruppe an.
TASK_LOGON_SERVICE_ACCOUNT
5
Gibt an, dass ein lokales System-, Lokale Dienst- oder Netzwerkdienstkonto als Sicherheitskontext zum Ausführen der Aufgabe verwendet wird.
TASK_LOGON_INTERACTIVE_TOKEN_OR_PASSWORD
6
Verwenden Sie zuerst 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 Kennzeichen wird für neue Vorgänge nicht empfohlen, da es weniger zuverlässig als TASK_LOGON_PASSWORDist.

[in, optional] sddl

Der Sicherheitsdeskriptor, der der registrierten Aufgabe zugeordnet ist. Sie können die Zugriffssteuerungsliste (Access Control List, ACL) in der Sicherheitsbeschreibung für eine Aufgabe angeben, um bestimmte Benutzer und Gruppen den Zugriff auf eine Aufgabe zuzulassen oder zu verweigern.

Hinweis Wenn das lokale Systemkonto den Zugriff auf eine Aufgabe verweigert, kann der Taskplanerdienst unerwartete Ergebnisse erzielen.
 

[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.

Zurückgeben von Code/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 hat oder Kennwort mindestens einen Null- und einen Nicht-Null-Wert.
SCHED_S_BATCH_LOGON_PROBLEM
0x0004131C
Die Aufgabe ist registriert, kann jedoch nicht gestartet werden. Batchanmeldungsberechtigungen müssen für den Aufgabenprinzipal aktiviert werden.
SCHED_S_SOME_TRIGGERS_FAILED
0x0004131B
Der Vorgang wird registriert, aber nicht alle angegebenen Trigger starten den Vorgang.

Bemerkungen

Bei einer Aufgabe, die eine Meldungsfeldaktion enthält, wird das Meldungsfeld angezeigt, wenn die Aufgabe aktiviert ist und die Aufgabe einen interaktiven Anmeldetyp aufweist. Wenn Sie den Aufgabenanmeldungstyp als interaktiv festlegen möchten, 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::RegisterTaskDefinitionan.

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

Sie können eine Aufgabe erfolgreich bei einer gruppe registrieren, die im parameter userId angegeben ist und TASK_LOGON_INTERACTIVE_TOKEN im logonType Parameter von ITaskFolder::RegisterTask oder ITaskFolder::RegisterTaskDefinitionangegeben, aber die Aufgabe wird nicht ausgeführt.

Das Übergeben der werte TASK_VALIDATE_ONLY und TASK_IGNORE_REGISTRATION_TRIGGERS an die Flags Parameter ist ein ungültiges Argument.

Wenn eine Aufgabe ein Netzwerk definiert, das nicht in den NetworkSettings- Einstellungen des Vorgangs vorhanden ist, gibt die ITaskFolder::RegisterTask--Methode fehler 0x8000ffff zurück, wenn die Aufgabe registriert ist.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Vista [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2008 [Nur Desktop-Apps]
Zielplattform- Fenster
Header- taskschd.h
Library Taskschd.lib
DLL- Taskschd.dll

Siehe auch

IRegisteredTask-

ITaskFolder-

Aufgabenplaner-