IIS 7 Access Сетевой диск с учетными данными
У меня есть сервер IIS 7 с запущенным на нем приложением PHP. Это приложение должно иметь возможность подключаться к сетевому диску, для которого требуются имя пользователя и пароль. Этот диск подключен при входе в систему для пользователей с net use \\server /user:
, Пользователь не вошел в систему. Как я могу подключить этот диск для использования в приложении?
Я пытался изменить пул приложений для своего пользователя, но мне все равно отказано. Я попытался запустить командный файл с использованием сети в нем в качестве системы. Я пробовал виртуальный каталог, но ему не понравилось имя пользователя, которое требуется. Имя пользователя содержит \ и. Пользователь также не является пользователем Windows. У меня нет контроля над сетевым диском, просто доступ к нему.
2 ответа
У меня была похожая проблема, когда мне нужен доступ к сетевому ресурсу, и я решил ее, выполнив следующие действия:
1) Создайте учетную запись с тем же именем пользователя и паролем на сервере переднего плана и файловом сервере. Убедитесь, что срок действия пароля не истек или его необходимо изменить.
2) Создайте сетевой ресурс и дайте новой учетной записи права на чтение / запись. Я также проверил, что могу подключиться с серверов переднего плана, используя новую учетную запись, чтобы убедиться, что никакие брандмауэры не мешают.
3) На сервере переднего плана я включил учетную запись в группу IIS_IUSRS, которая косвенно дает ей право входа в систему как пакетное задание.
4) Запустите следующую команду, чтобы предоставить права учетной записи
aspnet_regiis -ga <your_app_pool_user>
Подробнее: Как: создать учетную запись службы для приложения ASP.NET 2.0 (MSDN)
5) Перезапустил WAS и IIS, чтобы убедиться, что изменения в членстве группы учетных записей вступают в силу при попытке использовать учетную запись.
C:> net stop was /y
C:> net start w3svc
6) Создайте пул приложений и установите идентификационные данные в дополнительных настройках.
Это та часть, где я застрял на IIS 8 на Windows Server 2012 с сообщениями об ошибках при попытке установить удостоверение личности.
Из диспетчера IIS я получил следующее сообщение об ошибке: "Произошла ошибка при выполнении этой операции. Детали: значение не попадает в ожидаемый диапазон".
При попытке установить идентификатор пула приложений из командной строки я получаю похожую ошибку:
C:> appcmd set config /section:applicationPools
/[name='test-pool'].processModel.identityType:SpecificUser
/[name='test-pool'].processModel.userName:MyAccountName
/[name='test-pool'].processModel.password:P@ssw0rd
ERROR ( hresult:80070057, message:Failed to commit configuration changes.
The parameter is incorrect.
)
Когда я удаляю последний параметр, пароль, команда успешно меняет тип удостоверения и задает имя пользователя, но я так и не поняла, почему не смогла установить пароль, поэтому я попыталась напрямую отредактировать файл applicationHost.config. К сожалению, пароль заканчивается открытым текстом.
<configuration>
...
<system.applicationHost>
<applicationPools>
...
<add name="test-pool" managedRuntimeVersion="v4.0">
<processModel identityType="SpecificUser"
userName="MyAccountName" password="P@ssw0rd" />
</add>
...
</applicationPools>
...
</system.applicationHost>
...
</configuration>
7) Наконец, я настроил свое веб-приложение на использование пула приложений, и оно могло без проблем получать доступ к сетевому ресурсу.
Я бы сопоставил сетевой диск, используя альтернативные учетные данные, а затем подключил приложение PHP к соответствующей букве диска. Имейте в виду, что если у Windows нет доступа к диску, то у PHP нет, так как PHP не понимает аутентификацию Windows.