2009-08-31 90 views
11

我有两台服务器Server A和Server B.我想使用Powershell脚本远程停止服务器A.如何使用PowerShell脚本远程启动/停止IIS 6.0/7.0?

+0

我们需要一些关于您的域配置的更多信息。两台服务器是否在同一个域中运行,即单个用户帐户在服务器上具有相同的权限? – 2009-08-31 12:55:22

+0

也应该将这个问题转移到服务器故障。 – 2009-08-31 13:00:42

回答

14

最简单的方法之一就是使用PsExec执行命令行。发送到机器

IISRESET/STOP或/ START或/重启

所以,你会做这样的事

PsExec \\Server2 -u Administrator -p somePassword IISReset /STOP 

只是要小心,密码管理,如果你走这条路线或任何涉及某种类型管理员级别帐户模拟的路由,以便任何人都无法获得管理员密码的纯文本副本。

9

因为你问PowerShell的:

(Get-WmiObject Win32_Service -ComputerName ServerA -Filter "Name='iisadmin'").InvokeMethod("StopService", $null) 
同意这个问题

应移至ServerFault。

3
$service = Get-WmiObject -computer 'ServerA' Win32_Service -Filter "Name='IISAdmin'" 
$service 
$service.InvokeMethod('StopService',$Null) 
start-sleep -s 5 
$service.InvokeMethod('StartService',$Null) 
start-sleep -s 5 
$service.State 

$service = Get-WmiObject -computer 'ServerB' Win32_Service -Filter "Name='IISAdmin'" 
$service 
$service.InvokeMethod('StopService',$Null) 
start-sleep -s 5 
$service.InvokeMethod('StartService',$Null) 
start-sleep -s 5 
$service.State 
2

在的powershell 2.0,运行从CMD提示符下:

invoke-command -computername <yourremoteservername> -scriptblock {iisreset} 
10

选项1:

iisreset remotepcname /restart 

选项2:

(Get-Service -ComputerName remotepc -Name 'IISAdmin').stop() 

选项3:

Invoke-Command -ComputerName remotepc -ScriptBlock {iisreset} 
+0

完美答案。谢谢。 – 2013-08-08 20:39:00

0

您可以使用不同的命名空间的不同版本的IIS V6或V7的,下面流水线命令得到-WmiObject可以cmdlt可以在IIS本地或远程

的IIS V6

$srv = "Server Name or IP Address" 

$app = "Name of App Pool" 

$x = get-wmiobject -namespace "root\MicrosoftIISv2" -class "IIsApplicationPool" -ComputerName $srv -Authentication PacketPrivacy | where-object {$_.Name -eq "W3SVC/AppPools/$app"} 

$x.Stop() 

$x.Start() 

for IIS v7 

$srv = "Server Name or IP Address" 

$app = "Name of App Pool" 

$x = Get-WMIObject -Namespace "root\webAdministration" -Class "ApplicationPool" -ComputerName $srv -Authentication PacketPrivacy | Where-Object {$_.Name -eq $app} 

$x.Stop() 

$x.Start() 
用于这样的操作

您需要对这些操作拥有足够的帐户权限,但我更喜欢为我的网站执行$ x.Recycle()。

相关问题