Получение версии программы.

Обговорення питань, пов'язаних з функціонуванням програми
google
Повідомлень: 5
З нами з: 27 липня 2021, 15:05

Получение версии программы.

Повідомлення google » 27 липня 2021, 15:20

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

Появилась необходимость мониторить актуальность установленной версии программы.

Подскажите, как можно получить версию прогрммы через powershell или cmd?

Пытаюсь вытянуть из реестра возможностями powershell:

PS:> Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Where-Object -Property Publisher -eq "M.E.Doc"

DisplayName DisplayVersion Publisher InstallDate
----------- -------------- --------- -----------
M.E.Doc (C:\Program Files\Medoc\Medoc) 11.02.011 M.E.Doc 20200721

Но вытягивает версию, которая была установлена в первый раз на данном компьютере.

При обновлении проргаммы версия не изменяется.
Так задумано или это ошибка?
Востаннє редагувалось 01 вересня 2021, 01:49 користувачем google, всього редагувалось 3 разів.

priup
Повідомлень: 7713
З нами з: 22 червня 2011, 12:23

Re: Получение версии программы.

Повідомлення priup » 27 липня 2021, 15:52

В корневом каталоге МЕДОКа есть файл:

Config Tool.exe

запускаете его - он Вам покажет все МЕДОКи на этом компе:
| Показать
5.jpg
5.jpg (245.41 Кіб) Переглянуто 2446 разів

medoc_doc
Повідомлень: 1
З нами з: 23 червня 2021, 13:58

Re: Получение версии программы.

Повідомлення medoc_doc » 27 липня 2021, 15:57

А зачем Вам это?

priup
Повідомлень: 7713
З нами з: 22 червня 2011, 12:23

Re: Получение версии программы.

Повідомлення priup » 27 липня 2021, 16:08

google писав:
27 липня 2021, 15:20
Доброго времени суток!
Прошу прощения, возможно не туда пишу, но подходящюю тему не нашел и решил запостить тут.

Появилась необходимость мониторить актуальность установленной версии программы.

Подскажите как можно получить версию прогрммы через powershell или cmd?

пытаюсь вятнуть из реестра возсожностями powershell

PS:> Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Where-Object -Property Publisher -eq "M.E.Doc"

DisplayName DisplayVersion Publisher InstallDate
----------- -------------- --------- -----------
M.E.Doc (C:\Program Files\Medoc\Medoc) 11.02.011 M.E.Doc 20200721

но вытягивает версию которая была установленная в первый раз на данном комптютере.

При обновлении проргаммы версия не изменяется.
Так задумано или это ошибка?
Тут возможен следующий вариант :
На компе 2 МЕДОКа ! Один установлен (правильно) с инсталятора C:\Program Files\Medoc\Medoc 11.02.011
Другой не установлен, а просто куда-то перекопирован ВЕСЬ каталог МЕДОКа (не правильно) ......... Такой МЕД Вам и Config Tool.exe НЕ ПОКАЖЕТ !

Medoc Man
Повідомлень: 864
З нами з: 07 червня 2018, 14:28
Звідки: Kiev

Re: Получение версии программы.

Повідомлення Medoc Man » 28 липня 2021, 13:41

google писав:
27 липня 2021, 15:20
Подскажите как можно получить версию прогрммы через powershell или cmd?
Только средствами COM либо, как выше писал priup - через ConfigTool.
Первый вариант требует, чтобы M.E.Doc был запущен, а второй можно запустить и без CMD/PowerShell.
GetMedocVersion.ps1 | Показать

Код: Виділити все

Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope Process

#Вариант через COM  ----------------------------------------
Write-Host "Спроба визначити версію M.E.Doc за допомогою COM..."
try {	
    $app = New-Object -ComObject Medoc.ZApplication
    [string]$medocVersion = $app.GetPrgVersion()
    $medocVersion = $medocVersion.Insert(4, ".").Insert(2, ".");
    Write-Host "Версія M.E.Doc:"$medocVersion
}
catch [System.Exception] {
    Write-Host "ПОМИЛКА: Не вдалось визначити поточну версію M.E.Doc."
}

Write-Host "`n"

