חשוב לי לציין שהמאמר שאני מציג לא נתמך ע"י מיקרוסופט, המאמר מתאר הוספה של GUID נוסף על מנת לשחזר את האייקון המקורי על גבי שולחן העבודה.
ניתן להוסיף את האייקון באחת משתי השיטות הבאות:
1. פעולה ידנית של הוספת מפתחות וערכים לרג'יסטרי
2. פעולה אוטומטית ע"י לחיצה על קובץ REG שמבצעת את הפעולה, בהמשך המאמר.
בגירסאות קודמות של ווינדוס יכולנו לשחזר את האייקון ע"י המאמר הבא, אך הוא אינו עובד תחת ווינדוס 7 ומיקרוסופט אף מציינת זאת:
http://support.microsoft.com/kb/945402
"Important Windows 7 no longer supports the ability to modify the registry to get the special Internet Explorer icon to appear on your desktop. This change was made to ensure Internet Explorer could be removed easily for compliance reasons. The only way to add the Internet Explorer icon to the desktop in Windows 7 is to create a shortcut"
לאחר נסיונות של הוספת ה GUID הבא והוספת הרשאות OWNER למפתחות ברג'יסטרי לא ניתן עדיין לראותו על גבי שולחן העבודה, להלן ה GUID שמציין את המוצר של ה Internet Explorer:
{871C5380-42A0-1069-A2EA-08002B30309D}
הפתרון שלי הוא שכפול ה GUID ל GUID אחר והוספתו של ה GUID האחר על גבי שולחן העבודה לאחר הוספת המפתח שלו לערך הבא:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace
נתחיל בפעולת הייצוא של ה GUID המקורי, יש לנווט את המפתח הבא ולשמור את הקובץ:
HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30309D}
יש לערוך באמצעות NOTEPAD את הקובץ שיצרנו ולשנות את שם ה GUID הקיים ל GUID החדש, ל GUID החדש אני קורא:
871C5380-42A0-1069-A2EA-08002B30308D
יש לפתוח את הקובץ ה REG באמצעות NOTEPAD ולגשת ל Edit –> Replace ולהחליף את כל הערכים והמפתחותהבאים:
871C5380-42A0-1069-A2EA-08002B30309D
לערכים ולמפתחות הבאים:
871C5380-42A0-1069-A2EA-08002B30308D
לאחר ההחלפה יש לנווט לשורה הבאה
[HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30308D}\Shellex\ContextMenuHandlers\ieframe]
@="{871C5380-42A0-1069-A2EA-08002B30308D}"
ולשנות את הערך בשורה השניה (מודגש) : @="{871C5380-42A0-1069-A2EA-08002B30308D}"
לערך הבא: @="{871C5380-42A0-1069-A2EA-08002B30309D}"
על מנת לראות במאפיינים של האייקון את האופציה start Home Page , יש למחוק את השורה של Legacy Disable (מודגש): [HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30308D}\shell\OpenHomePage]
@="Open &Home Page"
"LegacyDisable"=""
לשינוי שם האייקון על גבי שולחן העבודה יש לגשת למסלול הבא:
[HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30308D}]
"InfoTip"="@C:\\Windows\\System32\\ieframe.dll,-881"
"LocalizedString"="@C:\\Windows\\System32\\ieframe.dll,-5723"
ולשנות את הכיתוב הבא (מודגש): @C:\\Windows\\System32\\ieframe.dll,-5723 ל Internet Explorer או לכל שם אחר שתרצו.
להוספת הכיתוב properties באמצעות קליק שמאלי על האייקון שנמצא על גבי שולחן העבודה:
יש לגשת למסלול הבא:
HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30308D}\shell
לחיצה ימנית על Shell ויצירת מפתח (KEY) הנקרא Properties
מיקום הכיתוב Properties בתחתית ה Context Menu:
יש ליצור String Value עבור Properties כך שהאופציה תופיע בתחתית התפריט (context menu) בעת קליק ימני.
יש ללחוץ על properties –> new –> String Value:
יש ללחוץ על New Value #1 ולשנות את הערכים בהתאם לתמונה הבאה, כאשר ה Value Name הינו Position וה Data הינו Bottom:
כך זה אמור להיראות לאחר הוספת המפתח והערכים:
להוספת פקודה (Command) עבור אופציית ה Properties (פקודה לפתיחת מאפייני האינטרנט המוכרים – קובץ inetcpl.cpl) יש לחזור על הפעולה הקודמת בעת יצירת המפתח Command, יש ללחוץ קליק ימני על Properties ולהוסיף מפתח (KEY) הנקרא Command.
יש ללחוץ על Default ולהזין את הפקודה הבאה: control inetcpl.cpl.
יש לשים לב שהמפתח Command נמצא מתחת ל Properties.
כעת יש להוסיף את האייקון על גבי שולחן העבודה, להלן מיקום המפתח הראשי שבתוכו נוסיף את ה GUID החדש:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace
יש ללחוץ על NameSpace וליצור מפתח (KEY) שם המפתח יהיה ה GUID החדש: 871C5380-42A0-1069-A2EA-08002B30308D}
כך זה אמור להיראות לאחר הוספת המפתח :
ולהלן התוצאה על גבי שולחן העבודה.
להלן קובץ רג'יסטרי שבניתי המבצע את כל הפעולות הידניות שתוארו לעיל:
יש ליצור קובץ עם סיומת REG ולהדביק לתוכו את התוכן הבא ולאחר מכן ללחוץ עליו פעמיים:
-------------------------------------------------------------------------------------------------------------------------------------------
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30308D}]
"InfoTip"="@C:\\Windows\\System32\\ieframe.dll,-881"
"LocalizedString"="Internet Explorer"
[HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30308D}\DefaultIcon]
@="C:\\Windows\\System32\\ieframe.dll,-190"
[HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30308D}\InProcServer32]
@="C:\\Windows\\System32\\ieframe.dll"
"ThreadingModel"="Apartment"
[HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30308D}\shell]
@="OpenHomePage"
[HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30308D}\shell\NoAddOns]
@="Start Without Add-ons"
"LegacyDisable"=""
[HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30308D}\shell\NoAddOns\Command]
@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\" -extoff"
[HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30308D}\shell\OpenHomePage]
@="Open &Home Page"
[HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30308D}\shell\OpenHomePage\Command]
@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\""
[HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30308D}\shell\Properties]
@=""
"Position"="Bottom"
[HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30308D}\shell\Properties\Command]
@="control.exe inetcpl.cpl"
[HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30308D}\Shellex]
[HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30308D}\Shellex\ContextMenuHandlers]
[HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30308D}\Shellex\ContextMenuHandlers\ieframe]
@="{871C5380-42A0-1069-A2EA-08002B30309D}"
[HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30308D}\Shellex\MayChangeDefaultMenu]
@=""
[HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30308D}\ShellFolder]
@="C:\\Windows\\System32\\ieframe.dll,-190"
"HideAsDeletePerUser"=""
"Attributes"=dword:00000024
"HideFolderVerbs"=""
"WantsParseDisplayName"=""
"HideOnDesktopPerUser"=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{871C5380-42A0-1069-A2EA-08002B30308D}]
---------------------------------------------------------------------------------------------------------------------------------------------------------
כפי שהינכם יודעים, אחד היתרונות של Outlook 2010 הינן תמונות התצוגה של המשתמשים.
התמונה עצמה מקושרת לשדה ב AD הנקרא ThumbnailPhoto, האוטלוק שואב את המידע לגבי התמונה מהשדה הנ"ל.
חשוב לזכור שחובה לשדרג את ה schema לגירסא מתקדמת, נכון להיום ההמלצה שלי לשדרג את ה schema ל Windows 2008 r2.
וכמו כן להתקין שרת DC 2008 R2 , ניתן לעבוד ב Forest Function Level של דומיין 2003
במידה והדומיין הינו 2003 , והסכמה לא מורחבת, לא ניתן יהיה לראות את התמונות.
להלן השדה כפי שניתן לראות באמצעות ACTIVE DIRECTORY USERS AND COMPUTERS בטאב Attribute Editor (שדה זה ניתן לראות באמצעות Winows 2008 ומעלה ע"י הצגת Advanced Features):
שימו לב שהערך של ה ThumbnailPhoto מוגדר <not set> :
ניתן גם להיכנס באמצעות ה ADSIEDIT:
פעולות מקדימות לפני הוספת הערך בשדה. (רפליקציה של השדה ל Global Catalog) :
יש להוסיף את ה schme snap-in לחלון הניהול MMC , כדי לראות את האופציה של ה schema יש לרשום את ה schmmgmt.dll ע"י הפקודה הבאה: Regsvr32 schmmgmt.dll
אנו גוללים ובוחרים ThumbnailPhoto:

יש לסמן ב V את האופציה Replicate This attribute to the Global Catalog:

לאחר הפעולות מקדימות, יש להיכנס למודול הניהול של ה AD באמצעות ה PowerShell (מומלץ באמצעות קליינט של ווינדוס 7 עם התקנת RSAT והתקנה הרכיב Active Directory Module for Windows PowerShell).
במידה ולא ניתן להתקין מחשב עם ווינדוס 7 כולל RSAT , יש להתקין Active Directory Management Gateway Service על שרת ה DC ולשים לב ל prerequisites הכוללים:
dotnet 3.5 sp1
עדכון עבורו: http://support.microsoft.com/kb/969166/en-us
עדכון עבור 2003 http://support.microsoft.com/kb/969429
עדכון עבור 2008 http://support.microsoft.com/kb/967574/
לאחר מכן ניתן יהיה להתקין את ה Active Directory Management Gateway Service :
http://www.microsoft.com/downloads/details.aspx?FamilyID=008940c6-0296-4597-be3e-1d24c1cf0dda&displayLang=en
לאחר כניסה ל PowerShell יש הקליד את הפקודות הבאות (אחת אחרי השניה), כאשר קובץ 1.jpg הינו קובץ התמונה וכאשר haimtest הינו שם המשתמש, התמונה חייבת להיות ברזולוציה 96X96 וגודלה לא יעלה על 10K:
הפקודה הראשונה ממירה את קובץ ה jpg ל bytes.
הפקודה השניה מעדכנת את שדה ה attribute למשתמש.
$photo = [byte[]](Get-Content d:\1.jpg -Encoding byte)
Set-ADUser haimtest -Replace @{thumbnailPhoto=$photo}
לאחר הזנת הפקודה ניתן להיכנס ל attribute שנקרא ThumbnailPhoto ולראות שאכן נוסף ערך.
כמו כן ניתן ללחוץ פעמיים על ה attribure להעתיק את הערך ולהדביק למשתמש אחר:
כעת נוכל לראות את התמונה תחת אוטלוק 2010:
שימו לב שכאשר לוחצים פעמיים על הערך בשרתי DC 2003 מקבלים את השגיאה הבאה ולכן ההמלצה לבצע את הפעולה מול שרת DC 2008 ומעלה:
עבור EXCHANGE 2010 הפעולה פשוטה יחסית, ניתן לשלב את הפקודה הבאה תחת ה Management Shell וכך אנו מוסיפים את הערך ל Attribute:
Import-RecipientDataProperty -Identity "Haim Test" -Picture -FileData ([Byte[]]$(Get-Content -Path "d:\1.jpg" -Encoding Byte -ReadCount 0))
מאמרים שימושיים:
http://msexchangeteam.com/archive/2010/03/10/454223.aspx
http://blogs.technet.com/b/ilvancri/archive/2009/11/17/upload-picture-in-outlook-2010-using-the-exchange-management-shell-exchange-2010.aspx