IIS7 доступ к сетевому ресурсу
Я запускаю IIS 7 на Windows Server 2008 R2 с PHP 5.4. Один из моих PHP скриптов пытается получить доступ к файлу на защищенном сетевом ресурсе, используя UNC-путь. Как изменить учетную запись службы IIS на учетную запись, имеющую разрешение на доступ к общей папке? Это очень легко сделать на Apache HTTP server (вы просто измените его), но неясно, как это сделать с IIS. Что я могу сделать?
обновление:
Я смог заставить вещи работать, используя "Подключиться как" в разделе "Основные настройки" моего веб-сайта, а затем указать учетную запись, которая имеет доступ к сетевому ресурсу. Это появляется что моя проблема связана с этим вопрос:
3 ответов
для IIS 7, работающего в Windows Server 2008 R2 ... В IIS Manager
выберите Application Pool
под которым работает ваш веб-сайт.
Нажмите "Дополнительные Настройки". Там будет запись для Identity
(Она находится под ). Щелкните его, укажите учетные данные для учетной записи, которая имеет разрешение на доступ к общей папке.
обновление
вы должны убедиться, что при использовании учетной записи домена Active Directory вы предоставили что правильно под Identity
для запуска пула приложений. Например, MYDOMAIN\myAccount
.
после внесения этого изменения вам нужно будет сделать следующее:
- остановите веб-сайт.
- утилизация пула приложений.
- запустите веб-сайт.
ОБНОВЛЕНИЕ II
из обсуждения комментариев по этому ответу @HydroPowerDeveloper смог получить PHP-скрипт для доступа к сетевой ресурс через UNC-путь с помощью веб-сайта - > основные настройки - > "подключиться как" и установить учетные данные там.
в прошлом я всегда использовал подход настройки Identity
via Application Pool
и это позволило моему коду получить доступ к сетевым ресурсам через UNC-путь.
однако все сайты / приложения, которые я развернул на IIS
являются .NET на основе WCF или ASPX сайтов.
Я бы предположил (но не уверен на 100% в этом, потребуется исследование / тестирование чтобы подтвердить) , что Identity
определенного Application Pool
используется при выполнении кода .NET, тогда как" Connect As " используется PHP-скриптом.
обычно пул приложений устанавливается с использованием наименьшего количества привилегий, насколько это возможно.
http://msdn.microsoft.com/en-us/library/ff647402.aspx
самый простой маршрут-разрешить доступ к текущей учетной записи IIS.
в Проводнике, перейдите в общий каталог.
Щелкните Правой Кнопкой Мыши - > Свойства - > Безопасность
Если вы не видите ожидаемого пользователя IIS в списке (имена групп или пользователей), измените и добавьте пользователя как требовалось.
Я использовал "сетевой сервис" - > проверить имена.
подробные инструкции находятся на этом сайте.
таким образом, система по-прежнему ограничена, мы разрешаем доступ только к определенным каталогам, нам не нужно создавать новых пользователей, нам не нужно повторно использовать пул приложений, и нам не нужно выполнять какой-либо отличный код олицетворения.
чтобы воскресить старый вопрос...
Я только что настраивал сервер Win 2016, который использует некоторый Perl для доступа к общей папке UNC. Я установил пул приложений для учетной записи, которая, как я проверил, имела правильные разрешения на этот ресурс. Затем я настроил свой сайт на "Connect as"...(в разделе "Основные настройки") тот же пользователь. Я все еще не мог получить доступ к работе.
много царапин головы позже, я понял, что мой "виртуальный каталог", cgi-bin, работает под оригинальным " пропуском через учетную запись. Затем я настроил виртуальный каталог на " Connect as...- та же учетная запись, что и сайт, и пул приложений, и, бинго, все работает отлично.
итак, не забудьте обновить все виртуальные каталоги, а также пул сайтов и приложений...