среда, 7 октября 2015 г.

Powershell. Запуск скриптов из планировщика

  Понадобилось мне ежедневно автоматически запускать Powershell-скрипт. Я думал что достаточно указать планировщику PS1-файл скрипта. Но ошибся.
  В решении проблемы помогла статья Запуск PowerShell скриптов по расписанию. Все оказалось сложнее но лишь чуть-чуть.
Фото 1. Окно  "Изменение действия" планировщика
  В планировщике заходим в свойства нашего ежедневного задания. Переходим на вкладку "Действия". Тут в поле "Программа или сценарий" надо указать полный путь к программе Powershell.exe. На Windows 10 путь выглядит так "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe".
  А скрипт надо указать в поле "Добавить аргументы (необязательно)". Если скрипт должен получать параметры из командной строки, то поле  надо заполнить так:
-Command "& {D:\Powershell\script.ps1 Param}"
  Здесь "D:\Powershell\script.ps1" - это файл скрипта, а "Param" - параметр, который скрипт должен получать.
  Остальные вкладки на фото 2 настраиваются обычным образом и здесь объяснятся не будут.
  Если скрипту не надо передавать параметр, то аргумент можно упростить до вида:
-File "D:\Powershell\script.ps1"
  Или еще проще:
 D:\Powershell\script.ps1
  Последние два варианта пока не пробовал.
  Для успешной работы скрипта надо изменить политику выполнения Powershell.