none
Не работают скрипты PowerShell в планировщике, возвращает код 2 или 1 RRS feed

  • Вопрос

  • Добрый день коллеги!

    Это не совсем вопрос а скорее заметка.

    Столкнулся с тем что скрипты не выполняются в планировщике возвращая код 1 или 2. Выполняю скрипт из самого PowerShell все ок.

    26 февраля 2012 г. 20:36

Ответы

  • Дело оказалось вот в чем. В триггерах в строке аргументы обычно мы пишем -nologo -noprofile D:\PoSh Scripts\script.ps1. Так вот если в пути есть хоть один пробел скрипт через планировщик выполняться не будет. Оказывается PoSh не умеет убирать пробелы в строке типа powershell -nologo -noprofile D:\PoSh Scripts\CheckFreeSpaceBilling.ps1, даже если заключить путь в кавычки он все равно говорит нам

    Имя "D:\PoSh" не распознано как имя командлета, функции, файла скрипта или выпо
    лняемой программы. Проверьте правильность написания имени, а также наличие и пр
    авильность пути, после чего повторите попытку.
    строка:1 знак:8
    + D:\PoSh <<<<  Scripts\Copy_TopPlan.ps1
        + CategoryInfo          : ObjectNotFound: (D:\PoSh:String) [], CommandNotF
       oundException
        + FullyQualifiedErrorId : CommandNotFoundException

    • Помечено в качестве ответа SteFFun 26 февраля 2012 г. 20:41
    26 февраля 2012 г. 20:41
  • На самом деле,что описали это не так.

    1) Добавляем параметр -File

    powershell -nologo -noprofile -File "D:\PoSh Scripts\script.ps1"

    2) Используем параметр -Command

    powershell -nologo -noprofile -Command "&'D:\PoSh Scripts\script.ps1'"

    • Помечено в качестве ответа SteFFun 27 февраля 2012 г. 5:43
    26 февраля 2012 г. 21:17
    Отвечающий

Все ответы

  • Дело оказалось вот в чем. В триггерах в строке аргументы обычно мы пишем -nologo -noprofile D:\PoSh Scripts\script.ps1. Так вот если в пути есть хоть один пробел скрипт через планировщик выполняться не будет. Оказывается PoSh не умеет убирать пробелы в строке типа powershell -nologo -noprofile D:\PoSh Scripts\CheckFreeSpaceBilling.ps1, даже если заключить путь в кавычки он все равно говорит нам

    Имя "D:\PoSh" не распознано как имя командлета, функции, файла скрипта или выпо
    лняемой программы. Проверьте правильность написания имени, а также наличие и пр
    авильность пути, после чего повторите попытку.
    строка:1 знак:8
    + D:\PoSh <<<<  Scripts\Copy_TopPlan.ps1
        + CategoryInfo          : ObjectNotFound: (D:\PoSh:String) [], CommandNotF
       oundException
        + FullyQualifiedErrorId : CommandNotFoundException

    • Помечено в качестве ответа SteFFun 26 февраля 2012 г. 20:41
    26 февраля 2012 г. 20:41
  • На самом деле,что описали это не так.

    1) Добавляем параметр -File

    powershell -nologo -noprofile -File "D:\PoSh Scripts\script.ps1"

    2) Используем параметр -Command

    powershell -nologo -noprofile -Command "&'D:\PoSh Scripts\script.ps1'"

    • Помечено в качестве ответа SteFFun 27 февраля 2012 г. 5:43
    26 февраля 2012 г. 21:17
    Отвечающий
  • Ну не все же такие продвинутые как Вы. Но за пояснения спасибо. У меня просто пока нет времени и особой необходимости детально изучать PoSh, хотя вещь очень занятная.

    27 февраля 2012 г. 5:43