понедельник, 25 апреля 2011 г.

Проблема с запуском программы от другого пользователя

При запуске программа (запущенная от пользователя user1) должна инициировать запуск другой программы от имени другого пользователя (user2). Сеть доменная. При запуске появляется ошибка
RunAppAsUser error = This account does not have one (or more) of the following privileges: "Замена маркера уровня процесса"(SeAssignPrimaryTokenPrivilege)
"Настройка квот памяти для процесса"(SeIncreaseQuotaPrivilege)

Для лечения идём на http://www.microsoft.com/Downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en и скачиваем Resource Kit (точнее нам нужна одна маленькая программа из всего набора - ntrights)

Устанавливаем. Запускаем командную строку. Переходим в каталог установки. Теперь вводим 4 команды

C:\ResKit>ntrights -u user1 +r SeAssignPrimaryTokenPrivilege
 Granting SeAssignPrimaryTokenPrivilege to user1 ... successful

C:\ResKit>ntrights -u user1 +r SeIncreaseQuotaPrivilege
 Granting SeIncreaseQuotaPrivilege to user1 ... successful

C:\ResKit>ntrights -u user2 +r SeIncreaseQuotaPrivilege
 Granting SeIncreaseQuotaPrivilege to user2 ... successful

C:\ResKit>ntrights -u user2 +r SeAssignPrimaryTokenPrivilege
 Granting SeAssignPrimaryTokenPrivilege to user2 ... successful