Так что я пытаюсь написать скрипт PowerShell, который делает следующее:Использование планировщика задач для запуска сценария PowerShell после перезагрузки
- Скачать & установить обновления для Windows (сделано)
- Автоматически перезагружает (сделано)
- Проверки после перезагрузки, если есть еще какое-либо обновление
- возвращается, чтобы начать недо больше нет обновлений не осталось
я уже построил свой Powershell скрипт следующим образом:
Import-Module PSWindowsUpdate
Get-Command –module PSWindowsUpdate
Add-WUServiceManager -ServiceID 7971f918-a847-4430-9279-4a52d1efe18d
Get-WUInstall –MicrosoftUpdate –AcceptAll –AutoReboot
который работает идеально.
Однако, в зависимости от некоторых факторов, возможно, что после перезагрузки, которые могут быть загружены и установлены, все еще доступны обновления.
Что я хочу сделать, так это продолжать выполнение сценария выше после каждой перезагрузки до тех пор, пока не будет добавлено больше обновлений для загрузки &.
Что я нашел, это Task scheduler
в Windows, которое может пригодиться.
Что я и построил это «логика», чтобы проверить, есть ли какие-либо обновления остаются (и установить их):
$Output = (Get-WUInstall -MicrosoftUpdate -ListOnly) | Out-String
if($Output.Contains("Update"))
{
Write-Host "Updates Available, they will be installed..."
Get-WUInstall –MicrosoftUpdate –AcceptAll –AutoReboot
}else
{
Write-Host "There are no updates available. "
}
и кусок код выше, также работает безупречно.
Моего вопроса был сообщить, каким образом я могу позволить этому скрипт (или несколько сценариев?) Запускается после каждой перезагрузки не до тех пор пока больше нет обновлений остались ...
Благодаря
Большое спасибо TToni, но я думал, не означает ли это, что мой скрипт продолжает работать после каждой перезагрузки (даже если больше нет обновлений осталось?) , Или вы смотрите на это как на «сценарий, используемый в долгосрочной перспективе»? –
Вы можете добавить логику к своему скрипту, который удаляет запланированную задачу, если больше нет обновлений для установки с помощью этого командлета: 'Unregister-ScheduledTask' (см. Https://blogs.technet.microsoft.com/heyscriptingguy/2015/01/16/powertip-use-powershell-to-delete-schedule-task /) –
Спасибо, Марк! Я обязательно проверю его –