Powershellを使用してIISにASP.NETアプリケーションを展開しようとしています(Ansibleによって実行されます)。IIS AppPoolユーザーがWindowsグループに追加されていることを確認してください
は、私は私のアプリケーションは、私はこのPowerShellスクリプトを使用して、パフォーマンスモニターのユーザーにそれを追加していてパフォーマンスカウンタを照会することができるようにしたい:
appPoolName=$args[0]
$group = [ADSI]"WinNT://$Env:ComputerName/Performance Monitor Users,group"
$ntAccount = New-Object System.Security.Principal.NTAccount("IIS AppPool\$appPoolName")
$strSID = $ntAccount.Translate([System.Security.Principal.SecurityIdentifier])
$user = [ADSI]"WinNT://$strSID"
$group.Add($user.Path)
それは実際には別のSOの質問から来ている:Add IIS AppPool\ASP.NET v4.0 to local windows group。
展開後、ユーザーはグループに追加されますが、アプリケーションはパフォーマンスカウンターにアクセスできません。
スクリプトは、アプリケーションプールとアプリケーションを起動する直前に実行されます。 私は成功せず、次のようなものを試してみました:
- アプリケーションを再起動し、再び
私は私のデプロイメントスクリプトを変更した
- 追加する前にグループからユーザーを削除する
- ユーザーを追加した後でアプリケーションプールを再起動します。 IISは実際には(「この時点ではサービスではメッセージを受け付けることができません」)苦情を言います。
- は、アプリケーション
私は私を解決するために持っている唯一の方法(アプリケーションプールを停止する前に)展開の最初にグループにユーザーを追加を開始した後、ユーザーをグループに追加します。問題は、マシンを再起動することです。私はより良いものがあるかどうか知りたいです!
可能であれば、私は、アプリケーションプールのユーザーをログオフして、私の問題を解決すると思います。私はそれを行う方法を見つけられませんでした(アプリケーションプールの再起動またはリサイクルは機能しません)。