Выезд Runas
runas /user:somedomain\someuser "cmd /c start c:\somedocument.pdf"
Он расположен на C:\Windows\System32\runas.exe
Чтобы открыть это из приложения C #, вы можете использовать Process.Start
, ссоответствующие флаги.
Редактировать
Ну, вы можете полностью отказаться от использования Runas
, так как Process.Start
может выполнять ту же работу и при этом разрешать вамчтобы указать пароль, какой вам нравится (внутренне или через жесткий код).
Просто используйте cmd.exe /c start <pathToFile>
, чтобы запустить файл через оболочку с соответствующей программой:
string cmdPath = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.System),
"cmd.exe");
string workingDirectory = @"C:\users\public";
string pathToFile = Path.Combine(workingDirectory, "somefile.png");
string arguments = string.Format("/c start {0}", pathToFile);
var password = new SecureString();
foreach (char c in "usersPassword")
password.AppendChar(c);
var processStartInfo = new ProcessStartInfo()
{
FileName = cmdPath,
Arguments = arguments,
WorkingDirectory = workingDirectory,
UserName = "TestUser",
Domain = Environment.MachineName, // Could use domain
Password = password,
UseShellExecute = false,
};
Process.Start(processStartInfo);