Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从以管理员身份运行的C#代码重新启动IIS?_C#_.net_Iis_Windows 7_Admin - Fatal编程技术网

如何从以管理员身份运行的C#代码重新启动IIS?

如何从以管理员身份运行的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身份验证,并且您是管理员,那么这应该会起作用。这里有

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


我正在试图找出如何从作为管理员的用户运行的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");
此代码对您有帮助,但您可以拒绝访问

为了让您不被拒绝访问:

  • 右键单击项目
  • 添加新的İtem
  • 更改此部分
  • 对此


    有两种方法可以做到这一点,但您都需要以管理员身份运行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”)


  • 在命令提示符中,当我键入“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");