最近在測試 AD 與 Office 365 做單一登入整合(SSO),由於單一登入的佈署,必須透過 DirSync 做目錄同步作業,之後 Office 365 網站就會被塞入 AD 上的所有帳號。由於,測試過程不是很順利,我決定先解掉同步設定,把環境弄乾淨再重作一次;但同步到 Office 365 的 AD 帳號,可不會因為停用掉目錄同步而自動消失,必須手動刪除。
麻煩的是,用 UI 介面刪除掉的這些帳號,會先通通放進「已刪除的使用者」中,而且預設是 30 天後才清掉。難道,我們一定要一個月後才能再回來玩嗎?
還好,「介面有限,指令無限」!!!
想要很完全地管理 Office 365 或 Azure,強烈建議一定要裝相關的 PowerShell。
以本問題狀況為例,請依照文件庫的說明,安裝 Windows Azure Active Directory Module for Windows PowerShell
使用 Windows PowerShell 管理 Azure AD
安裝過程如本文最上圖,堪稱無腦,也就是一直按下一步就完成了。
接著參考下圖,請到開始的應用程式找「適用於 Windows PowerShell 的 Windows Azure Active Directory 模組」。說實話,我個人推薦直接用右側工具列,搜尋「powershell」就能快速找到。(為什麼你都知道搜尋資料用 Google,找個應用程式卻不用 Windows 8 內建的搜尋?)
啟動後,請依序執行下面指令
$msolcred = get-credential
此指令執行後,會跳出一個認證要求視窗。
請輸入可具 Office 365 系統管理存取權限的帳號及密碼。
接著執行此指令,連接微軟雲端服務。
connect-msolservice -credential $msolcred
再簡單執行此指令,以確認連上,可查詢線上服務的相關資訊。
Get-MsolDomain
確認指令成功後,就可以進行我的毀滅淨化計畫 - 刪除「已刪除的使用者」中的帳號。
Get-MsolUser -ReturnDeletedUsers
那就先拿我自己被同步上去的 AD 帳號來開刀吧。
Get-MsolUser -ReturnDeletedUsers -UserPrincipalName "User UPN"
刪除位於「已刪除的使用者」的帳號指令。
Remove-MsolUser -UserPrincipalName "User UPN" -RemoveFromRecycleBin
按下 Enter 鍵或 Y 就可以跟他說 Bye Bye 了。
但...同步上來的 AD 帳號可不是只有十幾個啊,怎麼可能一個一個輸入做清除。
還好,請使用下面終極指令就能全部清除。(使用前請務必三思)
Get-MsolUser -ReturnDeletedUsers | Remove-MsolUser -RemoveFromRecycleBin
這指令有一個大問題是,若你有一百個帳號要清的話,上面的指令執行後,就按 100 次的 Enter 鍵同意這樣的刪除操作。所以,最快方式就是,加上參數「-Force」,就會連問都不問你,一次清光光,要小心啊!
回到 Office 365 系統管理中心檢查,真的一個都不留啦。
我想,Office 365 系統管理中心的「已刪除的使用者」,應該類似 AD 資源回收桶的概念。主要是避免管理者手殘誤刪除使用者,最後無法挽救。
或許有人會問,那為什麼不在 UI 上做一個清理回收桶的按鈕呢?其實,在聽過不少悲劇後,我也覺得這最後一道防線用指令才能做會安全些。
方便及安全往往很難兩全的。
請問蘇老,
關於DirSync如果將AD帳號+密碼上傳至Azure AD
今天使用者透過自助式服務在portal修改密碼
那多久會回寫到AD上?
我目前的瞭解是,DirSync 針對密碼的部份是單向同步動作,
也就是地端的AD帳密同步到雲端,
並不會因為雲端的密碼修改後回寫到地端AD。
詳情可以參考這篇文章
Five Things you should know about using DirSync with Password Sync
我覺得我現在應該來修正之前的回覆,
如果有 Azure AD Premium 授權,
加上目前的 Azure AD Connect 軟體,
已經可以完整做到從雲端 (Azure AD) 回寫密碼到地端 AD
至於回寫的頻率,
從官方的 FAQ 文件關於 WriteBack 這段,
有談到應該是立即的
「Q: How long does password writeback take to work? Is there a synchronization delay like with password hash sync?
A: Password writeback is instant.」
非常感谢你的信息。
很有用,感謝提供資訊!