определить версию IE
как в логон скрипте (под провами юзера) определить установленную версию IE?
Ну или хотябы стоит ie11 или нет?
|
Опиум,
Код:
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. Через реестр можно извлечь данные о путях установки, которые после и следует проверить на существование.
|
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'а версию можно безболезненно изменить, если достаточно прав на изменения значения реестра.
|
Цитата:
Цитата greg zakharov
%programfiles% - при условии, что в текущей сессии оная не была каким-то образом изменена »
|
Так можно дойти до абсурда
|
greg zakharov |
22-04-2016 09:20 2628544 |
Цитата:
Цитата Foreigner
Так можно дойти до абсурда
|
Это Вы сотрудникам в конторе, где я сейчас работаю, скажите, может перестанут использовать предопределённые переменные окружения.
|
greg zakharov, можно я им заодно скажу, что бы ключи из реестра не удаляли, а заодно reg, cmd, cscript, powershell и wmic. И вообще пусть запустят ишака, да посмотрят версию, а потом доложат -- административные меры никто не отменял.
|
Цитата:
Цитата greg zakharov
может перестанут использовать предопределённые переменные окружения. »
|
а также писать программы для пользователей, которые неработают без локальных админских прав.
|
«…И гнутся! И гнутся!» (с) :).
|
Время: 18:06.
© OSzone.net 2001-