我的部落格園:https://www.cnblogs.com/CQman/
如何自動實現本地AD中禁用的使用者從地址列表中隱藏掉?
需求資訊:
使用者本地AD使用者透過ADConnect同步到O365,使用者想實現在本地已做同步的OU中禁用某一使用者後,其可以自動實現把該使用者從地址列表中隱藏掉。
使用者的ADConnect同步工具裝在域控伺服器上。
解決方法:
思路概述:在本地中啟用一個計劃任務,在特定事件下觸發執行powershell指令碼,透過powershell命令檢測本地AD中已禁用使用者的enabled和msExchHideFromAddressLists屬性值,並更改msExchHideFromAddressLists和mailnickname的屬性值,然後使用Start-ADSyncSyncCycle -PolicyType Delta命令觸發同步。
操作步驟:
- 複製一下powershell 命令,把OU=G10,DC=ttt,DC=com更改為自己的Active Directory路徑並儲存為一個Powershell指令碼檔案。
Set-Executionpolicy -executionPolicy Unrestricted -force
Get-ADUser -Filter {(enabled -eq "false") -and (msExchHideFromAddressLists -notlike "*")} -SearchBase "OU=G10,DC=ttt,DC=com" -Properties msExchHideFromAddressLists `
| % { Set-ADUser -Identity $_.samaccountname -Replace @{msExchHideFromAddressLists=$true} ;Set-ADUser -Identity $_.samaccountname -Replace @{mailnickname="$($_.samaccountname)"} }
Start-ADSyncSyncCycle -PolicyType Delta
- 在裝有ADConnect同步工具的域控伺服器上建立計劃任務。
圖形介面方式:
- 輸入“msc”命令開啟“Task Scheduler”控制皮膚。
- 開啟“任務計劃程式”,點選右邊的“建立基本任務”。
- 填寫名稱及描述資訊
- 當禁用AD使用者時,在本地的域控制器上會觸發一個事件日誌
- 選擇觸發型別
- 填寫Log、Source、EventID
Log: Security
Source: Microsoft Windows security auditing
Event ID : 4725
- 選擇操作型別
- “程式或指令碼”這裡要填寫Powershell程式的路徑,如圖中地址;在“新增引數”,這裡需要寫上:C:\automatically_hide_address_list.ps1 在起始項中填寫指令碼所在資料夾路徑
- 勾選圖中位置選項,點選下一步。
- 使用者那裡要使用Administrator管理員許可權,這個許可權最大,不容易出現:許可權不足的報錯。勾選“不管使用者是否登入都要執行”和“使用最高許可權執行”。
- 輸入管理員密碼
- 建立完成後就可以在計劃任務皮膚中看到該計劃。
備註:正常情況下我們的任務計劃執行後會有反饋數值:
-
- 程式碼 0 或 0x0:操作成功完成。
- 程式碼 1 或 0x1:呼叫的函式不正確或呼叫了未知函式。
- 程式碼 10 或 0xa:環境不正確。
- 程式碼 0x8009000f:常規訪問被拒絕
13. 效果驗證
禁用前
禁用後
禁用T23使用者,觸發系統安全事件日誌
計劃任務也自動觸發併成功執行。
檢查使用者的mailnickname和msExchHideFromAddressLists屬性值均發生更改。
雲端O365中的使用者已經被Blocked
檢視Exchange使用者中的Hide address list