web-dev-qa-db-ja.com

ApplicationPoolIdentity環境変数IIS

ApplicationPoolIdentity仮想アカウントの環境変数を設定することは可能ですか?これに関するドキュメントは実際には存在しません。

そのアプリケーションプールだけに環境変数を注入したいと思います。これを行うためにアプリプールに固有のアカウントを作成する人がいるようですが、仮想アカウントについて読んだことは、私がそうする必要がないことを意味しますが、その方法についてはまったく説明していません。

11
Beau Trepp

はい! (IIS 7.0+)を使用している限り)アプリケーションプールIDのloadUserProfile設定をtrueに設定する必要があります。これで、アプリケーションプールIDにユーザーが追加されます。\Users\[アプリケーションプール名]の下のプロファイル。このプロファイルを編集して、カスタム環境変数などを設定できます。

IIS 7ヒント#3これで、アプリケーションプールIDのユーザープロファイルを読み込むことができます

編集:あなたのコメントのため、私はこれをテストしました(IIS 10))、そしてそれは間違いなくここで機能しています。

  1. IISで、Testingという名前の新しいアプリケーションプールを作成しました
  2. アプリケーションプールの既定値を変更して、ユーザープロファイルの読み込みをTrueに設定しました
  3. アプリケーションプール、テストを開始しました
  4. ユーザープロファイルが\ Users\Testing:noに作成されているかどうかを確認しました
  5. アプリケーションプールにWebサイトを追加して、Webサイトを再起動しました
  6. ユーザープロファイルが作成されたかどうかをもう一度確認しました。
  7. ブラウザでWebサイトに移動したので、アプリケーションプールが読み込まれました
  8. ユーザープロファイルが作成されたかどうかを確認するために、もう一度チェックしました。はい
  9. ユーザーレジストリがHKEY_USERSに読み込まれているかどうかを確認しました(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelistをチェックして、NTUSER.DATにある[...]\Users\Testing\NTUSER.DATファイルが読み込まれているかどうかを確認しました。 SID S-1-5-82-454248297-962034619-2554273252-202815998-4121577539
  10. HKU\[SID]\Environmentsキーの存在を確認したところ、存在しており、TEMPTMPの値が%USERPROFILE%\AppData\Local\Tempを指しています。

ページの読み込みを行う必要があったのは、Start ModeOnDemandからAlwaysRunningに変更するのを忘れたためです。 Start ModeAlwaysRunningに設定して別のアプリケーションプールを作成すると、Webサイトをアプリケーションプールに割り当ててWebサイトを再起動したときにユーザープロファイルが作成されました。

アプリケーションプールIDに関するより有用な情報: アプリケーションプールID

12
austinian