#Вариант попроще ----------------------------------------
Write-Host "Спроба запустити утиліту M.E.Doc для перегляду встановлених примірників програми..."
$medocPath = "%КореневийКаталогMedoc%\ConfigTool.exe"
if (Test-Path $medocPath -PathType leaf) {
	Start-Process $medocPath
}
else {
	Write-Host "ПОМИЛКА: Не знайдено файл утиліти для перегляду встановлених примірників M.E.Doc`nза шляхом"$medocPath
}

Write-Host "`n`n-------------------------`nНатисніть будь-яку клавішу для завершення..."
$Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown')
В любом случае, это только покажет текущую версию программы, которая установлена.
Т.е. для проверки "актуальности" нужно будет ещё "черпать" эти актуальные версии откуда-то (по типу топорного парсинга сайта M.E.Doc), что ещё добавит ненужных трудозатрат.
google писав:
27 липня 2021, 15:20
пытаюсь вятнуть из реестра возсожностями powershell.
но вытягивает версию которая была установленная в первый раз на данном комптютере.
При обновлении проргаммы версия не изменяется.
Так задумано или это ошибка?
В реестре Windows единственную версию, которую Вы найдете - это та, с которой был установлен тот или иной экземпляр M.E.Doc (из веток Uninstall).
Она не меняется с обновлениями (как и у других ПО).
google писав:
27 липня 2021, 15:20
Появилась необходимость мониторить актуальность установленной версии программы.
Вам не нужно для этого выдумывать велосипед.
При запуске программа всегда проверяет наличие обновлений и предлагает пользователю обновиться, если есть более актуальная версия.
В случае с сетевым вариантом M.E.Doc контроль за этим делом можно всецело переложить на Планировщик задач (встроен в M.E.Doc), настроив задачу на регулярную проверку обновлений и само обновление при их наличии.
Человек-волшебник
Людина-чарівник
Wizard man

poltava_energy
Повідомлень: 717
З нами з: 13 червня 2012, 09:38

Re: Получение версии программы.

Повідомлення poltava_energy » 02 серпня 2021, 09:34

Нажаль зараз це неможливо.
Раніше у папці із медком лежав текстовий файлік, куди була прописана актуальна версія.
А потім якісь ******* вирішили що це непотрібно, та прибрали це.
Хіба що через БД витягнуть (якщо така можливість ще залишилася).

Забби
Повідомлень: 229
З нами з: 02 квітня 2018, 12:43

Re: Получение версии программы.

Повідомлення Забби » 02 серпня 2021, 09:36

Чому розробнику просто не писати актуальну версію у властивостях exe-файлу?
На заході будь-яка поважаюча себе програма має таку інформацію. А у нас як залишали у шкільних програмах версію 1.0.0.0, так і в продакшні на неї забивають :)

hatmaster
Повідомлень: 595
З нами з: 21 вересня 2016, 12:52

Re: Получение версии программы.

Повідомлення hatmaster » 02 серпня 2021, 12:58

Medoc Man писав:
28 липня 2021, 13:41

Только средствами COM либо, как выше писал priup - через ConfigTool.
Первый вариант требует, чтобы M.E.Doc был запущен, а второй можно запустить и без CMD/PowerShell.
GetMedocVersion.ps1 | Показать

Код: Виділити все

Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope Process

#Вариант через COM  ----------------------------------------
Write-Host "Спроба визначити версію M.E.Doc за допомогою COM..."
try {	
    $app = New-Object -ComObject Medoc.ZApplication
    [string]$medocVersion = $app.GetPrgVersion()
    $medocVersion = $medocVersion.Insert(4, ".").Insert(2, ".");
    Write-Host "Версія M.E.Doc:"$medocVersion
}
catch [System.Exception] {
    Write-Host "ПОМИЛКА: Не вдалось визначити поточну версію M.E.Doc."
}

Write-Host "`n"

#Вариант попроще ----------------------------------------
Write-Host "Спроба запустити утиліту M.E.Doc для перегляду встановлених примірників програми..."
$medocPath = "%КореневийКаталогMedoc%\ConfigTool.exe"
if (Test-Path $medocPath -PathType leaf) {
	Start-Process $medocPath
}
else {
	Write-Host "ПОМИЛКА: Не знайдено файл утиліти для перегляду встановлених примірників M.E.Doc`nза шляхом"$medocPath
}

