Описание

Проект для автоматического обновления бухгалтерской программы 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 нужно запускать от имени того администратора, который сохранил пароль.

Скачать: EzvitUpd 1.6 [1 MB]

EzvitUpd — автоматическое обновление M.E.Doc

17 мыслей о “EzvitUpd — автоматическое обновление M.E.Doc

  • 12.12.2017 в 17:50
    Постоянная ссылка

    выкачивание обновлений со страницы медка. алгоритм — проверяет наличие первого файла (*.zip) с сайта в папке, проверяет его дату, если совпадают то скрипт завершается, если нет то выкачивает и смотрит следующий.
    за наставничество благодарность товарищу Kazun.

    повершела 3 хватает (на 2 не проверял). можно использовать такую конструкцию:

    medoc.cmd:
    powershell %~dp0medoc.ps1
    
    medoc.cmd: для цикличности проверки
    :start1
    powershell %~dp0medoc.ps1
    ping -n 600 localhost > Nul
    goto :start1
    
    medoc.ps1:
    $downloadPage = Invoke-WebRequest -Uri 'https://www.medoc.ua/uk/page/update/'
    $downloadPage.Links | Where-Object { $_.href -like '*.zip' } | Foreach {
     $web = Invoke-WebRequest $_.href -Method Head
     $name = $web.BaseResponse.ResponseUri.Segments[-1]
     
     Write-Host "FileName : $name" -ForeGround "Yellow"
     
     if($name) {
      
      if(Test-Path $name) {
       $file = Get-Item $name
       
       if($file.LastWriteTime -eq $web.Headers["Last-Modified"]) {
        continue
       }
      }
    
      Invoke-WebRequest $_.href -OutFile $name
      $file = Get-Item $name
      $file.LastWriteTime = [datetime]$web.Headers["Last-Modified"]
     }
    }
    Ответ
  • 19.12.2018 в 16:20
    Постоянная ссылка

    новьій урл и другие кавьічки

    powershell -ExecutionPolicy Bypass .\medoc-downloader.ps1
    
    $downloadPage = Invoke-WebRequest -Uri 'https://medoc.ua/uk/download'
    $downloadPage.Links | Where-Object { $_.href -like '*.zip' } | Foreach {
    $web = Invoke-WebRequest $_.href -Method Head
    $name = $web.BaseResponse.ResponseUri.Segments[-1]
    
    Write-Host "FileName : $name" -ForeGround "Yellow"
    
    if($name) {
    
    if(Test-Path $name) {
    $file = Get-Item $name
    
    if($file.LastWriteTime -eq $web.Headers["Last-Modified"]) {
    continue
    }
    }
    
    Invoke-WebRequest $_.href -OutFile $name
    $file = Get-Item $name
    $file.LastWriteTime = [datetime]$web.Headers["Last-Modified"]
    }
    }
    Ответ
  • 06.03.2019 в 15:08
    Постоянная ссылка

    Скрипт выкачивает все обновления. Как прочитать установленную версию MeDoc? Чтобы обновления ниже установленной версии не загружались?

    Ответ
    • 11.03.2019 в 20:02
      Постоянная ссылка

      Так это же тема не по скрипту, конечно скрипты из комментариев не могут предусмотреть все подводные камни, а вот программа автора с этим справляется отлично.

      Ответ
  • 16.05.2019 в 11:57
    Постоянная ссылка

    Здравствуйте.

    Утилита просто мегаполезная. Только почему-то не запускается от имени системы. Как это исправить?
    Есть некий планировщик, запущенный как служба от «Локальная система». Данный планировщик запускает powershell скрипт, который запускает zvitupd.exe. Такая система не работает. Тот же powershell скрипт отрабатывает нормально, если запустить вручную от залогиненного пользователя.

    Ответ
    • 16.05.2019 в 12:34
      Постоянная ссылка

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

      Ответ
  • 20.09.2022 в 13:18
    Постоянная ссылка

    Здравствуйте,

    Спасибо за программу, очень экономит время!
    Подскажите, пожалуйста, с какими ключиками запускается медковый апдейт для обновления в «молчаливом» режиме? Необходимо для использования в скриптах, т.к. не всегда есть возможность запустить ezvitupd в рабочее время, а в нерабочее медок закрыл доступ к своим ресурсам с неукраинских адресов, которые в облаке.
    В саппорте медка инфу о ключиках не спешат предоставлять…

    Ответ
    • 21.09.2022 в 15:02
      Постоянная ссылка

      Сейчас в этой программе нет необходимости, медок научился работать от имени сетевой службы и там появился планировщик.

      Ответ
  • 04.05.2023 в 13:36
    Постоянная ссылка

    Очень полезная программа! После запуска отрапортовала мне что Медок успешно обновлен…но есть одна проблема- Медка на этом компе нет 😀

    Ответ
    • 04.05.2023 в 13:42
      Постоянная ссылка

      Это просто сообщение в конце работы программы, которая перебирает все установленные Медки и обновляет каждый из них.

      Ответ
    • 11.10.2023 в 22:31
      Постоянная ссылка

      Должна работать, но сейчас в ней нет необходимости, можно включить автообновление через встроенный в Медок планировщик.

      Ответ
      • 18.11.2023 в 03:04
        Постоянная ссылка

        Планировщик работает на сеьевой версии. На локальной закрыл прогу,Ю и все, планировщик тоже закрыт. Так что программ все еще в ходу.
        Вопрос такой. Можно ли для Fredo такую же?

        Ответ
        • 18.11.2023 в 10:45
          Постоянная ссылка

          Во время войны точно нет, после — при наличии свободного времени.

          Ответ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *