如何从以管理员身份运行的C#代码重新启动IIS?
通常(在Windows 7中),安装程序需要获得修改系统的权限。作为管理员,我可以在不提供密码的情况下授予授权如何从以管理员身份运行的C#代码重新启动IIS?,c#,.net,iis,windows-7,admin,C#,.net,Iis,Windows 7,Admin,通常(在Windows 7中),安装程序需要获得修改系统的权限。作为管理员,我可以在不提供密码的情况下授予授权 我正在试图找出如何从作为管理员的用户运行的C代码中执行管理员操作(重新启动IIS),但不是“管理员”帐户。尝试从C执行IISReset命令# 使用ProcessStart System.Diagnostics.Process.Start(@"C:\Windows\System32\iisreset.exe"); 如果您使用的是AD身份验证,并且您是管理员,那么这应该会起作用。这里有
我正在试图找出如何从作为管理员的用户运行的C代码中执行管理员操作(重新启动IIS),但不是“管理员”帐户。尝试从C执行
IISReset
命令#
使用ProcessStart
System.Diagnostics.Process.Start(@"C:\Windows\System32\iisreset.exe");
如果您使用的是AD身份验证,并且您是管理员,那么这应该会起作用。这里有一个链接,指向如何在power shell中执行此操作 另一种可能是使用WMI 这是另一种直接进入的方式#
我希望这有助于……要尽可能地运行进程,可以使用runas动词 要重新启动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();
}
希望这有帮助
System.Diagnostics.Process.Start(@"C:\Windows\System32\iisreset.exe");
此代码对您有帮助,但您可以拒绝访问
为了让您不被拒绝访问:
对此
有两种方法可以做到这一点,但您都需要以管理员身份运行VS
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”)代码>
在命令提示符中,当我键入“runas/user:Administrator iisreset”时,它会要求我输入密码,即使启动命令提示符的用户是管理员。我不需要密码。我不认为runas命令与runas动词完全相同。从这个问题上,我假设你想通过代码来做这件事。我没有使用广告认证,我只是在一台家用电脑上。它不起作用。issreset.exe->iisreset.exe这并没有回答关于在C#@Dave Friedel中执行此操作的要求的问题,最后一个链接提供了如何重新启动服务的C#示例。因此,它确实回答了这个问题。我将取消否决票,但您没有提供重新启动IIS的详细信息,其中包含指向不回答该问题的远程站点的链接。为了提供价值,一些概述操作的伪代码对社区更有用。-更新-除非编辑答案,否则我的投票将被锁定。此外,它还会导致其他问题,如此处的链接:I使用文件名的完整路径:
(@“C:\Windows\System32\iisreset.exe”)
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");