Запуск отдельной программы в качестве учетной записи локального администратора с помощью Process.Start - PullRequest
0 голосов
/ 27 января 2012

У нас есть часть программного обеспечения, используемая в нашем бизнесе, для работы которой требуются права администратора. Однако сотрудники не имеют доступа к учетным записям с правами администратора. Это в среде Windows 7.

Мы настроили учетные записи локального администратора на необходимых компьютерах через GPO. Цель программного обеспечения, которое я создаю, - запустить программное обеспечение, для которого требуются права администратора в качестве локальной учетной записи администратора.

Пока что программное обеспечение работает правильно, поскольку оно запускает программное обеспечение как учетную запись, но все равно выдает ошибки, которые оно выдает, когда у него нет прав администратора. Если вы щелкнете правой кнопкой мыши и запустите программу и введете данные учетной записи вручную, она будет работать нормально.

SecureString pwd = new SecureString();
foreach (char c in "somepassword") { pwd.AppendChar(c); }
var psi = new ProcessStartInfo
{
    FileName = location,
    UserName = "localadminaccountname",
    Domain = Environment.MachineName,
    Password = pwd,
    UseShellExecute = false,
    Verb = "runas"
};
try
{
    Process.Start(psi);
}

Существует оператор перехвата исключений с отчетом об ошибках, включенным в код. При вызове Process.Start (psi) не возникает никаких исключений. (обновлено)

Спасибо.

EDIT В корпоративной сборке Windows 7 для контроля доступа пользователя установлено значение «Никогда не уведомлять», поэтому при вызове Process.Start (psi) всплывающее окно UAC не отображается.

Ответы [ 2 ]

0 голосов
/ 03 декабря 2012

Вы пробовали установить значение «Загрузить профиль пользователя» в true для пула приложений IIS? У меня была похожая ситуация. Это сработало для меня.

См. Дополнительную информацию: Исключения безопасности в ASP.NET и опция загрузки профиля пользователя в IIS 7.5

0 голосов
/ 27 января 2012

Если для UAC установлено значение «Никогда не уведомлять», то оно отключено - пользователь работает с максимальным набором привилегий.

Это означает, что если пользователь является администратором, использовать глагол «runas» не нужно.Это также означает, что, если пользователь НЕ является учетной записью администратора, возможно, что ваше приложение может по-прежнему не работать (потому что пользователь не может подняться, а OTS (через плечо) отключен).

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