Запуск сценария Powershell из планировщика задач - PullRequest
0 голосов
/ 24 апреля 2020

Мне нужно запустить скрипт PowerShell из планировщика заданий для SharePoint в Интернете. Сценарий:

  1. Получает версию документа из https://xxx.sharePoint.com/site/ggg.
  2. Выводится в файл .csv на локальном диске.
  3. Доступ https://xxx-admin.sharepoint.com для публикации CSV на xxx.Sharepoint.com/site/aaaa.

Скрипт работает отлично в PowerShell. Я не могу заставить его убежать от моей машины. Нет сообщения об ошибке или выходного файла на C: /.

Можно ли запустить этот скрипт на моей локальной машине?

Task Scheduler Settings

enter image description here

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

Для запуска сценариев PowerShell вам необходимо выполнить одно из двух действий. Измените политику выполнения на «RemoteSigned» (скрипт должен быть создан на этом компьютере) или «Unrestricted» (не рекомендуется), потому что по умолчанию он установлен на «Restricted», что не будет запускать никаких сценариев. Второй вариант игнорирует политику выполнения. Для начала откройте \ отредактируйте свой оригинальный скрипт powershell и инкапсулируйте его с помощью следующего синтаксиса "powershell -ExecutionPolicy ByPass { код скрипта идет сюда }" Кроме того, если вы хотите увидеть, генерируется ли ошибка при запуске запланированное задание, то вам нужно добавить этот аргумент "-NoExit". Причина, по которой консоль закрывается, заключается в том, что по умолчанию запланированное задание запускает сценарий в фоновой консоли, и оно закрывается сразу после того, как вам понадобится команда «-NoExit», чтобы оставить его открытым. Однако, если вы оставите аргумент "-NoExit", он будет держать все эти консоли открытыми при каждом запуске задачи. Поэтому убедитесь, что вы удалили его, если вы уверены, что скрипт работает успешно и без ошибок.

Пример синтаксиса инкапсулированного скрипта:

powershell -ExecutionPolicy ByPass {

   # Original script code here
}

Инкапсулированный скрипт который удерживает консоль от закрытия примера синтаксиса:

powershell -ExecutionPolicy ByPass -NoExit {

   # Original script code here
}

Создание запланированной задачи:

  1. Откройте планировщик задач, нажав "Windows Key + R" откроет диалоговое окно запуска и в текстовом поле "Открыть" type "taskschd.ms c"

  2. Нажмите «Создать задачу» и введите в поле ИМЯ имя, которое вы хотите дать этой задаче. Затем определите параметры безопасности, которые вы хотите использовать, для запуска от имени администратора используйте параметр «Запуск с самыми высокими привилегиями».

  3. Нажмите вкладку «Триггеры» , а затем нажмите "Новый" . Здесь вы выбираете то, что начинает задачу, выбирая из выпадающего списка, по умолчанию выбран график. Затем вы выбираете нужную частоту, время и другие предварительные настройки.

  4. Нажмите вкладку «Действия» , затем нажмите «Создать» и для Действия оставьте как "Запустить программу" в раскрывающемся списке . В текстовом поле «Программа / скрипт» введите «powershell.exe» и в поле «Добавить аргументы (опция)» тип -Файл «ПУТЬ ПОЛНОГО ФАЙЛА» и добавьте кавычки открытия и закрытия тоже. Например: -File "C: \ Users \ Public \ Documents"

  5. Нажмите вкладку "Условия" и оставьте значения по умолчанию для большей части или выберите другое условия.

  6. Нажмите вкладку «Настройки» , и обычно по умолчанию все в порядке, но вы можете выбрать другие настройки, если хотите.

https://blog.netwrix.com/2018/07/03/how-to-automate-powershell-scripts-with-task-scheduler/

0 голосов
/ 24 апреля 2020

Не совсем уверен, как вы его запустите, но ответить на ваш вопрос: да, может, если у вас установлен PowerShell и все необходимые библиотеки. Возможно, вам потребуется установить политику выполнения, если вы еще этого не сделали, и запустить сценарий с пользователем, у которого достаточно прав.

Проверьте следующие вопросы и ответы: Как запустить сценарий PowerShell

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...