Как назначить разрешения учетной записи ApplicationPoolIdentity

В IIS 7 в Windows Server 2008 пулы приложений могут запускаться как учетная запись «ApplicationPoolIdentity» вместо учетной записи NetworkService.

Как назначить разрешения для этой учетной записи «ApplicationPoolIdentity». Он не отображается как локальный пользователь на машине. Он не отображается как группа нигде. Ничего отдаленного, как это нигде. Когда я просматриваю локальные пользователи, группы и встроенные учетные записи, он не отображается в списке, и ничего подобного не появляется в списке. Что происходит?

Я не единственный с этой проблемой: см. Проблема с ApplicationPoolIdentity в IIS 7.5 + Windows 7 для примера.


«Это, к сожалению, ограничение выбора объекта на Windows Server 2008 /Windows Vista, поскольку несколько человек уже его уже обнаружили, вы все же можете манипулировать ACL для идентификации приложения с помощью инструментов командной строки, таких как icacls ."

248 голосов | спросил Triynko 4 32009vEurope/Moscow11bEurope/MoscowWed, 04 Nov 2009 00:52:20 +0300 2009, 00:52:20

6 ответов


279

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

IIS APPPOOL\{app pool name}

Примечание. В следующих комментариях есть две вещи, о которых нужно знать:

  • Введите строку непосредственно в «Выбрать пользователя или группу», а не в поле поиска.
  • В доменной среде вам нужно сначала установить местоположение на локальный компьютер.

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

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

Затем в проводнике Windows перейдите в папку wwwroot и отредактируйте разрешения безопасности. Вы увидите, что похоже на группу (значок группы) под названием DefaultAppPool. Теперь вы можете редактировать разрешения.

Однако вам не нужно использовать это вообще. Это бонус, который вы можете использовать, если хотите. Вы можете использовать старый способ создания пользовательского пользователя для каждого пула приложений и назначения пользовательского пользователя на диск. У этого есть полная поддержка пользовательского интерфейса.

Этот метод инъекции SID хорош, поскольку он позволяет использовать одного пользователя, но полностью изолировать каждый сайт друг от друга, не создавая уникальных пользователей для каждого пула приложений. Довольно впечатляет, и это будет еще лучше с поддержкой пользовательского интерфейса.

Примечание. Если вы не можете найти пользователя пула приложений, проверьте, запущена ли служба Windows под названием Служба хоста приложений. Это сервис, который сопоставляет пользователей пула приложений с учетными записями Windows.

ответил Scott Forsyth - MVP 4 32009vEurope/Moscow11bEurope/MoscowWed, 04 Nov 2009 06:07:03 +0300 2009, 06:07:03
21

Вы должны убедиться, что поле «Из этого местоположения» установлено на локальный компьютер, а не на домен.

У меня была такая же проблема, и как только я изменил ее, он работал нормально.

ответил Alan 1 PM00000050000000431 2012, 17:29:04
4

Вы действительно должны создавать группы на «роль» и назначать доступ к этой группе в файловой системе. Затем при необходимости добавьте пул приложений в группы ролей. Таким образом, даже если вы удалите пул приложений позже (и виртуальный пользователь отправится poof ), вам не нужно беспокоиться о повторном использовании всех разрешений, просто добавьте замененный пул приложений в существующую группу.

ответил Jimbo 14 J0000006Europe/Moscow 2013, 21:42:50
3

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

ответил Roger 4 TueEurope/Moscow2012-12-04T15:05:02+04:00Europe/Moscow12bEurope/MoscowTue, 04 Dec 2012 15:05:02 +0400 2012, 15:05:02
0

Я запускал WS8 R2, и я не мог добавить IIS APPPOOL\DefaultAppPool через проводник Windows. Единственный способ, которым это работало, - через командную строку:

  

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

ответил Denis Tse 19 MarpmMon, 19 Mar 2012 18:46:05 +04002012-03-19T18:46:05+04:0006 2012, 18:46:05
0

Если этот вопрос касается того, как выполнить _sp_send_dbmail в базе данных msdb (используя хранимую процедуру SQL Mail Database Mail в msdb), вот некоторые из них. Добавьте имя пользователя приложения .net вашей базы данных (которое определено в вашей строке подключения в приложении .net) пользователю msdb с членством роли «DatabaseMailUserRole»

ответил Muhamad Faried 25 J000000Friday14 2014, 04:50:17

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132