ส่งออกรายงานสถานะ MFA ของผู้ใช้ Microsoft 365 ทั้งหมด
คุณสามารถตรวจสอบสถานะวิธีการรับรองความถูกต้องของ Microsoft ต่อผู้ใช้ได้ในศูนย์การจัดการ Microsoft Entra (Azure AD) ข้อเสียคือมันจะไม่แสดงข้อมูลโดยละเอียดให้คุณทราบ หากต้องการรับรายชื่อสถานะ MFA ของผู้ใช้ทั้งหมดในไฟล์ CSV ไฟล์เดียว คุณต้องเรียกใช้สคริปต์ PowerShell ในบทความนี้ คุณจะได้เรียนรู้วิธีส่งออกรายงานสถานะ MFA ของผู้ใช้ Microsoft 365 ทั้งหมดเป็นไฟล์ CSV ด้วย PowerShell
สถานะ MFA ของผู้ใช้ Microsoft 365 Azure
ผู้ใช้แต่ละคนมีรหัสผ่านในการลงชื่อเข้าใช้ แต่นั่นไม่ได้หมายความว่าพวกเขาจะเปิดใช้งานการรับรองความถูกต้องแบบหลายปัจจัย คุณสามารถตรวจสอบได้ว่าผู้ใช้รายใดในองค์กรของคุณที่เปิดใช้งาน MFA และวิธีการรับรองความถูกต้องที่พวกเขาใช้ หากต้องการดูภาพรวมของสถานะ MFA ของผู้ใช้ Microsoft 365 Azure ทั้งหมด วิธีที่ดีที่สุดคือส่งออกเป็นรายงานไฟล์ CSV ด้วย PowerShell
ในศูนย์การจัดการ Microsoft Entra คุณสามารถดูและดาวน์โหลดรายการสถานะ MFA สำหรับผู้ใช้ทั้งหมดได้ โดยจะแสดงวิธีการรับรองความถูกต้องที่ลงทะเบียนและวิธีการ MFA เริ่มต้นสำหรับผู้ใช้แต่ละราย
ความแตกต่างก็คือ คุณไม่สามารถค้นหาได้อย่างง่ายดายว่าผู้ใช้รายใดได้กำหนดค่าวิธีการรับรองความถูกต้องเฉพาะเจาะจง หากต้องการดูภาพรวมที่มีโครงสร้างของสถานะ MFA ของผู้ใช้ทั้งหมด คุณต้องใช้สคริปต์ PowerShell และส่งออกเป็นไฟล์ CSV
วิธีการรับรองความถูกต้องของ Microsoft MFA
สคริปต์ PowerShell จะแสดงภาพรวมของวิธีการรับรองความถูกต้องที่ลงทะเบียนไว้ซึ่งเปิดใช้งานสำหรับผู้ใช้ Azure AD ทั้งหมด
-
ใช้ที่อยู่อีเมลเป็นส่วนหนึ่งของกระบวนการรีเซ็ตรหัสผ่านด้วยตนเอง (SSPR)
- Fido2
ใช้คีย์ความปลอดภัย FIDO2 เพื่อลงชื่อเข้าใช้ Azure AD
- Microsoft Authenticator
ใช้ Microsoft Authenticator เพื่อลงชื่อเข้าใช้หรือดำเนินการตรวจสอบสิทธิ์แบบหลายปัจจัยกับ Azure AD
- Phone
ผู้ใช้สามารถใช้โทรศัพท์เพื่อตรวจสอบสิทธิ์โดยใช้ SMS หรือการโทร (ตามที่อนุญาตโดยนโยบาย)
- SoftwareOath
ใช้ Microsoft Authenticator เพื่อลงชื่อเข้าใช้หรือดำเนินการตรวจสอบสิทธิ์แบบหลายปัจจัยกับ Azure AD
- TemporartAccessPass
บัตรผ่านการเข้าถึงชั่วคราวเป็นรหัสผ่านแบบจำกัดเวลาซึ่งทำหน้าที่เป็นข้อมูลประจำตัวที่รัดกุม และช่วยให้สามารถเริ่มใช้ข้อมูลประจำตัวแบบไม่มีรหัสผ่านได้
- WindowsHelloForBusiness
Windows Hello for Business เป็นวิธีลงชื่อเข้าใช้แบบไร้รหัสผ่านบนอุปกรณ์ Windows
เชื่อมต่อกับ Microsoft Graph PowerShell
ก่อนที่คุณจะเรียกใช้สคริปต์ PowerShell Export-MFAstatus.ps1 คุณต้องติดตั้งโมดูล Microsoft Graph PowerShell
เรียกใช้คำสั่งด้านล่างเพื่อติดตั้งโมดูล Microsoft Graph
Install-Module Microsoft.Graph -Forceหมายเหตุ: เราขอแนะนำให้คุณติดตั้งโมดูล Microsoft Graph Beta มิฉะนั้นสคริปต์จะไม่ทำงาน
เรียกใช้คำสั่งด้านล่างเพื่อติดตั้งโมดูล Microsoft Graph Beta
Install-Module Microsoft.Graph.Beta -AllowClobber -Forceดาวน์โหลดสคริปต์ PowerShell สถานะ MFA
คุณสามารถส่งออกสถานะ MFA สำหรับผู้ใช้ทั้งหมดเป็นไฟล์ CSV ได้ คุณต้องสร้างโฟลเดอร์ชื่อ สคริปต์ หากคุณยังไม่มี
ดาวน์โหลดสคริปต์ Export-MFAstatus.ps1 PowerShell และบันทึกไว้ในโฟลเดอร์ C:\scripts
อีกวิธีหนึ่งคือการคัดลอกและวางโค้ดด้านล่างลงใน Notepad ตั้งชื่อให้ว่า Export-MFAstatus.ps1 และวางไว้ในโฟลเดอร์ C:\scripts
# Connect to Microsoft Graph API
Connect-MgGraph -Scopes "User.Read.All", "UserAuthenticationMethod.Read.All"
# Create variable for the date stamp
$LogDate = Get-Date -f yyyyMMddhhmm
# Define CSV file export location variable
$Csvfile = "C:\temp\MFAUsers_$LogDate.csv"
# Get all Azure users using the Microsoft Graph Beta API
$users = Get-MgBetaUser -All
# Initialize the results array
$results = @()
# Initialize progress counter
$counter = 0
$totalUsers = $users.Count
# Loop through each user account
foreach ($user in $users) {
$counter++
# Calculate percentage completion
$percentComplete = [math]::Round(($counter / $totalUsers) * 100)
# Define progress bar parameters with user principal name
$progressParams = @{
Activity = "Processing Users"
Status = "User $($counter) of $totalUsers - $($user.UserPrincipalName) - $percentComplete% Complete"
PercentComplete = $percentComplete
}
Write-Progress @progressParams
# Create an object to store user MFA information
$myObject = [PSCustomObject]@{
DisplayName = "-"
UserPrincipalName = "-"
MFAstatus = "Disabled" # Initialize to "Disabled"
Email = "-"
Fido2 = "-"
MicrosoftAuthenticatorApp = "-"
Phone = "-"
SoftwareOath = "-"
TemporaryAccessPass = "-"
WindowsHelloForBusiness = "-"
}
$myObject.UserPrincipalName = $user.UserPrincipalName
$myObject.DisplayName = $user.DisplayName
# Check authentication methods for each user
$MFAData = Get-MgBetaUserAuthenticationMethod -UserId $user.UserPrincipalName
foreach ($method in $MFAData) {
Switch ($method.AdditionalProperties["@odata.type"]) {
"#microsoft.graph.emailAuthenticationMethod" {
$myObject.Email = $true
$myObject.MFAstatus = "Enabled"
}
"#microsoft.graph.fido2AuthenticationMethod" {
$myObject.Fido2 = $true
$myObject.MFAstatus = "Enabled"
}
"#microsoft.graph.microsoftAuthenticatorAuthenticationMethod" {
$myObject.MicrosoftAuthenticatorApp = $true
$myObject.MFAstatus = "Enabled"
}
"#microsoft.graph.phoneAuthenticationMethod" {
$myObject.Phone = $true
$myObject.MFAstatus = "Enabled"
}
"#microsoft.graph.softwareOathAuthenticationMethod" {
$myObject.SoftwareOath = $true
$myObject.MFAstatus = "Enabled"
}
"#microsoft.graph.temporaryAccessPassAuthenticationMethod" {
$myObject.TemporaryAccessPass = $true
$myObject.MFAstatus = "Enabled"
}
"#microsoft.graph.windowsHelloForBusinessAuthenticationMethod" {
$myObject.WindowsHelloForBusiness = $true
$myObject.MFAstatus = "Enabled"
}
}
}
# Add user object to results array
$results += $myObject
}
# Export user information to CSV
$results | Export-Csv -Path $Csvfile -NoTypeInformation -Encoding UTF8
Write-Host "Script completed. Results exported to $Csvfile." -ForegroundColor Cyanส่งออกรายงานสถานะ MFA เป็น CSV
ก่อนที่คุณจะส่งออก คุณต้องสร้างโฟลเดอร์ชื่อ temp ในไดรฟ์ (C:) หากคุณยังไม่มี
หากต้องการส่งออกรายงานสถานะ MFA สำหรับผู้ใช้ทั้งหมด คุณต้องเรียกใช้ PowerShell ในฐานะผู้ดูแลระบบ
เรียกใช้สคริปต์ PowerShell Export-MFAstatus.ps1
C:\scripts\.\Export-MFAstatus.ps1มันจะเชื่อมต่อกับ MS Graph ซึ่งคุณต้องลงชื่อเข้าใช้บัญชีผู้ดูแลระบบของคุณ
- ป้อนรหัสผ่าน
- คลิก ลงชื่อเข้าใช้
ขออนุญาตเพื่อตรวจสอบความยินยอม
- เปิดใช้งานคำยินยอมในนามขององค์กรของคุณ
- คลิก ยอมรับ
ผลลัพธ์ PowerShell จะแสดงแถบความคืบหน้าและแจ้งให้คุณทราบเมื่อสคริปต์เสร็จสมบูรณ์ มันจะค้นหาและส่งออกสถานะ MFA สำหรับผู้ใช้ทั้งหมดในองค์กรของคุณ
Welcome To Microsoft Graph!
Script completed. Results exported to C:\temp\MFAUsers_202309191236.csv.คุณสามารถค้นหาไฟล์ CSV ได้ในโฟลเดอร์ C:\temp เปิดไฟล์ CSV ด้วยแอปพลิเคชันเช่น Microsoft Excel เพื่อดูผลลัพธ์
นี่คือผลลัพธ์สุดท้ายของสถานะ MFA ของผู้ใช้ Microsoft 365 ทั้งหมดในองค์กรของเรา หากผู้ใช้มี สถานะ MFA ปิดใช้งาน ผู้ใช้จะมีเพียงรหัสผ่านในการลงชื่อเข้าใช้โดยไม่มีวิธีการตรวจสอบสิทธิ์อื่นใด
- เปิดใช้งาน: MFA ได้รับการตั้งค่าสำหรับบัญชีผู้ใช้แล้ว
- ปิดใช้งาน: ไม่ได้ตั้งค่า MFA สำหรับบัญชีผู้ใช้
หมายเหตุ: เตือนบัญชีผู้ใช้ที่มีสถานะ MFA ปิดใช้งาน ในรายการเพื่อกำหนดค่า MFA
คุณสามารถส่งออกสถานะ MFA ของผู้ใช้ Microsoft 365 ทั้งหมดด้วย Microsoft Graph PowerShell ได้หรือไม่
อ่านเพิ่มเติม: รีเซ็ต MFA สำหรับผู้ใช้ Microsoft 365 »
บทสรุป
คุณได้เรียนรู้วิธีส่งออกรายงานสถานะ MFA ของผู้ใช้ Microsoft 365 ทั้งหมด ด้วย Microsoft Graph PowerShell คุณสามารถเรียกใช้สคริปต์ Export-MFAstatus.ps1 PowerShell เพื่อส่งออกสถานะ MFA ของผู้ใช้แต่ละรายเป็นไฟล์ CSV รายงานนี้แสดงว่าผู้ใช้รายใดเปิดใช้งาน MFA และวิธีการตรวจสอบสิทธิ์ที่พวกเขาใช้
คุณสนุกกับบทความนี้หรือไม่? คุณอาจต้องการสร้างผู้ใช้ Azure AD จำนวนมากด้วยไฟล์ CSV อย่าลืมติดตามเราและแบ่งปันบทความนี้



