Пакетная обработка вручную выполняется хорошо. Но при запуске из планировщика задач выдает ошибку

В Windows Server 2008 я планировал задачу для запуска командного файла, который, в свою очередь, запускал консольное приложение. При двойном щелчке по приложению оно работает отлично. Но при запуске из планировщика задач я получал следующую ошибку в журналах.

exception from hresult 0x800a03ec

Идентификатор, с которым я вошел в систему и у запущенного планировщика задач были полные права администратора.

Я пробовал эти решения .. Пакетный файл запускается вручную, но не в планировщик задач

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

Пакетный запуск выполняется вручную, но не в запланированной задаче

Но вопрос не решен. Фактически, при запуске из планировщика задач он запускает как сообщения об успехе, так и сообщения об исключении в консольном приложении. Но это не тот случай, когда запускается вручную. Нужна помощь!!

Примечание. Все выходные отчеты, которые я обрабатываю через консольное приложение, будут в формате .xlsx.

Пакетный файл, как указано ниже

@ECHO. 
@ECHO /***************************************************************/ 
@ECHO               Report Application 
@ECHO /**************************************************************/
@For /F "tokens=2,3,4 delims=/ " %%A in ('Date /t') do @( 
            Set Month=%%A
            Set Day=%%B
                Set Year=%%C
)

 SET DRV=E:\ReportApplication
cd %DRV%\bin\Release\

ReportSolution.exe >> %DRV%\Log\ReportSolutionlog%Month%%DAY%%Year%.txt
cd\
cd %DRV%


@ECHO  Application is completed successfully
@ECHO /**********************************************/

person 1Sherlock    schedule 21.04.2015    source источник


Ответы (2)


Наконец проблема была решена. Не думаю, что проблема связана с командным файлом или приложением.

Это решение находится в ...

・ Windows 2008 Server x64

Пожалуйста, создайте эту папку.

C: \ Windows \ SysWOW64 \ config \ systemprofile \ Desktop

・ Windows 2008 Server x86

Пожалуйста, создайте эту папку.

C: \ Windows \ System32 \ config \ systemprofile \ Desktop

... вместо dcomcnfg.exe.

Эта операция устранила проблемы автоматизации делопроизводства в моей системе.

Папка рабочего стола кажется необходимой в папке системного профиля, чтобы открыть файл в Excel.

Он исчезает из Windows2008, в Windows2003 была папка, и я думаю, что это вызывает эту ошибку.

Я нашел этот ответ в указанной ниже ссылке. Ответ Огавы.

https://social.msdn.microsoft.com/Forums/en-US/b81a3c4e-62db-488b-af06-44421818ef91/excel-2007-automation-on-top-of-a-windows-server-2008-x64?Forum=Innovateonoffice

Но я понятия не имею, как создание пустой папки решило проблему. Но это работает ... Надеюсь, это будет полезно для кого-то с похожей проблемой.

person 1Sherlock    schedule 29.04.2015
comment
Это действительно очень интересно. Было бы также интересно добавить выше вызов ReportSolution.exe, сначала строку if not exist E:\ReportApplication\Desktop md E:\ReportApplication\Desktop, а затем строку set "USERPROFILE=E:\ReportApplication" в случае, если Excel проверяет папку %USERPROFILE%\Desktop. Это не сработает, если Excel получит каталог профилей системной учетной записи непосредственно из реестра Windows. - person Mofi; 29.04.2015

Следующие 2 строки могут быть проблемой:

SET DRV=E:\ReportApplication
cd %DRV%\bin\Release\

cd без параметра /D не изменяет текущий привод. Таким образом, при текущем рабочем каталоге C:\Windows\System32, как обычно при запуске командного файла с планировщиком задач, изменение каталога не работает, и %SystemRoot%\System32 (что лучше) остается текущим рабочим каталогом.

При двойном щелчке командного файла Windows устанавливает каталог командного файла как текущий рабочий каталог. Это приводит к созданию рабочего командного файла при двойном щелчке, когда он находится на диске E:.

Решение:

SET "DRV=E:\ReportApplication"
cd /D "%DRV%\bin\Release\"
person Mofi    schedule 22.04.2015
comment
Я внес изменения, о которых вы упомянули, но до сих пор ситуация не изменилась. Когда я дважды щелкнул и запустил приложение из командного файла, он работал нормально. Я также заметил, что исключение возникает в производственном приложении при открытии и записи в Excel Sheet. Это происходит только при запуске через планировщик задач. Любое другое предложение? - person 1Sherlock; 24.04.2015
comment
Спасибо за помощь в решении проблемы. Это было решено. Код, относящийся к excel и xls, был написан в reportapplication.exe, упомянутом в командном файле. Этот пакет просто запустит приложение и создаст файл журнала. - person 1Sherlock; 29.04.2015