【问题标题】:Restart IIS on remote machine在远程计算机上重新启动 IIS
【发布时间】:2019-05-23 21:46:53
【问题描述】:

如何在远程机器上重启IIS

我知道 IP 地址和管理员用户的用户名和密码信息。

我正在使用C#ASP .NET 2.0

【问题讨论】:

    标签: iis


    【解决方案1】:

    最简单的就是iisreset <servername>

    以管理员身份运行命令提示符并执行命令。

    示例:如果服务器名称为 SRVAPP,则命令将为 iisreset SRVAPP

    【讨论】:

    • 如果 iisreset commadn 不可用,请使用 “打开或关闭 Windows 功能” 安装 IIS > Web 管理工具 >> IIS 管理控制台 ( howtogeek.com/112455/how-to-install-iis-8-on-windows-8)
    • 失败并出现错误:访问被拒绝,您必须是远程计算机的管理员
    【解决方案2】:

    我尝试了基于 PowerShell 的方法,但一直收到以下错误:

    Connecting to remote server <TARGET-HOST> failed with the following error message : The WinRM client cannot process the request.

    我终于发现我需要在源节点中将目标节点添加为TrustedHosts,反之亦然。如果您遇到同样的问题,您可以通过打开提升的 命令提示符 并输入以下命令来解决它:

    从您将用来发出命令的 PC:

    powershell
    winrm set winrm/config/client '@{TrustedHosts="TARGET-HOST"}'
    

    从目标电脑(带有 IIS 的电脑):

    powershell
    winrm set winrm/config/client '@{TrustedHosts="SOURCE-HOST"}'
    

    (将TARGET-HOSTSOURCE-HOST 替换为您的服务器主机名 或IP 地址)。执行此操作后,您可以发出任何远程 PowerShell 命令,例如:

    IIS 停止:

    powershell invoke-command -computername "TARGET-HOST" -scriptblock {iisreset /STOP}
    

    IIS 启动:

    powershell invoke-command -computername "TARGET-HOST" -scriptblock {iisreset /START}
    

    IIS 重启:

    powershell invoke-command -computername "TARGET-HOST" -scriptblock {iisreset /RESTART}
    

    ...等等。

    如需对此问题的广泛评论,您也可以在我的博客上read this post

    【讨论】:

    • 我们是否有 TFS 任务在目标代理上执行 IIS 重置?
    【解决方案3】:

    您可以按照 Thomas Franke 的建议使用 sc:

    sc \\RemoteServer stop iisadmin
    sc \\RemoteServer start w3svc
    

    或 SysInternals 的psexecPsTools suite 对于这些场景很有用。

    psexec \\RemoteServer iisreset
    

    【讨论】:

      【解决方案4】:

      您可以使用“sc”命令来控制远程机器上的 iis 服务。

      sc \\RemoteServer stop [iis-service-name]
      

      使用

      sc help
      

      为了获得可能的参数列表。

      也可以看看a microsoft kb-article on your subject

      【讨论】:

        【解决方案5】:

        以下 POSH 脚本将允许您远程异步重置一组机器(在处理大量机器时非常方便):

        $a = Get-Content "c:\OneMachineNamePerLine.txt"
        
        foreach($line in $a)
        {
        
            Start-Job -ScriptBlock {
                iisreset $line
            }
        }
        

        【讨论】:

          【解决方案6】:

          远程有多远?您可以从您的 c# 代码中执行 Shutdown.exe 吗?如果这是不可能的(防火墙等),那么下一个最好的方法可能是在那里放置一个服务,您可以远程(并且安全地!)调用它来关闭机器。

          【讨论】:

          • 这描述了如何远程关闭服务器而不是单独重启服务
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-09-18
          相关资源
          最近更新 更多