1

「webadministration」スナップインを使用してapppoolのユーザー名とパスワードを更新するPowerShellスクリプトを作成しました。

Import-Or-Snapin -Module "Webadministration"

Function Change-AppPoolIdentity {

        Param ( 
            $AppPool,
            $OldUserName,
            $NewUserName,
            $Password
       )

    If (Test-Path $AppPool)

    {
        LogWrite "Function :Change-AppPoolIdentity"
        $MyAppPool = Get-Item $AppPool

        If ($($MyAppPool.processModel.userName) -eq $OldUserName) {

            $MyAppPool.Stop()
            LogWrite "Trying to change App pool user name and password"
            $MyAppPool | Set-ItemProperty  -Name "processModel.username" -Value $NewUserName
            $MyAppPool | Set-ItemProperty  -Name "processModel.password" -Value $Password

            $MyAppPool.Start()
        }
        Else {
            LogWrite "Apppool $AppPool does not run using $OldUserName"
        }
    }
     Else {

        LogWrite "Apppool $AppPool not available "
    }


}

スクリプトを実行した後、サイトにアクセスしようとしても表示されませんでした。パスワードを手動で設定すると、機能しました。パスワードが正しく更新されていない可能性があります。

アプリプールのパスワードが変更されたことを確認するにはどうすればよいですか?Set-itemの後に、それを確認するための条件を追加することは可能ですか?

4

1 に答える 1

1

私はIISPowerShellプロバイダーに比較的慣れていませんが、構成の変更をアプリケーションプールに保存するには、set-itemを呼び出す必要があると思います。

テストするには、アプリケーションプールアイテムを取得し、processModelパスワード値を出力して元の値を確認し(これを見て驚いた)、それを更新してから、必ずset-itemを呼び出してIISを更新します。

例えば

$pool = IIS:\apppools\myapppool

$pool.processModel.password
$pool.processModel.password = $new_password

# doens't take effect until this
#
$pool | set-item

# should show updated value
#
$pool.processModel.password
于 2012-08-17T20:49:09.927 に答える