web-dev-qa-db-ja.com

IIS 8でアプリケーションプールをリモートで停止/開始する方法

警告:1行ずつ使用してください!

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コマンドであるmustが必要です。TFSのInvokePowerShellCommandアクティビティを介して呼び出しています。 。私を助けてくれる人はいますか?

19
Barry Gallagher

以下を実行して、アプリケーションプールを開始できます。

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

以下を実行して、アプリケーションプールを停止できます。

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

開始するには、アプリプールが制御メッセージに応答するように、明示的な待機を追加する必要がある場合があります。

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