As long as the user is a member of the Administrators group, this will launch an elevated process. You will get the UAC prompt.
var processInfo = new System.Diagnostics.ProcessStartInfo
{
Verb = "runas",
LoadUserProfile = true,
FileName = "powershell.exe",
Arguments = "Start-sleep -seconds 10",
RedirectStandardOutput = false,
UseShellExecute = true,
CreateNoWindow = true
};
var p = System.Diagnostics.Process.Start(processInfo);
You can't redirect stdout, so if you need to get the results from the script, the easiest method would be build a temporary .ps1 script file and have it write to a log file which your C# code would then read.