如何从作为管理员用户运行的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作为管理。
-
此代码将在空cmd中提示一段时间并自动关闭窗口。
Process iisReset = new Process(); iisReset.StartInfo.FileName = "iisreset.exe"; iisReset.StartInfo.RedirectStandardOutput = true; iisReset.StartInfo.UseShellExecute = false; iisReset.Start(); iisReset.WaitForExit();
-
此代码也将重新启动IIS,它将提示CMD几乎没有处理。
Process.Start(@"C:\WINDOWS\system32\iisreset.exe", "/noforce");
-