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.

Другие вопросы по тегам