Запуск процесса от имени другого пользователя в OnAfterInstall запрещает доступ - PullRequest
0 голосов
/ 22 января 2010

Я пытаюсь запустить файл .bat как последний шаг в OnAfterInstall в контексте другого пользователя. Я делаю это, используя перегрузку Process.Start с именем пользователя, доменом и паролем в качестве входных данных. Это работает нормально, если я не проверяю «Все» в установке. Если я выбрал «Все», я получаю отказ в доступе с тем же пользователем (администратором). Если я запускаю взнос, используя метод .start, используя только имя процесса, он работает нормально.

Чтобы проверить это, я создал приложение Windows froms, которое запускает процесс таким же образом после установки, используя «Все», и оно работает нормально.

Кто-нибудь знает, почему я не могу получить доступ к файлу в OnAfterInstall с выбранным «Все», используя другой пользовательский контекст?

1 Ответ

0 голосов
/ 22 января 2010

Скорее всего, когда вы проверяете всех, кого говорите программе установки, ей не нужно повышать разрешения, поэтому они не запрашивают их. Даже когда вы работаете в качестве администратора в Windows Vista или 7, ваш маркер процесса принадлежит пользователю до тех пор, пока UAC не возвысит вас. Есть набор политик, которые вы должны иметь возможность вызывать createprocessasuser , что и происходит ниже. Раздайте всем правила, относящиеся к вышеуказанному API, и посмотрите, работает ли он.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...