1

Я пытаюсь запланировать запуск командного файла через стороннее приложение, однако выходной файл не создается в каталоге. Если я бегу.BAT-файл из командной строки, он работает, и файл создается. Также использование расписания Windows также будет успешным.

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

Стороннее программное обеспечение покажет успех, так как он был в состоянии успешно вызвать.BAT-файл для запуска, однако он не контролирует другие EXE-файлы, вызываемые в скрипте.

Я могу запустить простой.BAT-файл в стороннем программном обеспечении, например, команда копирования.

.BAT У меня проблемы с вызовами скомпилированного EXE-файла, который запускает Excel для создания файла в определенном месте.

Файл .bat вызывает что-то.exe, а затем вызывает Excel.exe:

C:\ somebody.exe -o D:\ filename.xlsm C:\ filename.xlsm refresh_pivot

Как вы думаете, это проблема с разрешениями? Я использовал Process Monitor для проверки ошибок Access Denied, но, похоже, все работает в соответствии с трассировкой. Он работал на не 64-битной ОС, сейчас я использую 64-битную Win2008.

2 ответа2

0

Под какими учетными данными пользователя запускается запланированная задача? Был ли запущен и настроен Excel под этой учетной записью? У меня интуиция говорит, что это то, где все рушится - Office не прошел первый запуск с учетной записью, в которой запущен пакетный файл.

0

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

Команда будет выглядеть примерно так: C:\> runas /user: DOMAIN\service_acct "schedule.bat"

Я также попытался бы заменить фактическую командуthing.exe для командного файла и посмотреть, имеет ли он какой-либо другой вывод, например:-C:\> runas /user:DOMAIN\service_acct "что-то.exe -o D:\filename.xlsm C:\filename.xlsm refresh_pivot "

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .