SunnyGajjar14 Ответов: 2

System.componentmodel.win32exception: "запрошенная операция требует повышения прав"


Я попытался запустить ниже код в VS-2017 и Win-10.

Что я уже пробовал:

System.Diagnostics.Process proc = new System.Diagnostics.Process();
            System.Security.SecureString ssPwd = new System.Security.SecureString();
            proc.StartInfo.UseShellExecute = false;
            proc.StartInfo.Verb = "runas";
            proc.StartInfo.FileName = Path.Combine(Path.GetDirectoryName(@"C:\Users\ABC\Downloads\"), "ccsetup567.exe"); ;
            proc.StartInfo.UserName = "Admin";
            string password = "admin";
            for (int x = 0; x < password.Length; x++)
            {
                ssPwd.AppendChar(password[x]);
            }
            password = "";
            proc.StartInfo.Password = ssPwd;
            proc.Start();

2 Ответов

Рейтинг:
1

Sandeep Mewara

Быстро оглядевшись вокруг, я узнал, что глагол распознается только тогда, когда UseShellExecute = true. Итак, попробуйте с опцией:

UseShellExecute = true


SunnyGajjar14

Объект Process должен иметь свойство UseShellExecute, равное false, чтобы запустить процесс от имени пользователя.'

Sandeep Mewara

Что это значит? Ваш код должен запустить его как администратор.

Sandeep Mewara

Повышенные привилегии не работают с UseShellExecute=false

Цитата:
ProcessStartInfo.Глагол будет иметь эффект только в том случае, если процесс запускается с помощью ShellExecuteEx(). Которая требует значение свойства useshellexecute = истина.

SunnyGajjar14

Нет, он не запускается как администратор. Мне нужно, что когда пользователь Стандер запустите этот код, имя пользователя admin и пароль из кода и запустить файл EXE без прав администратора. Возможно ли это?

Рейтинг:
0

Richard MacCutchan

В документации это объясняется:

Цитата:
Примечание

Этот класс содержит требование связи и требование наследования на уровне класса, которое применяется ко всем членам. Исключение SecurityException возникает, когда либо непосредственный вызывающий объект, либо производный класс не имеют разрешения полного доверия. Дополнительные сведения о требованиях безопасности см. В разделе Требования к ссылкам.


Поэтому вам нужно работать с правами администратора.


SunnyGajjar14

Я запускаю его с именем пользователя и паролем администратора. Но все равно это не работает.

Richard MacCutchan

Я думаю, что программа, возможно, должна иметь повышенные привилегии, установленные в ее манифесте.

SunnyGajjar14

Это тоже я подал заявку но когда я бегу за stand user в то время мне нужно бежать от имени администратора что я не хочу делать

Richard MacCutchan

Ну, у вас нет выбора, вот как работает Windows.

0x01AA

Я ненавижу 1 голос без комментариев, есть 5.

Richard MacCutchan

Спасибо.