#Что означает неисправность и ограничения
Программа работает при обычном запуске, но при запуске из планировщика заданий появляется ошибка загрузки DLL. Часто меняется контекст учётной записи, рабочая папка, интерактивность сеанса или доступ к сетевым ресурсам. Применимо к собственной задаче пользователя. Не редактируйте задания обновлений, безопасности и корпоративного администрирования без разрешения.
#Возможные причины и отличительные признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Отличается рабочий каталогПрограмма загружает собственные DLL из относительного пути. | Вручную из каталога приложения всё работает, из задачи — нет. | Проверить поле «Рабочая папка». |
| Задача выполняется без сеанса пользователяПриложению нужны графический профиль или пользовательская среда. | Проблема только при «Выполнять независимо от входа пользователя». | Использовать поддерживаемый консольный режим или интерактивный запуск. |
| Разные учётные данные и доступУ задачи другая учётная запись и иные сетевые диски. | Отказ чтения профиля/сети только из задания. | Сверить разрешённую учётную запись и UNC. |
#Пошаговая диагностика и исправление
- Определите, относится ли сообщение к DLL или только к аварийному завершениюВ Windows 10/11 повторите на тестовых данных действие «ошибка возникает только при запуске из задачи планировщика» не более одного раза, запишите полный текст окна, имя приложения, его версию, дату и точное время. Если окно говорит «Не найден ...dll», важны имя и место файла; если в журнале лишь «Сбойный модуль», это может быть место сбоя процесса, а не повреждённая DLL. Не придумывайте номер ошибки или имя библиотеки.
- Подготовьте резервную копию и границы применимостиСохраните документы и нужные данные приложения отдельно от рабочего каталога. На управляемом компьютере согласуйте изменения с администратором. До выяснения причины не удаляйте и не переименовывайте файлы в
C:\Windows\System32,SysWOW64,WinSxSи не скачивайте отдельные DLL с сайтов-сборников: версия и назначение должны определяться производителем.
- Найдите запись именно этого процесса в журнале WindowsНажмите Win+R →
eventvwr.msc→ «Журналы Windows» → «Приложение». Укажите интервал вокруг записанного времени и найдите источник «Application Error» с событием 1000, если процесс аварийно завершился; может присутствовать Windows Error Reporting 1001. В «Общие» запишите имя сбойного приложения, модуль, путь, код исключения и время. Если события нет, ищите собственный журнал программы, а не подставляйте типовой код. - PowerShell обычного пользователяWindows · PowerShellКомандаPowerShell обычного пользователя. Команда только читает до 15 последних событий Application Error с ID 1000 за два дня: сопоставьте время и EXE. Если совпадений нет, появится сообщение о том, что события не найдены — это не доказательство исправления.
Get-WinEvent -FilterHashtable @{LogName='Application'; Id=1000; StartTime=(Get-Date).AddDays(-2)} -MaxEvents 15 | Select-Object TimeCreated,Message
- Сверьте расположение и происхождение модуляДля названной DLL запишите полный путь из сообщения/журнала. Если модуль лежит в каталоге установленной программы, начинайте с её проверки и обновления у изготовителя. Если путь системный, это само по себе не доказывает повреждение Windows; сравните, падают ли другие приложения. Для подозрительного неподписанного файла используйте только проверку через свойства файла/официальные средства, не запускайте его из неизвестного источника.
- Сохраните исходную задачу для откатаНажмите Win+R →
taskschd.msc, найдите свою задачу по имени и выберите «Экспорт…» в действиях, сохранив XML в отдельную папку. Запишите расписание, учётную запись и действие. Для системных или управляемых задач остановитесь и запросите администратора.
- Сверьте программу и аргументыДвойной щелчок по своей задаче → «Действия» → выберите действие → «Изменить». Сравните «Программа или сценарий» и «Добавить аргументы» с работающим ручным запуском. В поле программы должен быть правильный EXE/скрипт, а не произвольный DLL; при пробелах используйте корректное указание путей по справке приложения.
- Проверьте «Рабочая папка»В том же окне найдите «Рабочая папка (необязательно)» и проверьте, нужен ли каталог самой программы, где находятся её относительные файлы. Укажите путь к каталогу только по требованиям производителя, без имени EXE и лишних кавычек. Если не уверены, сначала запишите исходное значение и не сохраняйте изменения.
- Проверьте контекст пользователяНа вкладке «Общие» посмотрите «При выполнении задачи использовать следующую учётную запись», а также «Выполнять только для вошедшего пользователя»/«Выполнять вне зависимости от регистрации пользователя». Для приложения с обычным графическим интерфейсом фоновой режим может быть неподдерживаемым. Не ставьте «Наивысшие права» без подтверждённой необходимости.
- Проверьте путь к даннымЕсли действие обращается к сетевому диску
Z:, заменять его допустимо только после проверки правильного UNC-пути и доступа нужной учётной записи; задачи часто не видят пользовательские буквы дисков. Проверьте, что DLL находится в штатной папке продукта и доступна на чтение, а не в профиле другого человека.
- Сравните результат и историю запускаНа вкладке «История» проверьте время, итог запуска и возникновение ошибки, если история включена политикой; код результата выполнения задачи не равен автоматически коду загрузки DLL. При успешном ручном запуске и повторяемом сбое по расписанию передайте XML задачи без секретов и событие Application Error разработчику.
- Проверьте реальное исправление и соберите сведения при неуспехеВерните все настройки, которые менялись лишь для проверки и не дали результата. После обычного входа в Windows повторите исходный сценарий «ошибка возникает только при запуске из задачи планировщика» на тестовых данных и убедитесь, что завершена нужная операция, а не просто исчезло окно с предупреждением. Сравните новый журнал с исходным по времени, имени DLL и коду исключения. При сохранении ошибки передайте в поддержку производителя последовательность действий, версии, пути и журнал без паролей/личных документов.
#Что делать, если ничего не помогло
Если журнал называет системную DLL, но другие приложения исправны, вероятнее нужно исследовать сбой конкретного EXE или установленного расширения. Нельзя считать модуль в событии 1000 доказательством его повреждения. Для точной причины производитель приложения может запросить журнал и дамп с учётом приватности; без подтверждения не переустанавливайте Windows и не меняйте системные права.
#Как подтвердить результат
Проверьте не только исчезновение окна, но и успешное завершение действия: «ошибка возникает только при запуске из задачи планировщика». Повторите после перезапуска самой программы и проверьте время новых записей журнала. Если ошибка сохранилась или изменилась, запишите исходный и новый код отдельно.