Lorttt,
Вот решение, способное автоматизировать процесс в рамках Вашей постановки задачи, пропишите свои пути на машине клиента
Код:

DirSoft = "Z:\loc\tra la la\Factory" 'Папка с софтом на локальной машине
DirUpd = "\\192.168.1.11\www\Factory" 'Папка с обновлениями на сервере
DirArc = DirSoft + "\Box_Arc" ' Папка с архивными копиями
NDayCopy = 7 ' Сколько дней храним копии
ErrTime = 60 ' Время (сек) отображения сообщения об ошибке перед завершением скрипта
Browser = "C:\Program Files\Internet Explorer\iexplore.exe" ' Екзешник эксплорера
ParamStart = "https://gomel.today/" ' Параметр запуска эксплорера с задачей
NCancel = 1 ' Число напоминаний о завершении браузера. Затем он будет убит принудительно
TCancel = 120 ' Время (сек) ожидания реакции на запрос
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WShell = CreateObject("WScript.Shell")
On Error Resume Next ' ==========
Set FDirSoft = FSO.GetFolder(DirSoft)
If Err.Number <> 0 Then
LL = WShell.Popup(DirSoft + vbCrLf + vbCrLf + "Код ошибки " + CStr(Err.Number) + vbCrLf + Err.Description, ErrTime, "Ошибка открытия папки", 16)
WScript.Quit
End If
Set FDirUpd = FSO.GetFolder(DirUpd)
If Err.Number <> 0 Then
LL = WShell.Popup(DirUpd + vbCrLf + vbCrLf + "Код ошибки " + CStr(Err.Number) + vbCrLf + Err.Description, ErrTime, "Ошибка открытия папки", 16)
WScript.Quit
End If
Set FilesSoft = FDirSoft.Files
Set FilesUpd = FDirUpd.Files
If FilesUpd.Count = 0 Then WScript.Quit
For Each FileNew In FilesUpd
NameUpd = FileNew.Name
MakeDir = True
For Each FileOld In FilesSoft
NameSoft = FileOld.Name
If NameUpd = NameSoft Then
MakeDir = (FileOld.DateLastModified <> FileNew.DateLastModified)
If MakeDir Then Exit For
End If
Next
If MakeDir Then Exit For
Next
On Error GoTo 0
If MakeDir Then
Call Term(Browser, NCancel, TCancel)
On Error Resume Next ' ==========
' Делаю папку для архива
If Not FSO.FolderExists(DirArc) Then FSO.CreateFolder (DirArc)
DirArcN = Now()
DirArcN = DirArc + "\" + CStr(Year(DirArcN) * 10000 + Month(DirArcN) * 100 + Day(DirArcN)) + "_" + Mid(CStr(1000000 + Hour(DirArcN) * 10000 + Minute(DirArcN) * 100 + Second(DirArcN)), 2, 6)
FSO.CreateFolder (DirArcN)
' Перемещаю имеющееся в архив
If FilesSoft.Count > 0 Then
LL = FSO.MoveFile(DirSoft + "\*.*", DirArcN)
If Err.Number <> 0 Then
LL = WShell.Popup("Обратитесь в техподдержку" + vbCrLf + vbCrLf + DirArcN + vbCrLf + "Код ошибки " + CStr(Err.Number) + vbCrLf + Err.Description, ErrTime, "Не создана копия задачи", 16)
WScript.Quit
End If
End If
' Копирую обновления
LL = FSO.CopyFolder(DirUpd, DirSoft)
If Err.Number <> 0 Then
LL = WShell.Popup("Обратитесь в техподдержку" + vbCrLf + vbCrLf + DirSoft + vbCrLf + "Код ошибки " + CStr(Err.Number) + vbCrLf + Err.Description, ErrTime, "Обновление не проделано", 16)
WScript.Quit
End If
' Удалю очень старые копии
Set FDirArc = FSO.GetFolder(DirArc)
Set FoldArc = FDirArc.SubFolders
For Each Fold In FoldArc
If DateDiff("d", Fold.DateCreated, Now()) > NDayCopy Then
FSO.DeleteFolder (DirArc + "\" + Fold.Name)
End If
Next
WShell.Run """" + Browser + """ " + ParamStart, 1, False
On Error GoTo 0
End If
Sub Term(Browser, NCancel, TCancel)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WShell = CreateObject("WScript.Shell")
MsgTxt = ""
MsgTxt = MsgTxt + "Программное обеспечение нуждается в обновлении." + vbCrLf
MsgTxt = MsgTxt + "Закройте все окна с браузером. Нажмите ""OK""" + vbCrLf + vbCrLf
MsgTxt = MsgTxt + "В противном случае программное обеспечение" + vbCrLf
MsgTxt = MsgTxt + "будет завершено принудительно" + vbCrLf
MsgTxt = MsgTxt + "с риском потери результатов Вашей работы" + vbCrLf
For i = 1 To NCancel
LL = WShell.Popup(MsgTxt, TCancel, "Внимание! ПО должно обновиться", 49)
If LL = 2 Then WScript.Quit
Next
Proc = FSO.GetFileName(Browser)
Set WMI = GetObject("winMgmts:")
SQuery = "Select *From Win32_Process Where Name=" + """" + Proc + """"
Set Processes = WMI.ExecQuery(SQuery)
If Processes.Count = 0 Then Exit Sub
On Error Resume Next
For Each Process In Processes
Process.Terminate
Next
On Error GoTo 0
End Sub
Тестируйте, ибо в любой программе существует хотя бы одна ошибка

Как это работает:
Сохраните скрипт в файл с расширением .vbs на клиентской машине в кодировке Windows 1251.
1. При запуске скрипта на клиентской машине вручную:
1.1. Сравниваются файлы на сервере и на клиентской машине. Если все даты изменения файлов на сервере и у клиента совпадают и все файлы у клиента присутствуют, то не делаем ничего.
1.2. В противном случае:
1.2.1. Если у клиента запущен браузер, из-под которого работает задача, выдаётся запрос о том, что его работу надо завершить.
Пользователю даётся на это время. Если пользователь не реагирует, браузер завершится принудительно. Точнее, закроются все окна и все экземпляры браузера, даже если он используется для других целей.
У пользователя остаётся возможность отказаться от обновления в отведённое на реагирование время.
1.2.2. При отсутствии запущенного браузера все файлы задачи перемещаются в архивную папку. Я бы предложил, например, такую иерархию:
Z:\loc\tra la la\Factory\Box_Arc\20170619_115818
Z:\loc\tra la la\Factory\Box_Arc\20170619_164201
В любом случае, считаю необходимым иметь отдельную выделенную папку для архивов. Не обязательно в Factory.
1.2.3. Копируются все файлы с сервера в папку задачи.
1.2.4. Просматривается архивная папка. Папки-архивы старше указанного количества дней, удаляются. Именно поэтому требуется для папок-архивов отдельная папка, чтобы не удалить лишнего. А если их не удалять, то получим в конце концов их громадное количество.
1.2.5. Запускается браузер. В параметре адрес задачи. Пропишите правильный.
2. Вариант, который оставит Вас без работы и грозит увольнением
(Вы целый день этим вручную занимаетесь, теперь это будет делаться без Вас

).
Поставьте этот скрипт в запланированные задания в планировщике у клиента, чтобы он работал ежедневно несколько раз в день. Он сработает точно так же, как вручную. Единственное, зачем Вы нужны, выложить обновление на сервер. При отсутствии обновления пользователь работу скрипта не заметит. При обновлении пользователь в состоянии адекватно ответить.