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

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

Опиум 21-04-2016 19:24 2628417

определить версию IE
 
как в логон скрипте (под провами юзера) определить установленную версию IE?
Ну или хотябы стоит ie11 или нет?

Foreigner 21-04-2016 20:37 2628430

Опиум,
Код:

wmic datafile where name="C:\\Program Files\\Internet Explorer\\iexplore.exe" get version
Если нужно для дальнейшей обработки:
Код:

@echo off
setlocal

set "wmic=wmic datafile where name="C:\\Program Files\\Internet Explorer\\iexplore.exe" get version /value"
for /f %%i in ('"%wmic%"') do 1>nul set "%%i"
echo %version%

PowerShell:
Код:

(get-item 'C:\Program Files\Internet Explorer\iexplore.exe').versioninfo.productversion

greg zakharov 21-04-2016 21:03 2628435

Foreigner, а если система установлена, скажем, на диск F:, то что тогда? Как на счет реестра? HKLM\SOFTWARE\Microsoft\Internet Explorer или HKLM\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer (в зависимости от разрядности системы), значение Version. Через реестр можно извлечь данные о путях установки, которые после и следует проверить на существование.

Foreigner 21-04-2016 21:29 2628446

greg zakharov, тоже вариант. На счет диска, ну так заменить на переменную %ProgramFiles%, делов-то.
Код:

wmic datafile where name="%ProgramFiles:\=\\%\\Internet Explorer\\iexplore.exe" get version

greg zakharov 21-04-2016 21:48 2628451

Foreigner, %programfiles% - при условии, что в текущей сессии оная не была каким-то образом изменена, так что закладываться на почку, что это сработает, также не стоит. Говорю же, лучше брать данные из реестра, ведь никто в здравом уме их править не станет, если не хочет получить неработоспособного "ишака". На примере PowerShell это будет выглядеть примерно так:
Код:

$$ = (gp "HKLM:\SOFTWARE\Classes\CLSID\{$(
  [Type]::GetTypeFromProgID('InternetExplorer.Application').GUID
)}\LocalServer32").'(default)' -replace [Char]34, ''
(gi "$($$)" -for).VersionInfo.ProductVersion

Примерно так же в случае с командным сценарием:
Код:

@echo off
  setlocal
    set "ie=HKLM\SOFTWARE\Microsoft\Internet Explorer"
    for /f "tokens=3" %%i in (
      '2^>nul reg query "%ie%" /v Version ^| findstr /irc:"reg_sz"'
    ) do 2>nul set /a "ie=%%~i"
    if "%ie%" equ "" echo:Could not locate IE data.&goto:eof
    set "key=HKCR\InternetExplorer.Application\CLSID"
    for /f "tokens=3" %%i in ('reg query %key% /ve') do (
      set "key=%key%\%%i" % rem : извлекли CLSID
    )
    set "key=%key:InternetExplorer.Application\=%"
    for /f "tokens=2,*" %%i in (
      'reg query %key%\LocalServer32 /ve'
    ) do set "p=%%~j"
    echo:Current version of %p% is %ie%.
  endlocal
exit /b

Правда в отличии от CLSID'а версию можно безболезненно изменить, если достаточно прав на изменения значения реестра.

Foreigner 21-04-2016 22:03 2628452

Цитата:

Цитата greg zakharov
%programfiles% - при условии, что в текущей сессии оная не была каким-то образом изменена »

Так можно дойти до абсурда

greg zakharov 22-04-2016 09:20 2628544

Цитата:

Цитата Foreigner
Так можно дойти до абсурда

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

Foreigner 22-04-2016 10:44 2628563

greg zakharov, можно я им заодно скажу, что бы ключи из реестра не удаляли, а заодно reg, cmd, cscript, powershell и wmic. И вообще пусть запустят ишака, да посмотрят версию, а потом доложат -- административные меры никто не отменял.

Опиум 22-04-2016 13:22 2628604

Цитата:

Цитата greg zakharov
может перестанут использовать предопределённые переменные окружения. »

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

Iska 22-04-2016 16:31 2628649

«…И гнутся! И гнутся!» (с) :).


Время: 18:06.

Время: 18:06.
© OSzone.net 2001-