تخطي إلى المحتوى الرئيسي
الدعم
تسجيل الدخول باستخدام حساب 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 بت لمعرف الفئة (CLSID) إينتيرنيتيكسبلوريرميديوم .

تطبيق باستدعاء الدالة CoCreateInstance إنشاء مثيل 32-بت من برنامج Internet Explorer 8 باستخدام إصدار 64 بت من نظام التشغيل Windows 7 أو Windows Server 2008 r2. فشلت هذه العملية عندما لا يوجد معالج 32 بت إينتيرنيتيكسبلوريرميديوم 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

الحل البديل

للتغلب على هذه المشكلة، استخدم إحدى الطرق التالية.

الطريقة الأولى

بدء مثيل 32-بت من برنامج Internet Explorer 8 قبل فتح الارتباط تشعبي في تطبيق 32-بت. في هذا السيناريو، يحدث تنشيط الارتباط في مثيل 32-بت موجود من Internet Explorer 8.

الطريقة الثانية

تعديل خلية التسجيل HKEY_CLASSES_ROOT لإضافة معالج مفقودة إينتيرنيتيكسبلوريرميديوم CLSID. للقيام بذلك، اكتب الأمر التالي في موجه الأوامر واضغط مفتاح الإدخال ENTER:

إضافة Reg "HKCR\Wow6432Node\CLSID\ \LocalServer32 {D5E8041D-920F-45E9-B8FB-B1DEB82C6E5E}"/ve/t REG_EXPAND_SZ/d "% programfiles (x86) %\Internet Explorer\iexplore.exe-ستارتميديومتاب"

الطريقة الثالثة

استخدم 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 وخدماتها. سيتمكن مسؤول تكنولوجيا المعلومات لديك من جمع هذه البيانات. بيان الخصوصية.

نشكرك على ملاحظاتك!

×