Freigeben über


IScheduledWorkItem::SetAccountInformation-Methode (mstask.h)

[[Diese API kann in nachfolgenden Versionen des Betriebssystems oder Produkts geändert oder nicht verfügbar sein. Verwenden Sie stattdessen die Taskplaner 2.0-Schnittstellen .] ]

Legt den Kontonamen und das Kennwort fest, die zum Ausführen des Arbeitselements verwendet werden.

Syntax

HRESULT SetAccountInformation(
  [in] LPCWSTR pwszAccountName,
  [in] LPCWSTR pwszPassword
);

Parameter

[in] pwszAccountName

Eine Zeichenfolge, die den null-beendeten Namen des Benutzerkontos enthält, in dem das Arbeitselement ausgeführt wird. Um das lokale Systemkonto anzugeben, verwenden Sie die leere Zeichenfolge L""". Verwenden Sie keine andere Zeichenfolge, um das lokale Systemkonto anzugeben. Weitere Informationen finden Sie in den Hinweisen.

[in] pwszPassword

Eine Zeichenfolge, die das Kennwort für das in pwszAccountName angegebene Konto enthält.

Legen Sie diesen Parameter auf NULL fest, wenn das lokale Systemkonto angegeben ist. Wenn Sie das TASK_FLAG_RUN_ONLY_IF_LOGGED_ON-Flag festlegen, können Sie pwszPassword auch für lokale oder Domänenbenutzerkonten auf NULL festlegen. Verwenden Sie die IScheduledWorkItem::SetFlags-Methode , um das Flag festzulegen.

Der Taskplaner speichert Kontoinformationen nur einmal für alle Aufgaben, die dasselbe Konto verwenden. Wenn das Kontokennwort für eine Aufgabe aktualisiert wird, verwenden alle Aufgaben, die dasselbe Konto verwenden, das aktualisierte Kennwort.

Wenn Sie das Kennwort verwendet haben, löschen Sie die Kennwortinformationen, indem Sie die SecureZeroMemory-Funktion aufrufen. Weitere Informationen zum Schutz von Kennwörtern finden Sie unter Behandeln von Kennwörtern.

Rückgabewert

Die SetAccountInformation-Methode gibt einen der folgenden Werte zurück. Beachten Sie, dass Fehler aus diesem Aufruf auch durch den nachfolgenden Aufruf von IPersistFile::Save zurückgegeben werden können.

Rückgabecode BESCHREIBUNG
S_OK
Der Vorgang wurde durchgeführt.
E_ACCESSDENIED
Der Aufrufer verfügt nicht über die Berechtigung zum Ausführen des Vorgangs. Weitere Informationen finden Sie in den Hinweisen.
E_INVALIDARG
Die Argumente sind ungültig.
E_OUTOFMEMORY
Es ist nicht genügend Arbeitsspeicher verfügbar.
SCHED_E_NO_SECURITY_SERVICES
Sicherheitsdienste sind nur unter Windows Server 2003, Windows XP und Windows 2000 verfügbar.
SCHED_E_UNSUPPORTED_ACCOUNT_OPTION
Der pwszPassword-Parameter wurde auf NULL festgelegt, aber das TASK_FLAG_RUN_ONLY_IF_LOGGED_ON-Flag wurde nicht festgelegt.
SCHED_E_ACCOUNT_INFORMATION_NOT_SET
Der pwszPassword-Parameter war falsch. In Windows Server 2003 überprüft der Taskplaner das Kennwort zum Zeitpunkt der Auftragserstellung (während eines Aufrufs von IPersistFile::Save). Beachten Sie, dass im Fall dieses Fehlers die Auftragsdatei weiterhin erstellt wird.

Hinweise

Diese Methode gilt für Windows Server 2003, Windows XP und Windows 2000.

Wenn pwszAccountName das lokale Systemkonto angibt, muss der Aufrufer ein Administrator auf dem lokalen Computer oder eine Anwendung sein, die im lokalen Systemkonto ausgeführt wird. Andernfalls schlägt diese Methode fehl.

Das in pwszPassword angegebene Kennwort wird verwendet, um sich beim Konto anzumelden, wenn das Arbeitselement ausgeführt wird. Ein falsches Kennwort führt zu einem Fehler, wenn das Arbeitselement ausgeführt wird. In Windows Server 2003 überprüft der Taskplaner das Kennwort jedoch zum Zeitpunkt der Auftragserstellung (während eines Aufrufs von IPersistFile::Save).

In der Regel haben Kennwörter ein Ablaufdatum. Wenn Sie Aufgaben planen, die unbegrenzt ausgeführt werden, müssen Sie die Aufgabe aktualisieren, um das neue Kennwort widerzuspiegeln.

Beachten Sie, dass Fehler durch den ersten Aufruf von SetAccountInformation oder den nachfolgenden Aufruf von IPersistFile::Save zurückgegeben werden können.

Der Taskplanerdienst muss ausgeführt werden, damit dieser Aufruf erfolgreich ist. (SetAccountInformation führt zu einem Remoteprozeduraufruf (RPC) für den Taskplanerdienst, aber der RPC-Aufruf wird erst ausgeführt, wenn IPersistFile::Save aufgerufen wird.)

Der E_ACCESSDENIED Rückgabecode wird unter den folgenden Bedingungen zurückgegeben:

  • Der Aufrufer hat keinen Schreibzugriff auf die Datei, die das geplante Arbeitselement darstellt.
  • Das lokale Konto wurde angegeben (pwszAccountName wurde auf L") festgelegt, aber der Aufrufer ist weder Administrator auf dem lokalen Computer noch eine Anwendung, die im lokalen Systemkonto ausgeführt wird.
  • In pwszPassword wurde ein NULL-Kennwort angegeben, aber der Aufrufer ist weder Administrator auf dem lokalen Computer noch wird er im lokalen Systemkonto ausgeführt.
  • Die Anwendung wird unter einem anderen Benutzernamen als der im pwszAccountName-Parameter angegebene Benutzer ausgeführt.
Nachdem Sie die Kontoinformationen für ein Arbeitselement festgelegt haben, müssen Sie IPersistFile::Save aufrufen, um das geänderte Arbeitselementobjekt auf dem Datenträger zu speichern.

Beispiele

Weitere Informationen und ein Beispiel zum Festlegen der Kontoinformationen einer Aufgabe finden Sie unter C/C++-Codebeispiel: Festlegen von Aufgabenkontoinformationen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile mstask.h
Bibliothek Mstask.lib
DLL Mstask.dll

Weitere Informationen

IScheduledWorkItem

IScheduledWorkItem::GetAccountInformation

IScheduledWorkItem::SetFlags