Сценарий PowerShell запускается вручную, но не через планировщик заданий

У меня есть простой сценарий PowerShell с одной строкой. Он регистрируется в базе данных и запускает sql-скрипт запросов, который удаляет старые данные.

sqlcmd -U myUser -P myPassword -S localHost -i .\deleteOldData.sql

Когда я запускаю сценарий вручную в окне PowerShell, он работает отлично. Он войдет в базу данных и очистит старые данные. Но когда я создал базовую задачу в планировщике задач и запустил ее оттуда, он сказал, что завершился успешно, но не похоже, что он что-то делает. Он не удаляет старые данные.

Моя основная задача - настроить как

Action: Start a program

Program/script: PowerShell

Add Arguments: C:\Users\Administrator\Desktop\script.ps1

person humzaqureshi    schedule 06.03.2020    source источник
comment
В качестве аргументов вы должны использовать -команду C: \ Users \ Administrator \ Desktop \ script.ps1   -  person Shamus Berube    schedule 06.03.2020
comment
Попробуйте одно из двух: либо установите начальный путь в планировщике задач в тот же каталог, что и сценарий sql, либо настройте сценарий PowerShell, чтобы точно знать, где находится сценарий sql.   -  person AutomatedOrder    schedule 06.03.2020
comment
Согласитесь с другими, это вопрос пути. С другой стороны, хранить пароль в виде открытого текста в файле и передавать его в качестве аргумента в командной строке - плохая идея с точки зрения безопасности.   -  person Dusty Vargas    schedule 07.03.2020


Ответы (1)


64-разрядная версия Windows 10. PowerShell 5.1

Если это проблема безопасности / разрешений:

При запуске задачи используйте следующую учетную запись пользователя, чтобы вы могли наблюдать за задачей в действии: «Запускать, только когда пользователь вошел в систему» ​​и «Запускать с наивысшими привилегиями». Ищите сообщения об ошибках.

планировщик задач скриншотов Запускать только когда пользователь вошел в систему

Или создайте файл журнала задачи, чтобы вы могли искать ошибки. Когда вы создаете файл журнала таким образом, вы увидите уменьшенное / полное отсутствие вывода в окне консоли. Файл журнала будет заблокирован до завершения действия. Неоднократно открывайте и закрывайте файл журнала, чтобы увидеть ход выполнения действия, если вы не можете дождаться завершения действия.

-file C:\Users\Administrator\Desktop\script.ps1> %userprofile%\desktop\logfile.txt

Действия сценария PowerShell:

-file C:\Users\Administrator\Desktop\script.ps1
person somebadhat    schedule 07.03.2020