דלג לתוכן הראשי
היכנס דרך 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-bit עבור מזהה מחלקה (CLSID) של InternetExplorerMedium .

יישום קוראת לפונקציה CoCreateInstance כדי ליצור מופע של 32 סיביות של Internet Explorer 8 בגירסת 64 סיביות של Windows 7 או של Windows Server 2008 R2. פעולה זו נכשלת כאשר אין אף מטפל 32 סיביות עבור InternetExplorerMedium מחלקה (clsid) בלמערכת ההפעלה הפועלת. בתרחיש זה, הפונקציה CoCreateInstance יוצר מופע של 64 סיביות במקום זאת.

לקבלת מידע נוסף, לחץ על מספר המאמר הבא כדי להציג את המאמר הרלוונטי מתוך Microsoft Knowledge Base:

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 Knowledge Base:

2360131 MS10-071: עדכון האבטחה המצטבר עבור Internet Explorer

פתרון הבעיה

כדי לעקוף בעיה זו, השתמש באחת מהשיטות הבאות.

שיטה 1

הפעלת מופע 32 סיביות של Internet Explorer 8 לפני פתיחת היפר-קישור ביישום 32 סיביות. בתרחיש זה, הפעלת קישור מתרחשת במופע 32 סיביות קיימת של Internet Explorer 8.

שיטה 2

שנה את כוורת הרישום HKEY_CLASSES_ROOT כדי להוסיף את המטפל חסר עבור InternetExplorerMedium מחלקה (clsid). כדי לעשות זאת, הקלד את הפקודה הבאה בשורת הפקודה ולאחר מכן הקש ENTER:

הוסף Reg "HKCR\Wow6432Node\CLSID\ \LocalServer32 {D5E8041D-920F-45E9-B8FB-B1DEB82C6E5E}" /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
לקבלת מידע נוסף אודות כיצד ליצור וליישם את קבצי ה-script של PowerShell, בקר באתר האינטרנט הבא של Microsoft:

מידע אודות שורת הפקודה PowerShell וסביבה scripting

זקוק לעזרה נוספת?

מעוניין באפשרויות נוספות?

גלה את יתרונות המנוי, עיין בקורסי הדרכה, למד כיצד לאבטח את המכשיר שלך ועוד.

קהילות עוזרות לך לשאול שאלות ולהשיב עליהן, לתת משוב ולשמוע ממומחים בעלי ידע עשיר.

האם מידע זה היה שימושי?

עד כמה אתם מרוצים מאיכות השפה?
מה השפיע על החוויה שלך?
בלחיצה על 'שלח', אתה מאפשר למשוב שלך לשפר מוצרים ושירותים של Microsoft. מנהל ה-IT שלך יוכל לאסוף נתונים אלה. הצהרת הפרטיות.

תודה על המשוב!

×