Процесс запуска.NET с более высокими правами

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

Код

        ProcessStartInfo psi;
        try
        {
            psi = new ProcessStartInfo(@"WINZIP32.EXE");

            psi.UseShellExecute = false;
            SecureString pw = new SecureString();
            pw.AppendChar('p');
            pw.AppendChar('a');
            pw.AppendChar('s');
            pw.AppendChar('s');   
            pw.AppendChar('w');
            pw.AppendChar('o');
            pw.AppendChar('r');
            pw.AppendChar('d');
            psi.Password = pw;
            psi.UserName = "administrator";

            Process.Start(psi);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

Winzip запускается, но только с правами пользователя. Я что-то делаю не так или вообще возможно запустить процесс с более высокими правами?

Спасибо!

Править:Вот причина вопроса, может быть, это поможет понять, что мне действительно нужно.

Например, я использовал winzip, чтобы получить общее представление о том, что не так с моим кодом. Проблема в том, что наша компания использует 2 версии программы. Но перед запуском любой из версий нужно импортировать dll файл с regsvr32(с правами администратора). Теперь я хотел бы написать программу, которая позволяет пользователю выбирать версию, импортировать dll и запускать правильное приложение.

8
задан KenavR 16 April 2012 в 07:55
поделиться