在远程计算机上重新启动IIS

时间:2009-04-01 07:38:32

标签: iis

如何在远程计算机上重新启动IIS

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

我正在使用C#ASP .NET 2.0

6 个答案:

答案 0 :(得分:35)

最简单的是iisreset <servername>

以admin身份运行命令提示符并执行命令。

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

答案 1 :(得分:7)

我尝试了基于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"}'

从目标PC (带有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

答案 2 :(得分:5)

你可以使用sc,正如Thomas Franke建议的那样:

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

或SysInternals'psexecPsTools suite对这些情况很有用。

psexec \\RemoteServer iisreset

答案 3 :(得分:3)

您可以使用“sc”命令来控制远程计算机上的iis-service。

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

使用

sc help

以获取可能的参数列表。

另请查看a microsoft kb-article on your subject

答案 4 :(得分:0)

以下POSH脚本允许您远程异步重置一组计算机(使用大型计算机时非常方便):

$a = Get-Content "c:\OneMachineNamePerLine.txt"

foreach($line in $a)
{

    Start-Job -ScriptBlock {
        iisreset $line
    }
}

答案 5 :(得分:-3)

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