如何从作为管理员用户运行的C#代码重新启动IIS?

通常(在Windows 7中),安装程序将要求修改系统的权限。 作为管理员,我可以在不提供密码的情况下授予授权。

我正在试图弄清楚如何从作为AN管理员的用户运行的C#代码中采取管理员操作(重新启动IIS),而不是“管理员”帐户。

要以提升的方式运行进程,可以使用runas动词。

Process elevated = new Process(); elevated.StartInfo.Verb = "runas"; elevated.StartInfo.FileName = "Whatever.exe"; elevated.Start(); 

要重新启动IIS(如前所述),请使用iisreset。

希望您觉得这个有帮助。

对于仍然在寻找这个的人,这里是我用来帮助我解决这个问题的代码。

  private static void DoIISReset() { Process iisReset = new Process(); iisReset.StartInfo.FileName = "iisreset.exe"; iisReset.StartInfo.RedirectStandardOutput = true; iisReset.StartInfo.UseShellExecute = false; iisReset.Start(); iisReset.WaitForExit(); } 

希望这可以帮助!

尝试从C#执行IISReset命令

http://technet.microsoft.com/en-us/library/cc758159(WS.10).aspx

 iisreset /noforce 

使用ProcessStart

 System.Diagnostics.Process.Start(@"C:\Windows\System32\iisreset.exe"); 

如果您使用的是AD身份validation,并且您是管理员,那么这应该可行

 System.Diagnostics.Process.Start(@"C:\Windows\System32\iisreset.exe"); 

此代码对您有帮助,但您可以获得拒绝访问权限。

为了你的不被拒绝访问;

1)右键单击项目2)添加新的İtem3)添加应用程序清单文件在此处输入图像描述

4)更改此代码

  

就这样

  

这是一个如何在电源shell中完成的链接http://www.computerperformance.co.uk/powershell/powershell_service_start.htm

另一种可能性是使用WMI http://www.motobit.com/tips/detpg_vbs-wmi-restart-service/

这是另一种直接的方式#http ://www.csharp-examples.net/restart-windows-service/

我希望这有帮助….

有两种方法可以做到这一点,但你需要运行VS作为管理。

  1. 此代码将在空cmd中提示一段时间并自动关闭窗口。

    Process iisReset = new Process(); iisReset.StartInfo.FileName = "iisreset.exe"; iisReset.StartInfo.RedirectStandardOutput = true; iisReset.StartInfo.UseShellExecute = false; iisReset.Start(); iisReset.WaitForExit();

    1. 此代码也将重新启动IIS,它将提示CMD几乎没有处理。

      Process.Start(@"C:\WINDOWS\system32\iisreset.exe", "/noforce");