Преминаване към основното съдържание
Поддръжка
Влизане с Microsoft
Влезте или създайте акаунт.
Здравейте,
Изберете друг акаунт.
Имате няколко акаунта
Изберете акаунта, с който искате да влезете.

Симптоми

Да разгледаме следния сценарий:

  • Имате Windows Internet Explorer 8, инсталирани на компютър с 64-битова версия на Windows 7 или Windows Server 2008 R2.

  • Изпълнявате 32-битова версия на приложение на този компютър.

  • Приложението е домакин на управлението на уеб браузър, за да отворите хипервръзки в посочения битовите версии на Internet Explorer 8 чрез функцията CoCreateInstance . Битова версия на Internet Explorer 8, който е стартиран зависи от състоянието на защитен режим на хипервръзката.

В този случай приложението не работи правилно и 32-битова версия на Internet Explorer 8 не се стартира според очакванията. Вместо това 64-битова версия на Internet Explorer се стартира независимо предварително конфигурация.

Например разработване на приложение, което работи по следния начин:

  • Ако отворите хипервръзка, която е включена в зоната за сигурност в интернет , 32-битова версия на Internet Explorer 8 се стартира.

    Забележка: По подразбиране защитеният режим е разрешен в интернет зоната за защита.

  • Ако отворите хипервръзка, която е включена в зоната на локалния интранет защита или зоната с надеждни сайтове сигурност, 64-битова версия на Internet Explorer 8 се стартира.

    Забележка: По подразбиране защитеният режим е забранено в зоната на локалния интранет защита и в зоната за защита на надеждни сайтове .

В този пример 64-битова версия на Internet Explorer се стартира независимо от състоянието на защитен режим на хипервръзката.

Причина

Този проблем възниква, защото няма 32-битов манипулатор за InternetExplorerMedium идентификатор за класа (CLSID) е регистрирана.

Дадено приложение извиква функцията CoCreateInstance за създаване на 32-битов екземпляр на Internet Explorer 8 в 64-битова версия на Windows 7 или Windows Server 2008 R2. Тази операция не успее, когато няма няма 32-битов манипулатор за InternetExplorerMedium CLSID на операционната система работи. В този случай функцията CoCreateInstance създава екземпляр на 64-битова вместо това.

За повече информация щракнете върху следния номер на статия в базата знания на Microsoft:

975377 не можете да използвате функцията CoCreateInstance да създаде екземпляр на 32-битова версия на Internet Explorer на компютър с 64-битова версия на Windows 7

Решение

Информация за актуализация на защитата

За да разрешите този проблем, инсталирайте най-новата сборна актуализация на защитата за Windows Internet Explorer. За целта посетете следния уеб сайт на Microsoft:

http://update.microsoft.comЗа повече информация относно най-новата сборна актуализация на защитата за Windows Internet Explorer посетете следния уеб сайт на Microsoft:

http://www.microsoft.com/technet/security/current.aspxЗабележка: Първо тази актуализация е включена в актуализация на защитата 2360131 (MS10-071). За повече информация щракнете върху следния номер на статия в базата знания на Microsoft:

2360131 MS10-071: кумулативна актуализация на защитата за Internet Explorer

Заобикаляне на проблема

За да заобиколите този проблем, използвайте един от следните методи.

Метод 1

Стартиране на 32-битов екземпляр на Internet Explorer 8, преди да отворите хипервръзка в 32-битово приложение. В този случай връзката активиране възниква в съществуващи 32-битови екземпляр на Internet Explorer 8.

Метод 2

Променете HKEY_CLASSES_ROOT регистъра остава да добавите липсващите манипулатор за InternetExplorerMedium CLSID. За целта въведете следната команда в командния ред и натиснете ENTER:

Reg add "HKCR\Wow6432Node\CLSID\ {D5E8041D-920F-45E9-B8FB-B1DEB82C6E5E} \LocalServer32" /ve /t REG_EXPAND_SZ /d "% programfiles (x86) %\Internet Explorer\iexplore.exe - startmediumtab"

Метод 3

Използвайте следния скрипт PowerShell да добавите липсващите манипулатор:$acl = Get-Acl HKLM:\SOFTWARE\Wow6432Node\Classes\CLSID\`{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E`} $acl.Owner
$person = [System.Security.Principal.NTAccount]"Administrators"
$acl.SetOwner($person)
$acl.Owner


$access = [System.Security.AccessControl.RegistryRights]"FullControl"
$inheritance = [System.Security.AccessControl.InheritanceFlags]"ContainerInherit"
$propagation = [System.Security.AccessControl.PropagationFlags]"InheritOnly"
$type = [System.Security.AccessControl.AccessControlType]"Allow"
$rule = New-Object System.Security.AccessControl.RegistryAccessRule( $person,$access,$inheritance,$propagation,$type)
$acl.ResetAccessRule($rule)


$person = [System.Security.Principal.NTAccount]"Everyone"
$access = [System.Security.AccessControl.RegistryRights]"ReadKey"
$inheritance = [System.Security.AccessControl.InheritanceFlags]"ContainerInherit"
$propagation = [System.Security.AccessControl.PropagationFlags]"InheritOnly"

$type = [System.Security.AccessControl.AccessControlType]"Allow"

$rule = New-Object System.Security.AccessControl.RegistryAccessRule($person,$access,$inheritance,$propagation,$type)

$acl.ResetAccessRule($rule)




Set-Acl HKLM:\SOFTWARE\Wow6432Node\Classes\CLSID\`{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E`} $acl



New-ItemProperty HKLM:\SOFTWARE\Wow6432Node\Classes\CLSID\`{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E`} -name "AppID" -value "`{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E`}" -propertyType String



New-ItemProperty HKLM:\SOFTWARE\Wow6432Node\Classes\CLSID\`{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E`}\LocalServer32 "(default)" -value '"%ProgramFiles(x86)%\Internet Explorer\iexplore.exe" -startmediumtab"' -propertyType ExpandString
За повече информация относно начините за създаване и изпълнение на PowerShell скриптове посетете следния уеб сайт на Microsoft:

Информация за PowerShell команден ред и скриптов среда

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.

Общностите ви помагат да задавате и отговаряте на въпроси, да давате обратна връзка и да получавате информация от експерти с богати знания.

Беше ли полезна тази информация?

Доколко сте доволни от качеството на езика?
Какво е повлияло на вашия потребителски опит?
Като натиснете „Подаване“, вашата обратна връзка ще се използва за подобряване на продуктите и услугите на Microsoft. Вашият ИТ администратор ще може да събира тези данни. Декларация за поверителност.

Благодарим ви за обратната връзка!

×