Tag: 管理员权限

.NET Start Process具有更高的权限

我正在尝试通过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个版本的程序。 但在开始任何版本之前,您需要使用regsvr32(具有管理员权限)导入dll文件。 现在我想编写一个程序,让用户选择版本,导入dll并启动正确的应用程序。

运行提升过程

我正在尝试使用以下代码运行cmd命令: ProcessStartInfo cmd = new ProcessStartInfo(“cmd.exe”); cmd.RedirectStandardInput = true; cmd.RedirectStandardOutput = true; cmd.RedirectStandardError = true; cmd.UseShellExecute = false; cmd.CreateNoWindow = true; cmd.WindowStyle = ProcessWindowStyle.Hidden; Process exec = Process.Start(cmd); exec.StandardInput.WriteLine(“sc create \”BaliService\” binPath= \”{0}\\BaliService.exe\””, Directory.GetCurrentDirectory()); 此命令需要管理员privelages,如果我以管理员身份运行cmd并键入命令它完美运行但不是当我以管理员身份运行此应用程序时。 我已经添加了 每次打开exe时提示uac的清单文件。 我已经看到了关于此的多个问题,他们似乎都建议在提升的应用程序下运行的任何进程将拥有相同的权限,但这对我不起作用。 我试过cmd.Verb = “runas”; 但没有骰子。