Как я могу запланировать запуск сценария Powershell каждый день в 3 часа ночи в Windows 8?
3 ответа
РЕДАКТИРОВАТЬ: Это доказательство концепции, которая работала для меня.
откройте новый текстовый файл и введите
write-Host 'Hello World'
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
сохраните его как
hello.ps1
на рабочем столеоткрыть 32-битную версию powershell.exe с повышенными правами
(щелкните правой кнопкой мыши + откройте как администратор)
C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe
убедитесь, что вы не использовали версию x64, пока не захотите
C:\Windows\syswow64\Windowspowershell\v1.0\powershell.exe
В моем Windows 7 ярлык стартового меню Windows PowerShell (x86)указывает на версию x64 ! Эти версии используют отдельные параметры политики. Мне понадобилось время, чтобы понять это :)
Введите следующее, чтобы разрешить скрипты powershell, и подтвердите его с помощью Y
Set-ExecutionPolicy Unrestricted
Эта настройка сохраняется постоянно. Сделайте перезагрузку, чтобы проверить это.
проверьте политику powershell и подтвердите, что он по-прежнему неограничен
get-ExecutionPolicy
открыть окно задачи расписания
сделать запланированное задание, которое указывает на версию x86
C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe
Введите следующее для необязательного параметра:
c:\users\YOURUSERNAME\desktop\hello.ps1
Выполните задачу вручную, щелкнув правой кнопкой мыши в окне задачи расписания.
Интересно, почему написано "работает"
Нажмите F5, чтобы обновить. Вы заметите, что "все еще работающий" статус исчезает.
запустите 'taskschd.msc', перейдите к Powershell и создайте задание / расписание.
Мне потребовалось некоторое время, чтобы заставить мою запланированную задачу PowerShell работать.
Вот несколько тактик, которые мне помогли.
а) Получить простой сценарий PowerShell работает.
б) Понять все различные вкладки диспетчера задач, в том числе условия и действия (я думаю, что вы уже сделали это)
в) Смотреть путь к различным файлам.
Моей проблемой было не понять, что PowerShell - это программа, а сценарий - просто аргумент.
Другой незначительной помощью было введение -ExecutionPolicy Bypass перед именем файла, таким образом:
-ExecutionPolicy Bypass -File "D:\PShell\Process Task.ps1"
Наконец, я никогда не уверен насчет этикета SuperUser, но это моя страница на тему планирования PowerShell.