Write-Host "`n`n-------------------------`nНатисніть будь-яку клавішу для завершення..."
$Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown')

Код: Виділити все

.\medoc_ver.ps1 : Не удается загрузить файл C:\Users\dell\medoc_ver.ps1. Файл C:\Users\dell\medoc_ver.ps1 не имеет цифр
овой подписи. Невозможно выполнить сценарий в указанной системе. Для получения дополнительных сведений о выполнении сце
нариев и настройке политики выполнения см. about_Execution_Policies по адресу https:/go.microsoft.com/fwlink/?LinkID=13
5170.
строка:1 знак:1
+ .\medoc_ver.ps1
+ ~~~~~~~~~~~~~~~
    + CategoryInfo          : Ошибка безопасности: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess
PowerShell такий PowerShell...
Все пройдет, и это тоже. Реально лишь одно - мир иллюзорен! Все остальное фантастика ...

Medoc Man
Повідомлень: 864
З нами з: 07 червня 2018, 14:28
Звідки: Kiev

Re: Получение версии программы.

Повідомлення Medoc Man » 02 серпня 2021, 13:09

hatmaster писав:
02 серпня 2021, 12:58
PowerShell такий PowerShell...

Код: Виділити все

Set-ExecutionPolicy Unrestricted Process -Force
Человек-волшебник
Людина-чарівник
Wizard man

google
Повідомлень: 5
З нами з: 27 липня 2021, 15:05

Re: Получение версии программы.

Повідомлення google » 10 серпня 2021, 23:18

medoc_doc писав:
27 липня 2021, 15:57
А зачем Вам это?
Есть парк машин более 15, на которых установлен медок.
Мониторгинг практически везде осуществляется заббиксом.
Мне необходимо понимать с помощью одного отчета где он не обновился, т.к. права для обновления есть только у администраторов.

google
Повідомлень: 5
З нами з: 27 липня 2021, 15:05

Re: Получение версии программы.

Повідомлення google » 10 серпня 2021, 23:20

[/quote]
Вам не нужно для этого выдумывать велосипед.
При запуске программа всегда проверяет наличие обновлений и предлагает пользователю обновиться, если есть более актуальная версия.
В случае с сетевым вариантом M.E.Doc контроль за этим делом можно всецело переложить на Планировщик задач (встроен в M.E.Doc), настроив задачу на регулярную проверку обновлений и само обновление при их наличии.
[/quote]
Все медки обновляю руками и не сразу. Все-таки после пети неприятный осадочек остался. Все мои клиенты не пострадали только из-за того, что я не сразу обновляю софт.

google
Повідомлень: 5
З нами з: 27 липня 2021, 15:05

Re: Получение версии программы.

Повідомлення google » 10 серпня 2021, 23:25

poltava_energy писав:
02 серпня 2021, 09:34
Нажаль зараз це неможливо.
Раніше у папці із медком лежав текстовий файлік, куди була прописана актуальна версія.
А потім якісь ******* вирішили що це непотрібно, та прибрали це.
Хіба що через БД витягнуть (якщо така можливість ще залишилася).
А не подскажите запрос к бд?

Yevhenii_Rish
Повідомлень: 246
З нами з: 27 квітня 2021, 17:20

Re: Получение версии программы.

Повідомлення Yevhenii_Rish » 11 серпня 2021, 08:39

google писав:
10 серпня 2021, 23:25
poltava_energy писав:
02 серпня 2021, 09:34
Нажаль зараз це неможливо.
Раніше у папці із медком лежав текстовий файлік, куди була прописана актуальна версія.
А потім якісь ******* вирішили що це непотрібно, та прибрали це.
Хіба що через БД витягнуть (якщо така можливість ще залишилася).
А не подскажите запрос к бд?
Доброго дня. Оскільки ПЗ працює на СУБД Firebird, то виконуються відповідні запити.
https://www.firebirdsql.org/manual/ru/q ... ng-ru.html
З повагою, Linkos Group

