1

Так что я пытаюсь написать скрипт 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. " 
    } 

и кусок код выше, также работает безупречно.

Моего вопроса был сообщить, каким образом я могу позволить этому скрипт (или несколько сценариев?) Запускается после каждой перезагрузки не до тех пор пока больше нет обновлений остались ...

Благодаря

ответ

1

Вы находитесь на правый трек уже. Просто добавьте запланированную задачу в свою систему, которая запускает файл powershell.exe с вашим скриптом в качестве параметра и задает триггер задачи «При запуске»

+0

Большое спасибо TToni, но я думал, не означает ли это, что мой скрипт продолжает работать после каждой перезагрузки (даже если больше нет обновлений осталось?) , Или вы смотрите на это как на «сценарий, используемый в долгосрочной перспективе»? –

+0

Вы можете добавить логику к своему скрипту, который удаляет запланированную задачу, если больше нет обновлений для установки с помощью этого командлета: 'Unregister-ScheduledTask' (см. Https://blogs.technet.microsoft.com/heyscriptingguy/2015/01/16/powertip-use-powershell-to-delete-schedule-task /) –

+0

Спасибо, Марк! Я обязательно проверю его –

1

Boxstarter справится с этим легче, чем с помощью собственных скриптов.

Тогда вы сохраните скрипт с этой командой:

# Update Windows and reboot if necessary 
Install-WindowsUpdate -AcceptEula 

Boxstarter можно также автоматизировать установку и настройку нагрузок другого программного обеспечения, используя шоколадным. См. this link для множества примеров.

Если это не работает, или если вы действительно хотите запустить собственный скрипт обновления, вам нужно посмотреть рабочие процессы, которые могут возобновиться с того места, где они были остановлены после перезагрузки. Проверьте эти две ссылки (link1, link2) на примерах

Смежные вопросы