Webアプリケーションのセットアップを自動化し、IISをアプリケーションプールIDで適切に構成するのに苦労しています。PowerShellで記述されたWebアプリケーション展開スクリプトでこれを行っています。私の要件は特定のサービスアカウントmydomain\svcuserとパスワードにアプリケーションプールIDユーザーを設定するためにPowerShellスクリプトが必要であることを示しています。サンプルコードは次のとおりです。
$pool = New-Item "IIS:\AppPools\MyAppPool" -Force
$svcuser = "mydomain\svcuser"
$pool.processModel.userName = $svcuser
$password = "somepassword"
$pool.processModel.password = $password
$pool.processModel.identityType = 3
$pool | Set-Item -ErrorAction Stop
これを実行すると、すべてのappearsが正しく動作します-エラーはスローされず、アプリケーションIDユーザー名がIISに表示されます-何らかの理由で、パスワードが正しく設定されていません。パスワードであるため、設定されているかどうかを確認することはできませんが、設定されている場合は正しく設定されていないと結論付けることができます。 IISに手動でアクセスしてパスワードを入力するまで、結果のアプリケーションプールユーザーは認証されません。その結果、アプリケーションはWebサーバーにデプロイされた後に失敗し、手動の介入が必要になります。
ここに何かが欠けていますか?
これは次のように行います。
Import-Module WebAdministration
Set-ItemProperty IIS:\AppPools\app-pool-name -name processModel -value @{userName="user_name";password="password";identitytype=3}
このドキュメントの説明と、アプリプールを実行するユーザータイプの数値のインデントタイプのリファレンスを参照してください: http://www.iis.net/configreference/system.applicationhost/applicationpools/ add/processmodel
いくつかの実験の後
ここに私の答えがあり、これが役立つことを願っています、私はIIS 8.5
$credentials = (Get-Credential -Message "Please enter the Login credentials including Domain Name").GetNetworkCredential()
$userName = $credentials.Domain + '\' + $credentials.UserName
Set-ItemProperty IIS:\AppPools\$app_pool_name -name processModel.identityType -Value SpecificUser
Set-ItemProperty IIS:\AppPools\$app_pool_name -name processModel.userName -Value $username
Set-ItemProperty IIS:\AppPools\$app_pool_name -name processModel.password -Value $credentials.Password