Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   определить версию MSOffice и Outlook (http://forum.oszone.net/showthread.php?t=294360)

GromfBaenre@twitter 23-01-2015 16:56 2460263

определить версию MSOffice и Outlook
 
Здравствуйте, уважаемые форумчане.

Была у меня тема такая http://forum.oszone.net/thread-291593.html
Продвинулся в ней, но снова встал в лыжах на асфальт.

Код:

rem OUTLOOK CHECK
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\Outlook\InstallRoot 2>nul
if %errorlevel%==0 (
                              set OUTLOOK=2013
                              goto :MI
                            )
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Outlook\InstallRoot 2>nul
if %errorlevel%==0 (
                              set OUTLOOK=2010
                              goto :MI
                            )
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Outlook\InstallRoot 2>nul
if %errorlevel%==0 (
                              set OUTLOOK=2007
                              goto :MI
                            )
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Outlook\InstallRoot 2>nul
if %errorlevel%==0 (
                              set OUTLOOK=2003
                              goto :MI
                            )
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\10.0\Outlook\InstallRoot 2>nul
if %errorlevel%==0 (
                              set OUTLOOK=XP
                              goto :MI
                            )
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\9.0\Outlook\InstallRoot 2>nul
if %errorlevel%==0 (
                              set OUTLOOK=2000
                              goto :MI
                            )
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\8.0\Outlook\InstallRoot 2>nul
if %errorlevel%==0 (
                              set OUTLOOK=98
                              goto :MI
                            )
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\7.0\Outlook\InstallRoot 2>nul
if %errorlevel%==0 (
                              set OUTLOOK=97
                              goto :MI
                            )
set OUTLOOK=NOT Installed !!
:MI
rem OFFICE VERSION CHECK
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\Word\InstallRoot 2>nul
if %errorlevel%==0 (
                              set WORD=2013
                              goto :MI2
                            )
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Word\InstallRoot 2>nul
if %errorlevel%==0 (
                              set WORD=2010
                              goto :MI2
                            )
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Word\InstallRoot 2>nul
if %errorlevel%==0 (
                              set WORD=2007
                              goto :MI2
                            )
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Word\InstallRoot 2>nul
if %errorlevel%==0 (
                              set WORD=2003
                              goto :MI2
                            )
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\10.0\Word\InstallRoot 2>nul
if %errorlevel%==0 (
                              set WORD=XP
                              goto :MI2
                            )
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\8.0\Word\InstallRoot 2>nul
if %errorlevel%==0 (
                              set WORD=98
                              goto :MI2
                            )
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\7.0\Word\InstallRoot 2>nul
if %errorlevel%==0 (
                              set WORD=97
                              goto :MI2
                            )

Этот код позволяет мне определить версию офисного пакета и критичного для меня Outlook, но внезапно нашлись машины, которые имеют установленный офис, на которых этих ключей не существует. Какие ещё ветви реестра или методы получения версий вы могли бы мне посоветовать? VBS нельзя, утилиты Windows, требующие прав администратора можно, внешние утилиты можно.

Iska 23-01-2015 19:51 2460363

Цитата:

Цитата GromfBaenre@twitter
VBS нельзя, »

Опять нельзя ;)?

iccup.platoon@vk 23-01-2015 22:07 2460425

Един ли путь к Аутлуку и Офису?

Iska 23-01-2015 23:13 2460445

iccup.platoon@vk, это звучит как «един ли путь к Красной площади и Москве»?

GromfBaenre@twitter 26-01-2015 13:03 2461510

Да, VBS опять нельзя. На всех системах, где Офис в каком-то виде жив, может помочь этот ключ реестра "HKEY_CLASSES_ROOT\Word.Application\CurVer", но теперь это надо красиво парсить.

Можно поставить Office 2007, а Outlook купить коробкой, редкость, но возможная редкость.

GromfBaenre@twitter 26-01-2015 17:01 2461663

Вот такой гадский вывод хочу распарсить
Код:

HKEY_CLASSES_ROOT\Word.Application\CurVer
    (по умолчанию)    REG_SZ    Word.Application.15


iccup.platoon@vk 26-01-2015 20:30 2461786

Iska, из больницы с телефона, со сломанной правой рукой (будучи правшой) очень трудно будет дать полноценный ответ, но я вижу реализацию посредством использования filever.exe
Код:

FOR /F "tokens=1* usebackq" %%a IN (`""filever.exe" /V "c:\windows\SkyTel.exe" | FIND "FileVersion""`) DO SET MyVar=%%a
Подстроить всё необходимое к нужным файлам - победа. Надеюсь на понимание =(

GromfBaenre@twitter 30-01-2015 11:56 2463691

Последняя идея кончилась на том, что filever.exe находится в Support Tools CD и его работа в региональных версиях не гарантирована, хотя идея и живая.

cameron 30-01-2015 12:05 2463703

WMIC?
wmic path Win32_Product WHERE (Caption like "%microsoft office%") get Name, Version
else
https://www.sepago.com/blog/2010/01/...e-command-line


Время: 21:12.

Время: 21:12.
© OSzone.net 2001-