Verb
に RunAs
を設定して、UseShellExecute
を true
にする。
Hidden
が設定されている時に、WaitForExit
で待機すると処理が終了しない可能性があるので注意。
public static class Cmd { public static void CreateSymbolicLink(string src, string dest) { Execute($"/k mklink /D \"{dest}\" \"{src}\""); } private static void Execute(string args, bool hidden = true) { var startInfo = new System.Diagnostics.ProcessStartInfo(); startInfo.FileName = "cmd.exe"; startInfo.Arguments = args; startInfo.Verb = "RunAs"; startInfo.UseShellExecute = true; if (hidden) startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; System.Diagnostics.Process.Start(startInfo); } }