[英]How can I restart IIS from C# code running as a user who is an administrator?
通常(在Windows 7中),安装程序将要求修改系统的权限。 作为管理员,我可以在不提供密码的情况下授予授权。
我试图找出如何从作为AN管理员的用户运行的C#代码中采取管理员操作(重新启动IIS),而不是“管理员”帐户。
要以提升的方式运行进程,可以使用runas谓词。
Process elevated = new Process();
elevated.StartInfo.Verb = "runas";
elevated.StartInfo.FileName = "Whatever.exe";
elevated.Start();
要重新启动IIS(如前所述),请使用iisreset。
希望您觉得这个有帮助。
尝试从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身份验证,并且您是管理员,则应该可以使用
对于仍然在寻找这个的人,这里是我用来帮助我解决这个问题的代码。
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();
}
希望这可以帮助!
System.Diagnostics.Process.Start(@"C:\Windows\System32\iisreset.exe");
这段代码对你有帮助,但你可以获得Access Denied。
为了你的不被拒绝访问;
1)右键单击项目2)添加新的İtem3)添加应用程序清单文件在此处输入图像描述
4)更改此代码
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
就这样
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
有两种方法可以做到这一点,但你需要运行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");
这是一个如何在电源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/的方式
我希望这有帮助....
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.