2

私は次のようなpowershellプログラムを構築しようとしています:

  1. リモートサーバーに接続する
  2. アクティブなサーバー上のアクティブな IIS アプリケーション プールの数を表示します
  3. 選択(1、2、3、4、....nなど)に基づいて、アプリプールをリセットします

ヒントを教えてください。

4

3 に答える 3

4

これを試してください:

[Reflection.Assembly]::LoadWithPartialName('Microsoft.Web.Administration')
$sm = [Microsoft.Web.Administration.ServerManager]::OpenRemote('server1')
$sm.ApplicationPools['AppPoolName'].Recycle()
于 2013-05-06T12:29:38.450 に答える
3

すでに与えられた答えに基づいて、次のことを試してください。PowerShell リモート処理、具体的にはInvoke-Commandを使用するため、それに慣れる必要があります。

[cmdletBinding(SupportsShouldProcess=$true,ConfirmImpact="High")] 
param
(
    [parameter(Mandatory=$true,ValueFromPipeline=$true)] 
    [string]$ComputerName,

    [parameter(Mandatory=$false)] 
    [System.Management.Automation.PSCredential]$Credential
)
begin
{
    if (!($Credential))
    {
        # Prompt for credentials if not passed in
        $Credential = get-credential
    }

    $scriptBlock = {

        Import-Module WebAdministration

        # Get all running app pools
        $applicationPools = Get-ChildItem IIS:\AppPools | ? {$_.state -eq "Started"}
        $i = 0

        # Display a basic menu
        Write-Host "`nApplication Pools`n"
        $applicationPools | % {
            "[{0}]`t{1}" -f $i, $($applicationPools[$i].Name)
            $i++
        }

        # Get their choice
        $response = Read-Host -Prompt "`nSelect Application Pool to recycle"

        # Grab the associated object, which will be null 
        # if an out of range choice was entered
        $appPool = $applicationPools[$response]

        if ($appPool)
        {
            "Recycling '{0}'" -f $appPool.name
            $appPool.recycle()
        }
    }
}
process
{
    Invoke-Command -ComputerName $computerName -Credential $credential -ScriptBlock $scriptBlock 
}
于 2013-05-07T12:47:02.237 に答える
0

私は既存のコードを手伝うことはできませんが、いくつかのリンク

  1. ここでリモート PowerShell セッションを確認してください

  2. Windows PowerShellの Webサーバー (IIS) 管理コマンドレット、特にGet-WebApplicationGet-WebAppPoolState を確認してください。

  3. リセットが停止を意味する場合は、Stop-WebAppPoolを確認できます。

于 2013-05-06T12:14:04.347 に答える