Автоматическое обновление M.E.Doc
Проект для автоматического обновления бухгалтерской программы M.E.Doc. Разработчики отключили обновление по интернету с версии 10.01.188 и выше, из-за чего стала недоступной быстрая массовая установка обновлений на серверах, а автоматизации обновления и так никогда не было. Этот проект не только полностью решает данную проблему, но и добавляет функции безопасного автоматического обновления.
Использование EzvitUpd очень простое - нужно только запустить файл ezvitupd.exe и дождаться, пока он по очереди обновит все установленные копии программы M.E.Doc. Поддерживаются версии 10.01.190 и выше, так как только начиная с этого номера обновления подписаны сертификатом "Limited Liability Company IT Expert" и EzvitUpd проверяет, правильная ли подпись у обновления, прежде чем устанавливать его. Если по ходу обновления возникнут ошибки, EzvitUpd сообщит точную информацию, что случилось и с какой копией M.E.Doc произошла проблема. Для включения тихого режима без вывода любых сообщений, например для использования в планировщике, используйте ключ /S.
Также перед обновлением проверяется, запущена ли у кого-то на сервере клиентская часть ezvit.exe, и выводится сообщение со списком пользователей, которым необходимо закрыть программу. Так администратор может настроить ярлык для пользователей, чтобы они самостоятельно запускали EzvitUpd от его имени, например с помощью AdmiLink или подобных программ. Для запуска EzvitUpd нужны права администратора, так как только в этом случае возможно перечисление процессов (query process ezvit.exe) и формирование списка пользователей, а также есть возможность завершать процесс ezvitInfo.exe, что и делает EzvitUpd перед началом обновления.
Добавлена возможность запускать обновление от имени конкретного пользователя. Это может пригодиться в том случае, если необходимо ограничить права службам ZvitGrp*. Для этого нужно сначала дать этому пользователю право управления службой, делается это с помощью утилиты
subinacl.exe командой "subinacl /service ZvitGrp1 /grant=Medoc", где ZvitGrp1 - имя службы, а Medoc - имя пользователя с ограниченными правами. Затем в свойствах службы следует настроить вход в систему от имени этого пользователя и перезапустить службу. Дальше от имени администратора следует сохранить пароль для пользователя с ограниченными правами командой "runas /savecred /user:Medoc *", где * - любая программа. После чего можно переименовать ezvitupd.exe в ezvitupd-*.exe, где * - имя пользователя, например ezvitupd-Medoc.exe, так EzvitUpd поймёт, от какого имени нужно запускать обновление с помощью runas с сохранённым паролем, и соответственно EzvitUpd нужно запускать от имени того администратора, который сохранил пароль. Примечание: при тестировании этой функции с внешним сервером Firebird иногда наблюдались рандомные ошибки обновления "Error reading data from the connection".