執行初步來賓帳戶稽核
許多租用戶都有不再使用的來賓帳戶,有時甚至數量相當龐大。Microsoft 雖然讓邀請來賓變得很簡單,但對於來賓「主動離開」的機制卻比較複雜。整體來說,來賓帳戶的生命週期管理流程很容易導致「幽靈來賓帳戶」的出現。本篇文章的目的,就是幫助你判斷自己是否成為了「幽靈來賓帳戶的寄主」。
目前並沒有一個整合式的資料來源,可以讓你清楚看到每一個來賓帳戶在你的租用戶中擁有什麼存取權限,以及他們做過哪些操作。不過,Tony 那篇文章中提到的方法是一個不錯的起點,因為它可以列出目前系統中有哪些來賓帳戶。
雖然你可能會想直接用像下面這樣的 PowerShell 指令,快速輸出所有來賓帳戶的 CSV 清單,但實際上有一些細節你需要注意,例如:查找從未登入過的帳戶與查找已登入的帳戶,需要用不同的方法來處理。
powershell
# 取得所有來賓帳戶的關鍵資訊
Get-MgUser -Filter "userType eq 'Guest'" -Property `
"displayName,mail,createdDateTime,userPrincipalName,id" | `
Select-Object DisplayName, Mail, CreatedDateTime, UserPrincipalName, Id |`
Export-CSV "GuestUsers.csv" -NoTypeInformation
你也可以透過 Entra 管理中心檢視這些資料,並依需求進行篩選。
下一步,建議你識別出含有來賓使用者的群組,因為 Microsoft 長期以來的建議做法是透過群組來指派權限。下面這段 PowerShell 程式碼可以產生一個 CSV 檔案,列出有哪些群組包含來賓帳戶。你可以將這個檔案作為後續稽核表格的基礎。
powershell
# 若尚未連線,請使用必要的範圍連接至 Graph
Connect-MgGraph -Scopes "Group.Read.All", "User.Read.All"
$Groups = Get-MgGroup -All
$Results = @()
ForEach ($Group in $Groups) {
$Members = Get-MgGroupMember -GroupId $Group.Id
$GuestMembers = @()
ForEach ($Member in $Members) {
$User = Get-MgUser -UserId $Member.Id -Property "userPrincipalName,userType"
If ($User.UserType -eq "Guest") {
$GuestMembers += $User
}
}
If ($GuestMembers.Count -gt 0) {
$Results += [PSCustomObject]@{
GroupName = $Group.DisplayName
GuestCount = $GuestMembers.Count
GuestEmails = ($GuestMembers.UserPrincipalName -join "; ")
}
}
}
來賓使用者也經常使用 SharePoint。你可以透過 SharePoint 管理中心中的「作用中網站」檢視,快速查看哪些網站啟用了共用功能。不過若要取得完整資訊,就需要檢查每個網站的共用設定,才能知道每位使用者的實際存取權限。這部分可以透過撰寫 PowerShell 腳本,搭配 Get-MgSite 來抓取網站清單,再用Get-MgSitePermission 和 Get-MgUser 來建立來賓存取權限清單。(如果大家有興趣,這也許可以成為未來的專欄主題!)
此外,你也可以在 Microsoft 365 系統管理中心使用使用量報告,查看來賓在 Teams 中的實際使用狀況。
彙整你的稽核資料
在你進一步加強租用戶設定的安全性之前,請先將你已經收集好的稽核資料彙整起來,建立一份清單或試算表,至少要記錄以下項目:
🔹租用戶中來賓帳戶的總數
🔹來賓帳戶的擁有者(如果可以的話,盡量記錄該帳戶邀請來源的部門、網站或其他相關資訊)
🔹帳戶年齡分佈(例如:有多少帳戶存在超過 90 天、180 天、365 天)
🔹活躍帳戶與非活躍帳戶的區分
用「看起來活躍」與「看起來不活躍」來描述,是因為在移除帳戶時,你可能會傾向保守處理——除非能確認該帳戶確實未使用,否則不貿然刪除。
🔹有哪些網站、Teams 團隊等擁有最多的來賓帳戶或最多來賓活動紀錄


Comments are closed, but trackbacks and pingbacks are open.