[Outlook 2010]如何批次更改Outlook 2010 與 Lync 的顯示大頭照

如何批次更改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來驗證.

以下圖片是擷取在微軟預設的圖示,在您還沒有變更您的圖示之前所看到的樣子。

clip_image001

 

執行完成可看到單一帳號的圖示被變更了。

clip_image002

 

 

批次更改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下的所有帳號的圖示都被改變了。

clip_image003

 

clip_image004

 

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