2010-08-27 2 views
0

У нас есть приложение CMS, которое раньше выполняло все команды в пакетном файле; однако на прошлой неделе он провалился.IIS не может запустить команду «net use» в пакетном файле

Для тестирования, мы изменили содержимое в пакетном файле, как это:

echo starting > c:\log.txt 
whoami >> c:\log.txt 
net use Z:\ \\192.168.2.123\share\ password /user:userWithAdminRightsInTarget  
copy c:\aTestFile.txt Z:\Success.txt 
net use Z:/DELETE 

Скажем ComputerSource является компьютер, на котором IIS проводит веб-сайт CMS и в котором находится командный файл, и ComputerTarget является компьютер, на котором я хочу скопировать файлы.

Если я запустил командный файл вручную, дважды щелкнув его, все команды будут успешно запущены; результат whoami в c: \ log.txt отображает учетную запись пользователя, которая зарегистрирована на сервере, и файл успешно скопирован.

Однако, если я запускаю командный файл с веб-сайта CMS, он выполняет первую строку «echo starting> c: \ log.txt», но после этого выходит из строя.

Оба коммуникатора являются частью домена Мы протестировали приложение, используя разные доменные имена, даже учетные записи администратора домена. Мы использовали олицетворение на веб-сайте (указанное в файле web.config сайта cms), а также используя учетные записи администратора домена в системе безопасности IIS. Результат команды whoami при запуске командного файла с веб-сайта - nt/network service. Мы практически почти все пытались.

Мы будем признательны за любые идеи и помощь, которые могут предоставить любой человек.

спасибо.

ответ

1

Вам необходимо изменить идентификатор пользователя, прикрепленный к пулу приложений данного веб-сайта, в учетную запись, которая имеет эти разрешения. В принципе, та же учетная запись, которую вы выполняете в web.config, также должна указываться как идентификатор пула приложений сайта.

+0

Прямо на месте. Я смог запустить пакетный файл из IIS после создания нового пула приложений с учетными данными домена. Единственная странная вещь, оставшаяся сейчас, заключается в том, что программа, используемая для запуска даже с использованием службы nt/network ... Сетевая услуга работает как \ $ - где учетная запись компьютера указывается, когда компьютер присоединяется к домену. Используя эту учетную запись, компьютер должен иметь возможность подключаться к общим ресурсам на других серверах, если только что-то не пошло на эту учетную запись компьютера, или политика блокирует это - это похоже на то, что мы испытываем. большое спасибо –

0

Или, может быть, вызывать командный файл с помощью команды Runas, чтобы вы могли указать пользователя, чтобы он выдавал себя за себя?

Смежные вопросы