如何批次更改Outlook 2010 與 Lync 的顯示大頭照
在Outlook 2010中我們在寄信的時候都可以看到下方有個放照片的區塊,這個部分的照片是存在DC裡面帳號的一個屬性。而Outlook 跟 Lync都是讀取帳號中的thumbnailPhoto屬性,
所以我們這邊可以用Powershell來更改照片資訊。你上傳的照片會被轉為二進位的檔案存放在Server裏頭,接下來我們來測試如何用Powershell改照片檔案。
單一更改使用者相片
[byte[]]$file = Get-Content C:\Lab\1.jpg -Encoding Byte
$user = [ADSI] "LDAP://cn=user002,ou=employee,dc=example,dc=com"
$user.Properties["thumbnailPhoto"].Clear()
$user.Properties["thumbnailPhoto"].Add([System.Convert]::ToBase64String($file))
$user.CommitChanges()
以上Powershell可用來更改單一使用者的圖示. 因為Outlook 與 Lync再取得圖示的時候都是抓取AD上使用者相同的屬性.因此我在這個案子上是利用Outlook來驗證.
以下圖片是擷取在微軟預設的圖示,在您還沒有變更您的圖示之前所看到的樣子。
執行完成可看到單一帳號的圖示被變更了。
批次更改OU的使用者圖片
[byte[]]$file = Get-Content C:\Lab\2.jpg -Encoding Byte
$ou = [ADSI]"LDAP://OU=employee,DC=example,DC=com"
foreach ($child in $ou.psbase.Children) {
$user = [ADSI] $child
$user.Properties["thumbnailPhoto"].Clear()
$user.Properties["thumbnailPhoto"].Add([System.Convert]::ToBase64String($file))
$user.CommitChanges()
}
以上Powershell可用來更改指定的OU中所有使用者的圖示.
l 執行指令後會先清楚目前使用者的圖示在換上新指定的圖示。接者您就可以看到您指定的OU下的所有帳號的圖示都被改變了。
Picture Attribute
http://msdn.microsoft.com/en-us/library/ms680034(VS.85).aspx
GAL Photos in Exchange 2010 and Outlook 2010
http://blogs.technet.com/b/exchange/archive/2010/03/10/3409495.aspx
Searching Active Directory with Windows PowerShell
http://technet.microsoft.com/zh-cn/library/ff730967(en-us).aspx