В настоящее время я работаю над инструментом "Automated Run As". Его цель
помощь админам, которые, как и я, должны дать пользователям возможность выполнить
одна или две программы в качестве администратора и хотели бы сделать это без
необходимость сдать пароль администратора.
Итак, я занимаюсь разработкой для Vista, и я только что получил небольшое доказательство
прототип концепции, который запускает calc.exe от имени другого пользователя, используя
ProcessStartInfo и Process. Это работало нормально, когда я выполнил это как
сам (довольно бессмысленное упражнение, я должен признать), но когда я создал
новый пользователь и попытался запустить его, как он, я наткнулся на
Win32Exception с жалобой на то, что имя каталога неверно, родное
код ошибки 267. Я был непреклонно сбит с толку, так как знал, что не поставляется
имя каталога, которое может быть недействительным. Затем я проверил код на XP
машина и все заработало!
Я начал гуглить на нем безрезультатно, многие сообщения об этой ошибке, но
нет окончательного решения, или в разных контекстах. Наконец, после
хотя меня осенило, я не указывал WorkingDirectory
свойство класса ProcessStartInfo, как только я добавлю строки
FileInfo fileInfo = новый FileInfo (путь); startInfo.WorkingDirectory =
fileInfo.DirectoryName;
Для моего кода было разрешено запускать код, отличный от входа в систему
пользователь. ...