Як призначити дозволи до облікового запису ApplicationPoolIdentity


263

У IIS 7 на Windows Server 2008 пули програм можуть працювати як обліковий запис "ApplicationPoolIdentity" замість облікового запису NetworkService.

Як призначити дозволи для цього облікового запису "ApplicationPoolIdentity". Він не відображається як локальний користувач на апараті. Він ніде не з’являється як група. Нічого не віддалено, як це з'являється де-небудь. Коли я переглядаю локальних користувачів, груп та вбудовані акаунти, він не відображається у списку, а також нічого подібного не відображається у списку. Що відбувається?

Я не єдиний з цією проблемою: див. Проблему з ApplicationPoolIdentity в IIS 7.5 + Windows 7 для прикладу.


"Це, на жаль, обмеження вибору об'єктів на Windows Server 2008 / Windows Vista - оскільки декілька людей це вже виявили, ви все ще можете маніпулювати ACL для ідентичності пулу додатків, використовуючи інструменти командного рядка, такі як icacls ."

Відповіді:


289

Оновлення: початкове запитання стосувалося Windows Server 2008, але рішення простіше для Windows Server 2008 R2 та Windows Server 2012 (та Windows 7 і 8). Ви можете додати користувача через інтерфейс NTFS, ввівши його безпосередньо. Назва у форматі IIS APPPOOL \ {ім'я пулу додатків}. Наприклад: IIS APPPOOL \ DefaultAppPool.

IIS APPPOOL\{app pool name}

Примітка. За коментарями нижче, про що слід пам’ятати:

  • Введіть рядок безпосередньо в "Вибрати користувача або групу", а не в поле пошуку.
  • У середовищі домену потрібно спочатку встановити Місце розташування на локальному комп’ютері.

Посилання на статтю Microsoft Docs: Ідентифікатори пулу додатків> Забезпечення ресурсів

Оригінальна відповідь: (для Windows Server 2008) Це чудова функція, але, як ви вже згадували, вона ще не повністю реалізована. Ви можете додати ідентифікацію пулу додатків у командному рядку чимось на зразок icacls, після чого ви зможете керувати ним із графічного інтерфейсу. Наприклад, запустіть щось подібне з командного рядка:

icacls c:\inetpub\wwwroot /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)(RX)

Потім у Windows Explorer перейдіть до папки wwwroot та відредагуйте дозволи безпеки. Ви побачите, як виглядає група (піктограма групи) під назвою DefaultAppPool. Тепер ви можете редагувати дозволи.

Однак вам взагалі не потрібно цим користуватися. Це бонус, який ви можете використовувати, якщо хочете. Ви можете використовувати старий спосіб створення користувацького користувача на пул додатків і призначення призначеного користувача на диск. Це має повну підтримку інтерфейсу користувача.

Цей метод ін'єкції SID є приємним, оскільки дозволяє використовувати одного користувача, але повністю ізолювати кожен сайт один від одного, не створюючи унікальних користувачів для кожного пулу додатків. Досить вражаючий, і це буде ще краще з підтримкою інтерфейсу.

Примітка. Якщо ви не можете знайти користувача пулу додатків, перевірте, чи працює служба Windows під назвою Служба помічника хоста додатка. Це сервіс, який відображає користувачів пулу додатків до облікових записів Windows.


1
Це незвичайний звір, оскільки він не схожий на групу, де користувач живе в групі, і це не схоже на обліковий запис комп’ютера порівняно з обліковим записом користувача, який абсолютно відрізняється один від одного. Обліковий запис пулу додатків "перекриває" особу користувача пулу додатків. Наприклад, у вас може бути 5 пулів додатків за допомогою мережевої служби та 5 інших за допомогою користувацьких облікових записів, але це 10 різних облікових записів пулу програм, керованих системою. Переваги помічені в папці c: \ inetpub \ temp \ appPools, де вона керується автоматично і заблокує систему. IIS добре використовує їх. Наше використання папок необов’язкове.
Скотт Форсайт - MVP

29
Зауважте, що якщо ви вкажете "IIS APPPOOL \ DefaultAppPool" безпосередньо в "Вибрати користувача або групу" (замість того, щоб шукати його) під час редагування дозволів, він буде визнаний просто відмінним (перевірено на Win7 x64 та Win2k8 R2 x64).
Мілан Гардіян

5
Ви правильні для Win7 та Win2k8 R2. Він не був реалізований у Win2k8 RTM, але є в R2.
Скотт Форсайт - MVP

9
Нарешті це зрозуміло - якщо ви введете назву пулу додатків безпосередньо, як сказано вище @Milan Gardian, і змініть поле місця розташування на локальній машині, тоді воно працює
Ciaran Bruen

4
Дуже дякую вам за «дві речі, які слід пам’ятати». Я спіткнувся з обома, і це було чітким і простим поясненням проблем і способів досягнення того, що мені потрібно. Прикро, що жодна документація MSDN не була такою зрозумілою.
Ян Грінґер

22

Ви повинні переконатися, що в From this locationполі встановлено local machineдомен, а не домен.

У мене був той самий випуск, і одного разу я змінив, що він працював чудово.


4

Ви дійсно повинні створювати групи за "роллю" та призначати цій групі доступ до файлової системи. Потім додайте пул додатків до груп, що належать до ролей. Таким чином, навіть якщо ви видалите пул додатків пізніше (а віртуальний користувач перетвориться на пуф ), вам не доведеться турбуватися про повторне використання всіх дозволів, ви просто додасте пул заміни додатків до наявної групи.


3

Прочитавши відповідь @Scott Forsyth - MVP, я спробував перезапустити Службу помічників хостів додатків. Це вирішило для мене проблему.


0

У мене працює WS8 R2, і я не зміг додати IIS APPPOOL\DefaultAppPoolчерез Windows Explorer. Єдиний спосіб це було через командний рядок:

cacls [FILE PATH] / T / E / G "IIS APPPOOL \ DefaultAppPool": C


2
Як не дивно, мені довелося зробити "IIS AppPool \ DefaultAppPool", щоб це було прийнято. Зверніть увагу на змішаний випадок - всі великі регістри, як я це робив у перший раз, не були прийняті з GUI.
Джефф МакДжункін

0

Якщо це питання про те, як виконати _sp_send_dbmail в базі даних msdb (використовуючи процедуру зберігання даних SQL, що зберігається в MSDB, тут, ось деякі завдання. Додайте ім’я користувача вашої бази даних .net (що визначається у вашому рядку підключення у вашому додатку .net) до користувача msdb з членською роллю "DatabaseMailUserRole".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.