Назад | Перейти на главную страницу

Агент SQL не может найти указанный файл

У меня есть задание агента SQL 2008 с одним Operating system (CmdExec) шаг:

C:\Scripts\Script.cmd

Script.cmd работает CS-скрипт.

Если я сбегу C:\Scripts\Script.cmd, все выглядит нормально - я получаю ожидаемый вывод журнала и echo %ERRORLEVEL% после этого показывает 0.

Однако когда я запускаю его через SqlAgent - я получаю ожидаемый вывод журнала, а затем

The system cannot find the file specified.  
Process Exit Code 1.  
The step failed.

Вывод журнала является полным и правильным, поэтому он делает запустите командный файл и EXE, который вызывает командный файл. Последнее, что делает CS-Script:

Console.WriteLine("Exiting at 2009-09-22 16:10:32 with Status {0}", exitCode);
return (int)exitCode;

который регистрируется в выводе, и полностью.

Какой файл не может найти?

Очистка кеша CS-Script сделала свое дело. Procmon действительно не помог, но показывал попадания в папку кеша пользователя в C:\Users\sql-agent-svc\AppData\Local\Temp\CSSCRIPT\Cache что побудило меня попробовать его очистить.

Поскольку это кеш для каждого пользователя, запуск CS-Script от имени администратора вручную использовал другой кеш, в котором не было проблем.

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