Сценарий PowerShell запускается вручную, но не через планировщик задач - PullRequest
0 голосов
/ 06 марта 2020

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

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

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

Моя основная задача c настроена как

Action: Start a program

Program/script: PowerShell

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

1 Ответ

0 голосов
/ 07 марта 2020

Windows 10 64-бит. PowerShell 5.1

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

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

screenshot task scheduler

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

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

Действия скрипта PowerShell:

-file C:\Users\Administrator\Desktop\script.ps1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...