Вопрос

Я должен запустить программу командной строки с System.diagnostics.process.start () и запустить ее в качестве администратора.

Это действие также будет запускаться запланированной задачей каждый день.

Это было полезно?

Решение 5

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

Другие советы

Я просто пытаюсь использовать:

Process p = new Process();
p.StartInfo.Verb = "runas";

Это работает нормально, если я запускаю свою программу в качестве администратора, но когда запланированная задача запускает его, не принимает во внимание «Руна», я думаю.

Лучшим безопасным вариантом для запуска процесса с входом в систему и паролем является использование класса Securestring для шифрования пароля. Здесь образец кода:

string pass = "yourpass";
string name ="login";
SecureString str;
ProcessStartInfo startInfo = new ProcessStartInfo();
char[] chArray = pass.ToCharArray();
fixed (char* chRef = chArray)
{
    str = new SecureString(chRef, chArray.Length);
}
startInfo.Password = str;
startInfo.UserName = name;
Process.Start(startInfo);

Вы должны разрешить небезопасному коду в свойствах вашего проекта.

Надеюсь, это помощь.

Если вы используете запланированные задачи, вы можете установить пользователя и пароль для выполнения задачи.

Используйте учетные данные администратора на задаче, и все будет в порядке.

С Process.Start, вам нужно предоставить UserName и Password для ProcessStartInfo:

Process p = new Process("pathto.exe");
p.StartInfo.UserName = "Administrator";
p.StartInfo.Password = "password";
p.Start();

Имейте в виду, что хранение пароля в прозрачном тексте в программе никогда не бывает безопасным, если кто -то может просматривать приложение и посмотреть, что в нем. Использование Securestring для преобразования хранимого пароля в пароль с защитой не делает его более безопасным, поскольку прозрачный текстовый пароль все еще будет присутствовать.

Лучший способ использовать SecureString - пройти один символ для преобразования в какое-то время, который не требует полного незашифрованного пароля в любом месте памяти или на жестком диске. После того, как этот персонаж преобразуется, программа должна забыть ее, а затем перейти к следующему.

Это может быть сделано, я думаю только только путем передачи персонажей для перевода, поскольку они набираются в консоли пользователем.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top