如何在远程计算机上重新启动IIS
?
我知道IP地址和管理员用户的用户名和密码信息。
我正在使用C#
和ASP .NET 2.0
。
答案 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-HOST
和SOURCE-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'psexec。 PsTools suite对这些情况很有用。
psexec \\RemoteServer iisreset
答案 3 :(得分:3)
您可以使用“sc”命令来控制远程计算机上的iis-service。
sc \\RemoteServer stop [iis-service-name]
使用
sc help
以获取可能的参数列表。
答案 4 :(得分:0)
以下POSH脚本允许您远程异步重置一组计算机(使用大型计算机时非常方便):
$a = Get-Content "c:\OneMachineNamePerLine.txt"
foreach($line in $a)
{
Start-Job -ScriptBlock {
iisreset $line
}
}
答案 5 :(得分:-3)
远程远程如何?你可以从c#代码中执行Shutdown.exe吗?如果那是不可能的(防火墙等),那么下一个最好的可能就是在那里放置一个服务,你可以远程调用(并且安全地!)关闭机器。