Назад | Перейти на главную страницу

Сценарий PowerShell не выполняет то, что должен делать при планировании с помощью планировщика задач Windows

Я нашел сценарий, который может удалять файлы старше X дней, и немного изменил его, чтобы сканировать разные сетевые папки, чтобы увидеть, есть ли файлы старше X дней. Теперь, когда я запускаю сценарий с PowerShell ISE сценарий работает нормально и делает то, что должен. Это занимает около часа.

Теперь, когда я пытаюсь запланировать сценарий с Windows Диспетчер задач, задача запускается и завершается через 10 секунд, но скрипт не запускается. Значит, файлы не были удалены?


Настройка запланированного задания:

Общее

Курок

Действие


Что я делаю не так? Или почему он не запускает скрипт?

Сценарий можно найти здесь.

Тебе надо Set-ExecutionPolicy чтобы учетная запись, выполняющая запланированную задачу, могла выполнять сценарии PowerShell:

Set-ExecutionPolicy -Scope LocalMachine Unrestricted

Согласно файлу справки для Set-ExecutionPolicy, область LocalMachine устанавливает политику для всех пользователей этого компьютера. В отличие от того, если бы вы просто Set-ExecutionPolicy Unrestricted из вашей собственной учетной записи, он устанавливает эту политику только для вашей собственной учетной записи. Кроме того, существуют отдельные политики для 32-разрядных и 64-разрядных версий PowerShell.

И если Set-ExecutionPolicy -Scope LocalMachine Unrestricted это слишком большая угроза безопасности для вас, вы можете установить его только для этого одного пользователя, войдя в систему как этот пользователь и выполнив это, или выполнив процесс в контексте безопасности этого пользователя и установив политику для этого пользователя.

О, и что ж, об этом, вероятно, не нужно говорить, но мы не можем знать, есть ли у пользователя, которого вы назначили для этой запланированной задачи, разрешения, необходимые для удаления материалов из этих UNC пути.