👋 Привет, админы!
Сегодня расскажу про один неприятный и коварный момент, с которым столкнулся буквально на днях - невозможность запустить скрипт 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👉 @channel_win_sysadmin