poltava_energy
Повідомлень: 717
З нами з: 13 червня 2012, 09:38

Re: Получение версии программы.

Повідомлення poltava_energy » 11 серпня 2021, 13:05

google писав:
10 серпня 2021, 23:25
А не подскажите запрос к бд?
Вибач, не памятаю де саме. Нашвидку не зміг згадати :(

poltava_energy
Повідомлень: 717
З нами з: 13 червня 2012, 09:38

Re: Получение версии программы.

Повідомлення poltava_energy » 11 серпня 2021, 13:06

Yevhenii_Rish писав:
11 серпня 2021, 08:39
Доброго дня. Оскільки ПЗ працює на СУБД Firebird, то виконуються відповідні запити.
Так підкажіть людині, у якій таблиці лежить інформація про версію.

Medoc Man
Повідомлень: 864
З нами з: 07 червня 2018, 14:28
Звідки: Kiev

Re: Получение версии программы.

Повідомлення Medoc Man » 11 серпня 2021, 13:38

poltava_energy писав:
11 серпня 2021, 13:06
Так підкажіть людині, у якій таблиці лежить інформація про версію.
Это неправильно, брать версию из базы.
Может случится, что она будет отличаться от версии программы при каком-либо сбое при обновлении.
Раз там ручные проверки, то есть и ручной инструмент - ConfigTool.exe
Человек-волшебник
Людина-чарівник
Wizard man

priup
Повідомлень: 7713
З нами з: 22 червня 2011, 12:23

Re: Получение версии программы.

Повідомлення priup » 11 серпня 2021, 15:30

Medoc Man писав:
11 серпня 2021, 13:38
poltava_energy писав:
11 серпня 2021, 13:06
Так підкажіть людині, у якій таблиці лежить інформація про версію.
Это неправильно, брать версию из базы.
Может случится, что она будет отличаться от версии программы при каком-либо сбое при обновлении.
Раз там ручные проверки, то есть и ручной инструмент - ConfigTool.exe
И главное : ЕГО НА КОМПЕ ЗАПУСКАЕМ и видим ВСЕ МЕДОКи, установленные на компе и все версии каждого:
| Показать
7.jpg
7.jpg (307.29 Кіб) Переглянуто 1900 разів
Хоть 2 МЕДКА / Хоть 10...

Sagius
Повідомлень: 759
З нами з: 29 березня 2016, 08:58

Re: Получение версии программы.

Повідомлення Sagius » 11 серпня 2021, 15:44

priup писав:
11 серпня 2021, 15:30
Medoc Man писав:
11 серпня 2021, 13:38
poltava_energy писав:
11 серпня 2021, 13:06
Так підкажіть людині, у якій таблиці лежить інформація про версію.
Это неправильно, брать версию из базы.
Может случится, что она будет отличаться от версии программы при каком-либо сбое при обновлении.
Раз там ручные проверки, то есть и ручной инструмент - ConfigTool.exe
И главное : ЕГО НА КОМПЕ ЗАПУСКАЕМ и видим ВСЕ МЕДОКи, установленные на компе и все версии каждого:
| Показать
7.jpg
Хоть 2 МЕДКА / Хоть 10...
А потім вбивається реєстр (або папка Медка копіюється на інший комп`ютер) і нічого вже не побачити без фокусів.

priup
Повідомлень: 7713
З нами з: 22 червня 2011, 12:23

Re: Получение версии программы.

Повідомлення priup » 11 серпня 2021, 16:41

Sagius писав:
11 серпня 2021, 15:44

.......... або папка Медка копіюється на інший комп`ютер.............
А ТАК делать НИЗЗЗЯЯЯЯяяяяяяя..............!!
Сисадминам за это руки поотрывать НАДА!

priup
Повідомлень: 7713
З нами з: 22 червня 2011, 12:23

Re: Получение версии программы.

Повідомлення priup » 11 серпня 2021, 16:44

Sagius писав:
11 серпня 2021, 15:44

А потім вбивається реєстр .........
А тут и винду переустанавливать и МЕДОК тожа..........

Відповісти

Повернутись до “Помилки у роботі програми”