如何在IIS 8中远程停止/启动应用程序池

时间:2015-03-12 16:08:17

标签: powershell iis tfs iis-8

警告:每个使用一行!

我在IIS 6中使用了这些命令,它们工作得很好。

开始:

(get-wmiobject -namespace 'root\MicrosoftIISv2' -computername 'REMOTE_SERVER' -class 'IIsApplicationPool' | where-object {$_.Name -eq 'W3SVC/AppPools/MY_FANCY_APPPOOL'}).InvokeMethod('Stop', $null)"

- 和 -

停止:

(get-wmiobject -namespace 'root\MicrosoftIISv2' -computername 'REMOTE_SERVER' -class 'IIsApplicationPool' | where-object {$_.Name -eq 'W3SVC/AppPools/MY_FANCY_APPPOOL'}).InvokeMethod('Start', $null)

我正在寻找IIS 8中的替代方案。我需要几个单行,并且必须是Powershell命令。我通过TFS中的InvokePowerShellCommand活动调用它们。那里有谁可以帮助我吗?

2 个答案:

答案 0 :(得分:27)

您可以执行以下操作来启动应用程序池:

Invoke-Command -ComputerName "REMOTE_SERVER" -ScriptBlock { Start-WebAppPool -Name "MY_FANCY_APPPOOL" }

您可以执行以下操作来停止应用程序池:

Invoke-Command -ComputerName "REMOTE_SERVER" -ScriptBlock { Stop-WebAppPool -Name "MY_FANCY_APPPOOL" }

答案 1 :(得分:3)

首先,有时您需要添加显式等待,以便应用程序池响应控制消息:

Invoke-Command -ComputerName "$REMOTE_SERVER" -ScriptBlock { Import-Module WebAdministration; Start-Sleep -s 10; Start-WebAppPool -Name "$APP_POOL_NAME" }

停下来:

Invoke-Command -ComputerName "$REMOTE_SERVER" -ScriptBlock { Import-Module WebAdministration; Stop-WebAppPool -Name "$APP_POOL_NAME" }