Зарегистрируйте запланированную задачу с помощью New-ScheduledTaskTrigger для идентификатора события Windows
Привет, пользователи переполнения стека. Ни MSDN, ни Google не дают результатов ...
Я настроил пару запланированных задач через скрипт Powershell. Запланированные задания запускаются в определенное время.
Это все отлично работает. Но мне нужно настроить другую запланированную задачу, которая запускается, когда в журнале событий Windows регистрируется определенный идентификатор события.
Конечно, я могу настроить это вручную, но я хочу, чтобы это было частью моего автоматизированного сценария.
Это код, который у меня есть для запланированных задач, мне нужно заменить раздел $ Trigger = New-ScheduledTaskTrigger -At 4:00 am -Daily :
Copy-Item "\\networkDrive\Backups\scripts\Reset-Sessions.ps1" "c:\scripts\Reset-Sessions.ps1"
$Trigger= New-ScheduledTaskTrigger -At 4:00am -Daily
$User= 'Nt Authority\System'
$Action= New-ScheduledTaskAction -Execute "Powershell.exe" -Argument "-executionpolicy bypass -File c:\scripts\Reset-Sessions.ps1"
Register-ScheduledTask -TaskName "Reset-Sessions" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest -Force
Я изменил некоторые из каталогов и имен файлов для онлайн-целей.
Я был бы признателен, если бы кто-то мог направить меня в правильном направлении или помочь примером.
Я бы предпочел изменить только часть $ Trigger и не переписывать весь сценарий, но я бы понял, если это невозможно.
Я использую Powershell версии 5.1.
2 ответа
< Сильный > Step1 : Перейдите в eventvwr, затем создайте новое запланированное задание на основе вечернего события.
< Сильный > Step2 : Откройте powershell, затем покажите запланированное задание и посмотрите способ написания.
Шаг 3 : Прикрепите и проверьте это в своем скрипте.
Я создал временную Get-ScheduledTask и запустил следующую строку: все, что вам нужно сделать, это заменить подписку, чтобы удовлетворить ваши требования.
$A = (Get-ScheduledTask "Tmp" | select -ExpandProperty Triggers)
Вот еще один метод, который я использовал для решения проблемы:
Если вы пытаетесь сделать это на Windows Server до Server 2012, то, вероятно, у вас нет Get-ScheduledTask и New-ScheduledTaskTrigger и реестра -ScheduledTask модули в вашей системе Windows. Это означает, что сценарий в моем исходном вопросе и принятый ответ не будут работать.
- Обходной путь - создать нужную запланированную задачу вручную, а затем экспортировать ее в файл XML. Вы можете редактировать этот файл, если хотите, это обычный текстовый XML.
- Затем поместите ваш сценарий и XML-файл в один каталог.
- Измените сценарий, чтобы он был совместим со старой версией Powershell, чтобы импортировать файл XML.
schtasks /create /tn "Reset-Sessions" /xml "c:\scripts\Reset-Sessions.xml"
Ваше новое запланированное задание теперь должно быть зарегистрировано и активно.
Похожие вопросы
Новые вопросы
powershell
PowerShell - это кроссплатформенная утилита командной строки и сценариев от Microsoft. Используйте этот тег только для вопросов о написании и выполнении сценариев PowerShell. Вопросы программирования, относящиеся к кроссплатформенной версии PowerShell Core (Windows, macOS и Linux), должны быть помечены [powershell-core]. Вопросы о системном администрировании следует задавать в случае сбоя суперпользователя или сервера.