Windows

ApplicationPoolIdentity 環境變數 IIS

  • April 19, 2021

是否可以為 ApplicationPoolIdentity 虛擬帳戶設置環境變數?這方面的文件幾乎不存在。

我想為那個應用程序池注入一個環境變數。似乎人們為應用程序池創建唯一帳戶來執行此操作,但我所閱讀的有關虛擬帳戶的內容暗示我不必這樣做,但根本沒有解釋如何執行此操作。

是的!(只要您使用的是 IIS 7.0+)您需要將loadUserProfile應用程序池標識的設置設置為 true。應用程序池標識現在將在 \Users\ 下有一個使用者配置文件

$$ Application Pool Name $$. 然後,您可以編輯此配置文件以具有自定義環境變數等。 IIS 7 Tip #3 您現在可以載入應用程序池標識的使用者配置文件

編輯:我剛剛測試了這個(在 IIS 10 中),因為你的評論,它肯定在這里工作。

  1. 在 IIS 中,我創建了一個名為Testing
  2. 我更改了應用程序池預設值以將載入使用者配置文件設置為True
  3. 我啟動了應用程序池,測試
  4. 我檢查了是否在 \Users\Testing 創建了使用者配置文件:否
  5. 我在應用程序池中添加了一個網站並重新啟動了該網站
  6. 我再次檢查以查看是否創建了使用者配置文件:仍然沒有
  7. 我在瀏覽器中導航到該網站,因此將載入應用程序池
  8. 我第三次檢查是否創建了使用者配置文件:是
  9. 我檢查了使用者系統資料庫是否已載入HKEY_USERS,(通過檢查位於HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist的文件是否已載入,並且是 SID )NTUSER.DAT``[...]\Users\Testing\NTUSER.DAT``S-1-5-82-454248297-962034619-2554273252-202815998-4121577539
  10. 我檢查了HKEY_Users\[SID]\Environments密鑰是否存在,它存在,並且具有值TEMPTMP指向%USERPROFILE%\AppData\Local\Temp.

我必須進行頁面載入的原因是因為我忘記將Start Modefrom更改OnDemandAlwaysRunning. 當我創建另一個Start Mode設置為AlwaysRunning的應用程序池時,當我將網站分配給應用程序池並重新啟動網站時,會創建使用者配置文件。

有關應用程序池標識的更多有用資訊: 應用程序池標識

引用自:https://serverfault.com/questions/711470