概述
本文將演示如何在必要的時候(例如在測試環境),通過PowerShell腳本批量刪除Office 365的用戶,首先需要通過Get-MsolUser的命令(並且配合篩選條件)獲取到符合條件的用戶列表,然后通過Remove-MsolUser的命令將其刪除。
注意,刪除操作會將用戶放入到回收站,你還可以從回收站中對其進行恢復。但是要恢復相關的郵件,以及OneDrive網站等個人相關數據,可能還需要一定的時間。請慎重操作。
前提
要想運行如上提到的兩個命令,需要在Windows 10的機器上面,安裝如下的幾個組件
1. 下載安裝官方提供的Microsoft Online Service Sign-in Assistant for IT Professionals https://go.microsoft.com/fwlink/p/?LinkId=286152
2. 下載安裝官方提供的Azure Active Directory Connection http://connect.microsoft.com/site1164/Downloads/DownloadDetails.aspx?DownloadID=59185
3. 請在本地用管理員身份打開PowerShell,並運行命令 Install-Module -Name AzureAD
進行后續操作之前,需要准備好Office 365 管理員賬號,並且連接上MsolService,如下圖所示
操作
首先,我們來看一下Get-MsolUser這個命令
https://docs.microsoft.com/en-us/powershell/module/msonline/get-msoluser?view=azureadps-1.0
這里的關鍵在於如何過濾出來我們想要操作的用戶,這個命令帶有幾個有趣的參數
[-City <String>] [-Country <String>] [-Department <String>] [-DomainName <String>] [-EnabledFilter <UserEnabledFilter>][-SearchString <String>]
這些參數都可以用來作為過濾的條件,而且這個過濾是在服務器端發生的。
需要注意的是SearchString,只支持簡單的模糊匹配,它會在displayname和alias中做匹配。
有時候,我們可能需要根據用戶的創建時間進行篩選。目前沒有看到這方面的參數。但可以通過下面的方式來解決
Where-Object {$_.WhenCreated –gt “6/16/2017”}
這個過濾是在本地過濾的,就是把所有用戶讀取到了本地緩存中,然后再過濾。上述表達式的意思是,找到6/16/2017后創建的用戶。
使用$users保存了這個用戶列表后,可以進一步操作Remove-MsolUser命令來進行刪除
$users | Remove-MsolUser –Force