Как автоматизировать переустановку софта, требующего перезагрузки машины

Подскажите статью или tool, которые помогают автоматизировать переустановку (uninstall+install) софта, требующего перезагрузки машины после uninstall’а по какому-нибудь событию.

В идеальности вижу это так:

  • в папке обновился инсталяционный файл (.exe)
  • tool запустил процесс uninstall’a и прокликал next-next-next-finish
  • машина перезагрузилась по требованию uninstall
  • при загрузке машина запустила инсталяционный файл, который обновился в папке и установила программу (next-next-next-finish)

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

Скопировали новый файл с инсталяцией и добавили сервис в автозапуск при старте системы или на время с помощью коммандной строки и at, sc или OpenSCManager если вы любитель winapi
uninstall поддерживает коммандную строку с параметром silent, зачем тул для этого?
Машина перезагрузилась
Сервис выполнился в бэкграунде от имени аккаунта SYSTEM, проверили версию установленной программы, удалили сервис установки.

У sc есть графический режим который я никогда не исполььзовал

В cmd можно поколдовать с его паараметрами.