16

IIS7 を実行している Web サーバーでアプリケーション プールをリサイクルするためのスクリプトがたくさんありますが、PowerShell を使用して、Web アプリケーション プールが実行中または停止していることを確認する方法はありますか? リモートで Get-WebAppPoolState にアプリケーション プールのステータスを返す方法を見つけられないようで、私の Google-fu は代わりのものを思いつくことができませんでした。リモートで gwmi を動作させ、アプリ プールをリサイクルまたは開始することができますが、理想的には、アプリ プールが実際に停止している場合にのみこれを実行する必要があります。

これを PSExec で解決する必要がありますか、それとも gwmi と同様に使用でき、1 行のコマンドで IIS7 サーバーのアプリケーション プールを呼び出してステータスを取得できる代替手段はありますか?

4

3 に答える 3

25

Invoke-Command を使用して、リモート コンピューターで Get-WebAppPoolState コマンドレットを呼び出すことができます。

$appPoolStatus = Invoke-Command -ComputerName RemoteHostName {Import-Module WebAdministration; Get-WebAppPoolState DefaultAppPool}
$appPoolStatus.Value

呼び出し元のマシンでローカルに定義された変数を使用する場合は、ルールに従ってそれらを処理する必要があることに注意してください。このリンクは、それらを説明する優れた投稿です。

http://blogs.msdn.com/b/powershell/archive/2009/12/29/arguments-for-remote-commands.aspx

例:

$appPoolName = "SomeAppPoolName"
$appPoolStatus = Invoke-Command -ComputerName RemoteHostName { param($apn) Import-Module WebAdministration; Get-WebAppPoolState $apn} -Args $appPoolName
于 2012-09-27T22:30:55.820 に答える