Скрипт PowerShell не запускается, если задан в планировщике задач - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь создать задачу с помощью powershell, чтобы удалить некоторые файлы старше 6 часов, если я запускаю скрипт из powershell, проблем не возникает, если я пытаюсь выполнить его из планировщика задач, ничего не происходит ..

Вызовите Powershell.exe в моем расписании:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

Установите эти параметры:

-NoProfile -ExecutionPolicy Bypass -Command -NonInteractive -File "C:\Scripts\DeleteFilesDiff3H.PS1"

В чем может быть проблема, если планировщик задач не запускает мой скрипт?

Пытался применить некоторые решения, обеспечивающие подобные проблемы, но безуспешно

$Path = "E:\MyPath"
$now = Get-Date

Get-Childitem * |
Where-Object { $_.LastWriteTime -le $now.AddHours(-6) } |
Remove-Item -Recurse -Force

Я получил это сообщение:

Task Scheduler started "{38dcd44b-4210-473b-921e-3cc1442ff03b}" instance of the "\Delete Files 3H" task for user "my user".

Task Engine "S-1-5-21-159114655-2248028564-2417230598-213599:My User:Interactive:LUA[2]"  received a message from Task Scheduler service requesting to launch task "\Delete Files 3H" .

Task Scheduler launched "{38dcd44b-4210-473b-921e-3cc1442ff03b}"  instance of task "\Delete Files 3H" due to a time trigger condition.

Task Scheduler successfully completed task "\Delete Files 3H" , instance "{618e6f44-b523-4c56-ae0b-04d3552391cc}" , action "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" with return code 0.

1 Ответ

4 голосов
/ 03 июня 2019

Вы не используете определенную переменную $path, поэтому Get-ChildItem никогда там не заглянет. Обновите свой код до следующего и проверьте, работает ли он для вас:

$Path = "E:\MyPath"
$now = Get-Date

Get-Childitem -path $Path |
Where-Object { $_.LastWriteTime -le $now.AddHours(-6) } |
Remove-Item -Recurse -Force
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...