簡體   English   中英

嘗試使用任務計划程序(Win7)注冊任務時出錯

[英]Error when trying to register a task with task scheduler (Win7)

為了使我的應用程序能夠在用戶登錄時使用管理員權限啟動,我在任務調度程序中使用了一個任務。 它工作正常。 大多。 現在我收到了錯誤報告,說這失敗了:

rootFolder->RegisterTaskDefinition( _bstr_t(name.toWideCharPointer()), task,              
   TASK_CREATE_OR_UPDATE, _variant_t(L"Builtin\\Administrators"), _variant_t(), 
   TASK_LOGON_GROUP, _variant_t(L""), &registeredTask) -> 0x80070534

0x80070534似乎意味着“帳戶名和安全ID之間沒有映射”。 我正在關注(幾乎是逐字逐句)這個例子: http//msdn.microsoft.com/en-us/library/aa381911 (v = VS.85) .aspx

想法出了什么問題,以及如何解決? 應用程序具有清單集,因此用戶需要管理員才能運行它。

問題:“Builtin \\\\ Administrators”組,它是語言相關的,不是嗎? 我認為有問題的用戶可能有一個非英語的Windows 7.如果是這樣,我想它會更好地指定“S-1-5-32-544”而不是( http://support.microsoft.com/kb / 243330

更新:所以顯式調用如下:

rootFolder->RegisterTaskDefinition(
            _bstr_t(name.toWideCharPointer()),
            task,
            TASK_CREATE_OR_UPDATE,
            _variant_t(L"S-1-5-32-544"),    // Language independent "BUILTIN\Administrators" 
            _variant_t(),
            TASK_LOGON_GROUP,
            _variant_t(L""),
            &registeredTask)

確保使用提升的權限執行應用程序,否則該調用將失敗。

問題確實存在於參數_variant_t(L"Builtin\\\\Administrators") ,該參數被硬編碼為英文版的Windows。 通過使用語言不可知的安全標識符“S-1-5-32-544”( http://support.microsoft.com/kb/243330 ),問題得以解決。

更新:所以顯式調用如下:

rootFolder->RegisterTaskDefinition(
            _bstr_t(name.toWideCharPointer()),
            task,
            TASK_CREATE_OR_UPDATE,
            _variant_t(L"S-1-5-32-544"),    // Language independent "BUILTIN\Administrators" 
            _variant_t(),
            TASK_LOGON_GROUP,
            _variant_t(L""),
            &registeredTask)

確保使用提升的權限執行應用程序,否則調用將失敗。

花了一些時間后,我已經看到需要更多修改而不僅僅是_variant_t(L"S-1-5-32-544")才能使這個“登錄觸發示例(C ++)”示例工作。

所有細節都可以在這個答案中找到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM