Сегодня расскажу про один неприятный и коварный момент, с которым столкнулся буквально на днях - невозможность запустить скрипт PowerShell из планировщика задач, хотя руками он работает идеально.
🧩 Суть:
Есть скрипт
.ps1, который делает бэкап и отправляет отчёт по почте. Запускаешь вручную — всё отлично. Но через Task Scheduler - тишина, никакой ошибки, ничего не происходит.🔍 Что помогло выяснить причину:
1. В Action указывал не сам скрипт, а запуск
powershell.exe с аргументами:
-ExecutionPolicy Bypass -File "C:\Scripts\Backup.ps1"
2. Обязательно указал "Start in" (рабочую папку), иначе относительные пути внутри скрипта не работали.
3. Заменил
powershell.exe на powershell.exe -NoProfile, чтобы избежать подвисаний из-за пользовательского профиля.4. В General поставил галочку "Run with highest privileges" - без этого не было доступа к сетевым путям и не выполнялись некоторые команды.
💡В итоге: Task Scheduler штука капризная, особенно с PowerShell. Поэтому всегда логируйте выход скрипта в файл, добавляйте
Start-Transcript и Stop-Transcript, и не забывайте про -NoProfile.📌 Полный пример команды в задаче:
Program/script: powershell.exe
Add arguments: -NoProfile -ExecutionPolicy Bypass -File "C:\Scripts\Backup.ps1"
Start in: C:\Scripts
💬 А у вас бывали такие странности с планировщиком задач? Как отлаживаете такие случаи?
👉 @win_sysadmin