locked
Не удаётся запустить сценарий PowerShell из планировщика заданий RRS feed

  • Вопрос

  • добрый день. есть вот такой скрипт. в среде powershell_ise работает без проблем, пытаюсь запускать его с помощью планировщика задач,прописываю C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe  "C:\download and install.ps1"   - не отрабатывает. в чем может быть проблема?

    $source = "http://miuz.ru/files/IT/TeamViewer_Host.msi"
    $destination = "c:\TeamViewer_Host.msi"
    $name = hostname

    $wc = New-Object System.Net.WebClient
    $wc.DownloadFile($source, $destination) | Out-Null
    ([wmiclass]"\\$name\root\cimv2:win32_product").Install("$destination") | Out-Null
    remove-item $destination | Out-Null
    shutdown.exe -r -f -t 20 -c "Не волнуйтесь. Компьютер перезагрузится через 20 секунд."


    • Изменено Vasily GusevModerator 8 февраля 2012 г. 2:20 Исправил на адекватное название
    7 февраля 2012 г. 5:43

Ответы

  • попробовал все - не заработало. нашел вот какой выход. в bat файле прописал: powershell "C:\dowin.ps1" . сделал из него файл exe. в планировщике запускаю именно этот exe-шник. остается только менять сами скрипты powershell. спасибо всем за помощь.
    • Помечено в качестве ответа KazunEditor 8 февраля 2012 г. 8:03
    8 февраля 2012 г. 5:38

Все ответы

  • Вывод  Get-ExecutionPolicy  приведите
    7 февраля 2012 г. 7:29
  • Restricted
    7 февраля 2012 г. 8:43
  •  Set-ExecutionPolicy RemoteSigned или Unrestricted

    7 февраля 2012 г. 8:46
  • выполнил Set-ExecutionPolicy RemoteSigned, теперь при вводе Get-ExecutionPolicy выводится RemoteSigned, но все равно не отрабатывает. в скрипте оставил только последнюю строчку (shutdown.exe -r -f -t 20 -c "Не волнуйтесь. Компьютер перезагрузится через 20 секунд.") - не отработало. запустил powershell и попробовал скопировать туда эту строчку - все отработало, комп перезагрузился. может вназначении задания "своя грамматика" ?
    7 февраля 2012 г. 9:04
  •  OS  не Win7 ? может указать в явном виде  от какого пользователя запускать?
    7 февраля 2012 г. 9:10
  • ОС - win xp.

    прописал вот так:

    C:\Windows\System32\net.exe use $RemotePath admin /user:admin
    $source = "http://miuz.ru/files/IT/TeamViewer_Host.msi"
    $destination = "c:\TeamViewer_Host.msi"
    $name = hostname

    #$wc = New-Object System.Net.WebClient
    #$wc.DownloadFile($source, $destination) | Out-Null
    #([wmiclass]"\\$name\root\cimv2:win32_product").Install("$destination") | Out-Null
    #remove-item $destination | Out-Null
    shutdown.exe -r -f -t 20 -c "Не волнуйтесь. Компьютер перезагрузится через 20 секунд."

    результат тот же. у меня пользователь и пароль одинаковые.

    7 февраля 2012 г. 9:21
  • shutdown.exe -r -f -t 20 -c "Не волнуйтесь. Компьютер перезагрузится через 20 секунд."  - отрабатывает в планировщике?

    C:\Windows\System32\net.exe use $RemotePath admin /user:admin  - это разве не подключение сетевого диска? нужно саму задачу запускать от администратора.

    7 февраля 2012 г. 12:09
  • Попробуйте запустить PowerShell в планировщике с параметром и переименуйте скрипт для теста без пробелов:

    powershell -ExecutionPolicy ByPass -File C:\dowin.ps1

    7 февраля 2012 г. 12:32
    Отвечающий
  • Я бы сначала убедился в чем именно проблема, в сценарии или в его запуске.

    Добавьте в начало сценария строку типа:

    "Script started" | Out-File c:\scheduler.txt


    AKA Xaegr, MVP: PowerShell Блог: http://xaegr.wordpress.com

    8 февраля 2012 г. 2:22
    Модератор
  • попробовал все - не заработало. нашел вот какой выход. в bat файле прописал: powershell "C:\dowin.ps1" . сделал из него файл exe. в планировщике запускаю именно этот exe-шник. остается только менять сами скрипты powershell. спасибо всем за помощь.
    • Помечено в качестве ответа KazunEditor 8 февраля 2012 г. 8:03
    8 февраля 2012 г. 5:38

    • Cоздаем новую задачу, условно назовем ее «Example Task».
    • Выбираем исполняемый файл: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
    • Задаем имя и интервал повторения.
    • Задаем учетную запись, от имени которой будет выполняться задача.
    • Ставим галочку «Оpen advanced properties…» и нажимаем Finish.
    • В поле «Run» дописываем параметры запуска: -noprofile -command C:\Scripts\TestScript.ps1

    отпишитесь, помогло или нет.

    • Предложено в качестве ответа Dzhun Nikolay 24 октября 2012 г. 14:07
    21 марта 2012 г. 10:37
  • Спасибо Стас. Помогло.
    • Предложено в качестве ответа SergeyVZ 23 июля 2017 г. 11:08
    24 октября 2012 г. 14:06
  • Помогло, но созданная в планировщике задача запускается только с параметром "Выполнять только для зарегистрированного пользователя". Если выбрать опцию "Выполнять вне зависимости от регистрации пользователя", ввести имя пользователя и пароль и сохранить задание -скрипт не стартует. У пользователя с введенными учетными данными доступ к компьютеру имеется.

    13 августа 2013 г. 7:40
  • Помогло, но созданная в планировщике задача запускается только с параметром "Выполнять только для зарегистрированного пользователя". Если выбрать опцию "Выполнять вне зависимости от регистрации пользователя", ввести имя пользователя и пароль и сохранить задание -скрипт не стартует. У пользователя с введенными учетными данными доступ к компьютеру имеется.


    Пользователю назначено  право - Log on as batch job ? 
    13 августа 2013 г. 8:37
    Отвечающий