Чтобы разрешить запуск моего приложения с правами администратора при входе пользователя в систему, я использую задачу в планировщике задач.И это прекрасно работает.В основном.Теперь я получаю сообщения об ошибках, в которых говорится, что это не удается:
rootFolder->RegisterTaskDefinition( _bstr_t(name.toWideCharPointer()), task,
TASK_CREATE_OR_UPDATE, _variant_t(L"Builtin\\Administrators"), _variant_t(),
TASK_LOGON_GROUP, _variant_t(L""), ®isteredTask) -> 0x80070534
0x80070534, по-видимому, означает «Сопоставление имен учетных записей и идентификаторов безопасности не выполнено».Я следую (в значительной степени дословно) примеру: 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""),
®isteredTask)
Убедитесь, что приложение выполняется с повышенными привилегиями, в противном случае этот вызов завершится ошибкой.