ITaskFolder::RegisterTaskDefinition 方法 (taskschd.h)
使用 ITaskDefinition 介面來定義工作,在指定的位置註冊工作。
語法
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
);
參數
[in] path
工作的名稱。 如果此值 NULL,工作將會在根工作資料夾中註冊,而工作名稱將是工作排程器服務所建立的 GUID 值。
工作名稱不能以空格字元開頭或結尾。 '.' 字元無法用來指定目前的工作資料夾和 '.'。 字元無法用來指定路徑中的父工作資料夾。
[in] pDefinition
已註冊工作的定義。
[in] flags
TASK_CREATION 常數。
[in] userId
用來註冊工作的用戶認證。 如果存在,這些認證會優先於 pDefinition 參數所指向之工作定義物件中指定的認證。
[in] password
用來註冊工作之userId的密碼。 使用TASK_LOGON_SERVICE_ACCOUNT登入類型時,密碼必須是空 VARIANT 值,例如 VT_NULL 或 VT_EMPTY。
[in] logonType
定義用來執行已註冊工作的登入技術。
[in, optional] sddl
與已註冊工作相關聯的安全性描述項。 您可以在工作的安全性描述元中指定訪問控制清單 (ACL),以允許或拒絕特定使用者和群組存取工作。
[out] ppTask
代表新工作的 IRegisteredTask 介面。
傳入 NULLIRegisteredTask 介面指標的參考。 參考非NULL 指標可能會導致記憶體流失,因為將會覆寫指標。
傳回值
這個方法可以傳回其中一個值。
傳回碼/值 | 描述 |
---|---|
|
作業已順利完成。 |
|
拒絕存取以連線到工作排程器服務。 |
|
應用程式沒有足夠的記憶體來完成作業,或 使用者 或 密碼 至少有一個 null,以及一個非null 值。 |
|
工作已註冊,但可能無法啟動。 必須啟用工作主體的批次登入許可權。 |
|
工作已註冊,但並非所有指定的觸發程式都會啟動工作。 |
言論
針對包含消息框動作的工作,如果工作已啟用且工作具有互動式登入類型,則會顯示消息框。 若要將工作登入類型設定為互動式,請在工作主體的 LogonType 屬性中,或在 ITaskFolder::RegisterTask 或 ITaskFolder::RegisterTaskDefinition的 logonType 參數中指定 TASK_LOGON_INTERACTIVE_TOKEN 或 TASK_LOGON_GROUP。
只有 Administrators 群組的成員可以使用開機觸發程式建立工作。
您可以成功向 userId 參數中指定的群組註冊工作,TASK_LOGON_INTERACTIVE_TOKEN 並在 ITaskFolder::RegisterTaskFolder::RegisterTask 或 ITaskFolder::RegisterTaskDefinition的 logonType 指定,但工作將不會執行。
將TASK_VALIDATE_ONLY和TASK_IGNORE_REGISTRATION_TRIGGERS值一起傳遞至 旗標 參數是無效的自變數。
ITaskFolder::RegisterTaskDefinition 方法會在系統帳戶呼叫時傳回錯誤80070534,使用者 參數等於 NULL、password 參數等於 NULL,以及等於 TASK_LOGON_SERVICE_ACCOUNT 的 logonType 參数。
如果工作定義不存在於工作之 NetworkSettings 設定中的網路,ITaskFolder::RegisterTaskDefinition 方法會在登錄工作時傳回錯誤0x8000ffff。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
支援的最低伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | taskschd.h |
連結庫 | Taskschd.lib |
DLL | Taskschd.dll |