Долго бился, как обновить приложение VinteoDesktop на всём предприятии. В итоге - решил!
Для распространения решения использовал SCCM.
Скрипты для реализации алгоритма прикладываю в комментариях.
АЛГОРИТМ РЕШЕНИЯ:
- Запускается проверка наличия приложение VinteoDesktop в текущем пользователе.
- Если приложение имеет версию 4.15.2 или выше - Установлено.
- Проверка проходит по версии файла VinteoDesktop.exe в текущем профиле.
- Если приложения нет или оно ниже версии 4.15.2, то:
- Запустить проверку наличия приложения-зависимости "Удалятор", которое должно быть установлено перед VinteoDesktop 4.15.2:
- Если на компьютере есть файл C:\TEMP\VinteoRemover.log - Установлено, тогда:
- Вывести предупреждение пользователю о том, что:
- текущее приложение VinteoDesktop будет закрыто в течении 2 часов или как только будет нажата кнопка "ОК".
- Закрыть приложение VinteoDesktop
- Установить VinteoDesktop 4.15.2 в текущий профиль пользователя.
- Eсли на компьютере нет файла C:\TEMP\VinteoRemover.log:
- Вывести предупреждение пользователю о том, что:
- Приложение VinteoDesktop будет закрыто в течении 4 часов или как только будет нажата кнопка "ОК"
- Таймер обратного отсчета 14000 секунд (4 часа)
- Закрыть приложение VinteoDesktop.
- Создать файл C:\TEMP\Vinteo_MSG.log, как признак корректной установки приложения SCCM.
- Запустить приложение "Удалятор":
- Удалить все версии VinteoDesktop в:
- Program Files
- Program Files (x86)
- профилях всех пользователей
- создать на компьютере файл C:\TEMP\VinteoRemover.log
- Запустить установку VinteoDesktop 4.15.2 в профиле текущего пользователя:
- Вывести предупреждение пользователю о том, что:
- текущее приложение VinteoDesktop будет закрыто в течении 2 часов или как только будет нажата кнопка "ОК".
- Закрыть приложение VinteoDesktop
- Установить VinteoDesktop 4.15.2 в текущий профиль пользователя.
В итоге, для установки через SCCM, требуется:
- Приложение "VinteoDesktop 4.15.2"
- содержит исполняемый файл и bat-файл с необходимыми командами.
- установка проходит через bat обёртку т.к.:
- необходимо вывести предупреждение пользователю о том, что текущее приложение будет закрыто. Работает без таймера, но в в тексте сообщения указывается время запуска уведомления.
- без bat обёртки установка через SCCM в режиме "для пользователя" - зависает. Но если у пользователя есть админские права, то установка проходит корректно.
- Приложение "Удалятор"
- Зависимость с приложением "VinteoDesktop 4.15.2"
- выполняется перед установкой "VinteoDesktop 4.15.2"
- содержит скрипт PowerShell, который закрывает текущее приложение VinteoDesktop и удаляет все его версии из PFiles+Pfiles(x86)+профилей всех пользователей.
- выполняется в режиме "для системы".
- Файл VinteoRemover.log
- используется, как признак корректной работы приложения "Удалятор".
- Приложение "Уведомление"
- Зависимость с приложением "Удалятор".
- выполняется перед установкой приложения "Удалятор".
- содержит скрипт PowerShell, который выводит сообщение в текущий сеанс пользователя, с обратным отсчетом и кнопкой ОК (что бы не ждать).
- таймер 14000 сек (4 часа).
- устанавливается в режиме "для пользователя".
- Признаком установки является наличие файла C:\TEMP\Vinteo_MSG.log