繁体   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