Share via


嗨,Scripting Guy!

Hey,Scripting Guy!

歡迎使用全新的 TechNet 專欄,Microsoft Scripting Guy 會在此為您解答有關系統管理指令碼的常見問題。您有關於系統管理指令碼方面的問題嗎?請將電子郵件傳送到 scripter@microsoft.com。我們無法保證能夠逐一回答每個問題,不過我們會盡力而為。

今天的問題:要怎麼把 Exchange Server 清單指派給我的使用者?


要怎麼把 Exchange Server 清單指派給我的使用者?

嗨,Scripting Guy!要怎麼把 Exchange Server 清單 (msExchHomeServerName) 指派給 OU 中的使用者?

-- BG

BG,您好。您或許也已經察覺了兩個問題:您必須取得 OU 中所有使用者的清單,還必須找出已指派給這些使用者的 Exchange Server。信不信由你,這可能是您寫過最簡單的指令碼之一。

呃,應該說,這是我們為您所寫的最簡單的指令碼之一…。

先從取得 OU 中所有使用者的清單開始吧。其實也沒什麼難的;您只要連結到 OU,就會自動取得該 OU 中所有物件的集合。所以,如果我們要取得 Finance OU (並傳回物件的通用名稱 - 又稱 CN) 中找到的所有物件的集合,就可以使用此段程式碼:

Set objOU = GetObject("LDAP://OU=Finance,DC=fabrikam,DC=com") 
objOU.Filter = Array("user")
For Each objItem in objOU 
  Wscript.Echo objItem.CN 
Next

請注意這裡的一個小秘訣。我們使用這一行程式碼來設定集合的篩選:

objOU.Filter = Array("user")

這樣會告訴指令碼:「喂,把那些有的沒的都篩選掉,只留下使用者帳戶。」為什麼要這樣做呢?這樣說吧,假設您在 OU 中有電腦帳戶或列印佇列或其他物件。我們不想嘗試判斷 Exchange Server 裡是否有整串的列印佇列,所以用篩選器來剔除使用者帳戶之外的所有項目。

困難的部份來了:擷取每位使用者的 Exchange Server。當然啦,如果您知道屬性名稱,這就不是一件難事了。不過,一想到您告訴我們,您要找的屬性是 msExchHomeServerName... 唉...:

Set objOU = GetObject("LDAP://OU=Finance,DC=fabrikam,DC=com") 
objOU.Filter = Array("user")
For Each objItem in objOU 
  Wscript.Echo objItem.CN 
  Wscript.Echo objItem.msExchHomeServerName 
Next

順便給您一些其他與 Exchange 相關的內容,如果有需要就拿去用吧:

Set objOU = GetObject("LDAP://OU=Finance,DC=fabrikam,DC=com") 
objOU.Filter = Array("user")
For Each objItem in objOU 
  Wscript.Echo objItem.CN 
  Wscript.Echo objItem.mailNickname 
  Wscript.Echo objItem.msExchHomeServerName 
  Wscript.Echo objItem.homeMDB 
  Wscript.Echo objItem.mdbUseDefaults 
Next

如需詳細資訊

查看嗨,Scripting Guy!- 過往文件

 

回到頁首 回到頁首