Windows-Server-2003

用於提取禁用 Active Directory 帳戶的使用者郵箱列表的腳本

  • September 23, 2010

我有一個過程,當 Active Directory 使用者帳戶被終止時,我們通過該過程禁用它們。Exchange 2007 郵箱保留,轉發設置為使用者管理器。我需要定期執行一個腳本,該腳本將提取目前活動郵箱的列表,並禁用相應的 AD 帳戶。我沒有任何類型的腳本編寫經驗,但相信可以根據我讀過的其他內容來完成。我做了一些搜尋,但對這個特定的要求空手而歸。謝謝你。

伺服器 2003R2、Exchange 2007、AD

需要說明的是,我並不是要任何人為我寫這篇文章,只是一些連結可能會推動我朝著正確的方向前進。

您可以通過 PHP 等語言使用標準 LDAP 呼叫,也可以使用來自 Microsoft 產品的特定於 AD 的呼叫(例如,帶有 DirectoryServices 庫的 C#)。我沒有 Exchange,所以我不知道郵箱的原始屬性是什麼,但要查看帳戶是否被禁用,您將檢查每個使用者的“userAccountControl”屬性,然後解釋數字標誌以查看該帳戶是否被禁用(可以在此處查看標誌列表:http: //support.microsoft.com/kb/305144

腳本的基本過程是:

  1. 使用 LDAP(PHP、perl 等)或 DirectoryService(Visual Basic、C#)綁定到 Active Directory。
  2. 搜尋所有禁用的使用者對象(SamAccountType 為 30000000 十六進制的對象)(十六進制 userAccountControl 值在其整數形式中包含“2”的對象)
  3. 遍歷生成的對象並進行呼叫以確定哪些對象的郵箱處於活動狀態(同樣,我不使用 Exchange,所以這裡沒有一個好的答案)。
  4. 每次在#3 中獲得成功時,列印出或寫入文件一些適當的屬性(sAMAccountName、dn 和 cn 將是很好的起點)以及整個報告的日期戳。

引用自:https://serverfault.com/questions/184012