如何在 IIS 8 中远程 stop/start 应用程序池

How to remotely stop/start an application pool in 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 activity 调用它们。有没有人可以帮助我?

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

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

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

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

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

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" }