Показать полную графическую версию : определить версию IE
как в логон скрипте (под провами юзера) определить установленную версию IE?
Ну или хотябы стоит ie11 или нет?
Foreigner
21-04-2016, 20:37
Опиум,
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
Foreigner, а если система установлена, скажем, на диск F:, то что тогда? Как на счет реестра? HKLM\SOFTWARE\Microsoft\Internet Explorer или HKLM\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer (в зависимости от разрядности системы), значение Version. Через реестр можно извлечь данные о путях установки, которые после и следует проверить на существование.
Foreigner
21-04-2016, 21:29
greg zakharov, тоже вариант. На счет диска, ну так заменить на переменную %ProgramFiles%, делов-то.
wmic datafile where name="%ProgramFiles:\=\\%\\Internet Explorer\\iexplore.exe" get version
greg zakharov
21-04-2016, 21:48
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
%programfiles% - при условии, что в текущей сессии оная не была каким-то образом изменена »
Так можно дойти до абсурда
greg zakharov
22-04-2016, 09:20
Так можно дойти до абсурдаЭто Вы сотрудникам в конторе, где я сейчас работаю, скажите, может перестанут использовать предопределённые переменные окружения.
Foreigner
22-04-2016, 10:44
greg zakharov, можно я им заодно скажу, что бы ключи из реестра не удаляли, а заодно reg, cmd, cscript, powershell и wmic. И вообще пусть запустят ишака, да посмотрят версию, а потом доложат -- административные меры никто не отменял.
может перестанут использовать предопределённые переменные окружения. »
а также писать программы для пользователей, которые неработают без локальных админских прав.
«…И гнутся! И гнутся!» (с) :).
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.