IScheduledWorkItem::SetAccountInformation 方法 (mstask.h)
[[此 API 可能會在後續版本的操作系統或產品中變更或無法使用。 請改用 工作排程器 2.0 介面 。] ]
設定用來執行 工作項目的帳戶名稱和密碼。
語法
HRESULT SetAccountInformation(
[in] LPCWSTR pwszAccountName,
[in] LPCWSTR pwszPassword
);
參數
[in] pwszAccountName
字串,包含將執行工作專案之用戶帳戶的 Null 終止名稱。 若要指定本機系統帳戶,請使用空字串 L“” 請勿使用任何其他字串來指定本機系統帳戶。 如需詳細資訊,請參閱<備註>。
[in] pwszPassword
字串,包含 pwszAccountName 中指定的帳戶密碼。
如果指定本機系統帳戶,請將此參數設定為 NULL 。 如果您設定 TASK_FLAG_RUN_ONLY_IF_LOGGED_ON 旗標,您也可以針對本機或網域用戶帳戶將 pwszPassword 設定為 NULL 。 使用 IScheduledWorkItem::SetFlags 方法來設定旗標。
工作排程器只會針對所有使用相同的帳戶的工作儲存帳戶資訊一次。 如果帳戶密碼已更新一項工作,則使用該相同帳戶的所有工作都會使用更新的密碼。
當您使用密碼完成時,請呼叫 SecureZeroMemory 函式 來清除密碼資訊。 如需保護密碼的詳細資訊,請參閱 處理密碼。
傳回值
SetAccountInformation 方法會傳回下列其中一個值。 請注意,此呼叫的錯誤也可能由 後續呼叫 IPersistFile::Save 傳回。
傳回碼 | 描述 |
---|---|
|
作業成功。 |
|
呼叫端沒有執行作業的許可權。 如需詳細資訊,請參閱<備註>。 |
|
自變數無效。 |
|
記憶體不足。 |
|
安全性服務僅適用於 Windows Server 2003、Windows XP 和 Windows 2000。 |
|
pwszPassword 參數已設定為 NULL,但未設定TASK_FLAG_RUN_ONLY_IF_LOGGED_ON旗標。 |
|
pwszPassword 參數不正確。 在 Windows Server 2003 中,工作排程器會在呼叫 IPersistFile::Save) 期間,在建立作業時驗證密碼 (。 請注意,如果發生此錯誤,仍會建立作業檔案。 |
備註
此方法適用於 Windows Server 2003、Windows XP 和 Windows 2000。
如果 pwszAccountName 指定本機系統帳戶,則呼叫端必須是本機電腦上的系統管理員,或是在本機系統帳戶中執行的應用程式。 如果沒有,這個方法將會失敗。
pwszPassword 中指定的密碼是用來在執行工作專案時登入帳戶。 執行工作專案時,不正確的密碼會導致錯誤。 不過,在 Windows Server 2003 中,工作排程器會在呼叫 IPersistFile::Save) 期間,驗證作業建立時的密碼 (。
密碼通常會有到期日。 如果您無限期地排程執行的工作,您必須更新工作以反映新的密碼。
請注意,初始呼叫 SetAccountInformation 或後續呼叫 IPersistFile::Save 可以傳回錯誤。
工作排程器服務必須執行,此呼叫才能成功。 (SetAccountInformation 會導致遠端過程呼叫 (RPC) 至工作排程器服務,但在 呼叫 IPersistFile::Save 之前不會進行 RPC 呼叫。)
E_ACCESSDENIED傳回碼會在下列情況下傳回:
- 呼叫端沒有代表已排程工作專案的檔案寫入許可權。
- 已指定本機帳戶 (pwszAccountName 設定為 L“”“) ,但呼叫端不是本機電腦或本機系統帳戶中執行的應用程式。
- pwszPassword 中指定了 NULL 密碼,但呼叫者不是本機電腦上的系統管理員,也不會在本機系統帳戶中執行。
- 應用程式是以與 pwszAccountName 參數中指定的使用者不同的使用者名稱執行。
範例
如需詳細資訊以及如何設定工作的帳戶資訊範例,請參閱 C/C++ 程式代碼範例:設定工作帳戶資訊。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | mstask.h |
程式庫 | Mstask.lib |
Dll | Mstask.dll |