ส่งออกรายงานผู้ใช้ที่ไม่ได้ใช้งาน Microsoft 365
คุณต้องการค้นหาผู้ใช้ Microsoft 365 ที่ไม่ได้ใช้งานทั้งหมด ไม่มีประโยชน์ในการรักษาบัญชีผู้ใช้ให้ใช้งานได้เมื่อไม่มีกิจกรรมใดๆ บัญชีผู้ใช้ที่ไม่ได้ใช้งานกลายเป็นเป้าหมายของแฮกเกอร์ได้ง่าย และคุณควรปิดการใช้งานบัญชีเหล่านี้ ในบทความนี้ คุณจะได้เรียนรู้วิธีส่งออกรายงานผู้ใช้ที่ไม่ได้ใช้งาน Microsoft 365
ผู้ใช้ Microsoft 365 ที่ไม่ได้ใช้งานคืออะไร
ผู้ใช้ Microsoft 365 ที่ไม่ได้ใช้งานเกิดขึ้นเมื่อผู้ใช้ไม่ได้ลงชื่อเข้าใช้ในช่วงชุดวันที่ผ่านมา สิ่งนี้อาจแตกต่างกันไปในแต่ละองค์กร บางคนพบว่าบัญชีที่ไม่ได้ใช้งานจะใช้งานได้เมื่อไม่มีการลงชื่อเข้าใช้ภายใน 60 หรือ 90 วันที่ผ่านมา บางคนพบว่าเป็นเวลา 30 วัน
Center for Internet Security (CIS) แนะนำให้ลบหรือปิดใช้งานบัญชีที่ไม่มีความเคลื่อนไหวใดๆ หลังจากไม่มีการใช้งานเป็นเวลา 45 วัน หากได้รับการสนับสนุน
ดู 5.3: ปิดการใช้งานบัญชีที่ไม่มีการเคลื่อนไหว
ข้อสำคัญ: คุณต้องมีใบอนุญาตรุ่น Microsoft Entra ID P1 หรือ P2 เพื่อดูวันที่ลงชื่อเข้าใช้ครั้งล่าสุด
ตรวจสอบวันที่ลงชื่อเข้าใช้ครั้งล่าสุดของผู้ใช้ในศูนย์การจัดการ Microsoft 365
เมื่อต้องการตรวจสอบวันที่ลงชื่อเข้าใช้ครั้งล่าสุดของผู้ใช้ Microsoft 365 ในศูนย์การจัดการ Microsoft 365 ให้ทำตามขั้นตอนเหล่านี้:
ลงชื่อเข้าใช้ศูนย์การจัดการ Microsoft 365
ขยาย ผู้ใช้
คลิกที่ ผู้ใช้ที่ใช้งานอยู่
เลือกผู้ใช้
คลิกที่ บัญชี > ดู 30 วันที่ผ่านมา
วันที่ลงชื่อเข้าใช้ล่าสุด สถานะ และสาเหตุของความล้มเหลว (ถ้ามี) จะปรากฏขึ้น
จะทำอย่างไรถ้าคุณต้องการส่งออกสถานะการลงชื่อเข้าใช้ครั้งล่าสุดของผู้ใช้ทั้งหมด PowerShell เพื่อช่วยเหลือ
ส่งออกสคริปต์ PowerShell ผู้ใช้ที่ไม่ได้ใช้งาน Microsoft 365
สคริปต์ Export-M365InactiveUsers.ps1 PowerShell จะได้รับผู้ใช้ Microsoft 365/Microsoft Entra ID ทั้งหมด และส่งออกรายงานเป็นไฟล์ CSV ที่แสดงจำนวนวันที่ผ่านไปนับตั้งแต่ลงชื่อเข้าใช้ครั้งล่าสุด
หมายเหตุ: ค่า LastSuccessfulSignInDate จะเริ่มปรากฏในรายงานภายใน 6 ชั่วโมง ข้อมูลสำหรับพร็อพเพอร์ตี้นี้ไม่ได้รับการทดแทนและเริ่มบันทึกการลงชื่อเข้าใช้หลังจากวันที่ 1 ธันวาคม 2023
สำหรับผู้ใช้ทุกคน จะรวบรวมข้อมูลต่อไปนี้:
รหัส
UserPrincipalName
ชื่อที่แสดง
อีเมล
ประเภทผู้ใช้
เปิดใช้งานบัญชีแล้ว
LastSuccessfulSignInDate
-
จำนวนวันนับตั้งแต่การลงชื่อเข้าใช้ครั้งล่าสุด
สร้างวันที่และเวลา
ได้รับใบอนุญาตแล้ว
เตรียมสคริปต์ Export-M365InactiveUsers PowerShell
สร้างสองโฟลเดอร์บนไดรฟ์ (C:):
อุณหภูมิ
สคริปต์
ดาวน์โหลดสคริปต์ Export-M365InactiveUsers.ps1 PowerShell และวางไว้ในโฟลเดอร์ C:\scripts สคริปต์จะส่งออกไฟล์ CSV ไปยังโฟลเดอร์ C:\temp
ตรวจสอบให้แน่ใจว่าไฟล์ไม่ได้ถูกบล็อกเพื่อป้องกันข้อผิดพลาดเมื่อเรียกใช้สคริปต์ อ่านเพิ่มเติมในบทความไม่มีข้อผิดพลาดในการเซ็นชื่อแบบดิจิทัลเมื่อเรียกใช้สคริปต์ PowerShell
อีกทางเลือกหนึ่งคือการคัดลอกและวางโค้ดด้านล่างลงใน Notepad ตั้งชื่อเป็น Export-M365InactiveUsers.ps1 และวางไว้ในโฟลเดอร์ C:\scripts
<#
.SYNOPSIS
Export-M365InactiveUsers.ps1
.DESCRIPTION
Export Microsoft 365/Microsoft Entra ID inactive users report.
.LINK
www.alitajran.com/export-microsoft-365-inactive-users/
.NOTES
Written by: ALI TAJRAN
Website: www.alitajran.com
LinkedIn: linkedin.com/in/alitajran
.CHANGELOG
V1.00, 12/13/2023 - Initial version
V1.10, 02/26/2024 - Added IsLicensed column
V1.20, 04/02/2024 - Calculate DaysSinceLastSignIn from LastSuccessfulSignInDateTime property
#>
# Export path for CSV file
$CSVPath = "C:\Temp\InactiveUsers.csv"
# Parameters
$InactiveUsers = @()
# Connect to Microsoft Graph API
Connect-MgGraph -Scopes "User.Read.All", "AuditLog.Read.All"
# Get properties
$Properties = @(
'Id',
'DisplayName',
'Mail',
'UserPrincipalName',
'UserType',
'AccountEnabled',
'SignInActivity',
'CreatedDateTime',
'AssignedLicenses'
)
# Get all users along with the properties
$AllUsers = Get-MgBetaUser -All -Property $Properties | Select-Object $Properties
foreach ($User in $AllUsers) {
$LastSuccessfulSignInDate = if ($User.SignInActivity.LastSuccessfulSignInDateTime) {
$User.SignInActivity.LastSuccessfulSignInDateTime
}
else {
"Never Signed-in."
}
$DaysSinceLastSignIn = if ($User.SignInActivity.LastSuccessfulSignInDateTime) {
(New-TimeSpan -Start $User.SignInActivity.LastSuccessfulSignInDateTime -End (Get-Date)).Days
}
else {
"N/A"
}
# Check if the user is licensed
$IsLicensed = if ($User.AssignedLicenses) {
"Yes"
}
else {
"No"
}
# Collect data
if (!$User.SignInActivity.LastSuccessfulSignInDateTime -or (Get-Date $User.SignInActivity.LastSuccessfulSignInDateTime)) {
$InactiveUsers += [PSCustomObject]@{
Id = $User.Id
UserPrincipalName = $User.UserPrincipalName
DisplayName = $User.DisplayName
Email = $User.Mail
UserType = $User.UserType
AccountEnabled = $User.AccountEnabled
LastSuccessfulSignInDate = $LastSuccessfulSignInDate
DaysSinceLastSignIn = $DaysSinceLastSignIn
CreatedDateTime = $User.CreatedDateTime
IsLicensed = $IsLicensed
}
}
}
# Display data using Out-GridView
$InactiveUsers | Out-GridView -Title "Inactive Users"
# Export data to CSV file
try {
$InactiveUsers | Export-Csv -Path $CSVPath -NoTypeInformation -Encoding UTF8
Write-Host "Script completed. Results exported to $CSVPath." -ForegroundColor Cyan
}
catch {
Write-Host "Error occurred while exporting to CSV: $_" -ForegroundColor Red
}บรรทัดที่ 23: แก้ไขเส้นทางไฟล์ CSV
เชื่อมต่อกับ Microsoft Graph PowerShell
ก่อนที่เราจะดำเนินการต่อไปและรับสถานะไม่ใช้งานสำหรับผู้ใช้ทั้งหมด เราจำเป็นต้องติดตั้งและเชื่อมต่อกับ Microsoft Graph PowerShell
เริ่ม Windows PowerShell ในฐานะผู้ดูแลระบบและเรียกใช้คำสั่งด้านล่าง
Install-Module Microsoft.Graph -ForceInstall-Module Microsoft.Graph.Beta -AllowClobber -Forceข้อสำคัญ: ติดตั้งโมดูล Microsoft Graph PowerShell และ Microsoft Graph Beta PowerShell เสมอ นั่นเป็นเพราะบาง cmdlet ยังไม่พร้อมใช้งานในเวอร์ชันสุดท้าย และจะไม่ทำงาน อัปเดตทั้งสองโมดูลเป็นเวอร์ชันล่าสุดก่อนที่คุณจะเรียกใช้ cmdlet หรือสคริปต์เพื่อป้องกันข้อผิดพลาดและผลลัพธ์ที่ไม่ถูกต้อง
เรียกใช้ Connect-MgGraph cmdlet
Connect-MgGraph -Scopes "User.Read.All", "AuditLog.Read.All"เรียกใช้สคริปต์ Export-M365InactiveUsers PowerShell
รับผู้ใช้ที่ไม่ได้ใช้งานทั้งหมดด้วย PowerShell เรียกใช้คำสั่งด้านล่างเพื่อเรียกใช้สคริปต์ Export-M365InactiveUsers.ps1
c:\scripts\.\Export-M365InactiveUsers.ps1Out-GridView
Out-GridView จะแสดงคอลัมน์พร้อมผู้ใช้ที่ไม่ได้ใช้งานทั้งหมดและข้อมูลอื่นๆ อีกมากมาย
เปิดไฟล์ CSV รายงานผู้ใช้ที่ไม่ได้ใช้งาน Microsoft 365
สคริปต์ Export-M365InactiveUsers.ps1 PowerShell จะส่งออกการไม่ใช้งานของผู้ใช้ Microsft 365 ไปยังไฟล์ CSV ค้นหาไฟล์ InactiveUsers.csv ในเส้นทาง C:\temp
เปิดไฟล์ CSV ด้วยแอปพลิเคชันที่คุณชื่นชอบ ในตัวอย่างของเรา มันคือ Microsoft Excel
สิ่งนี้ช่วยให้คุณส่งออกผู้ใช้ที่ไม่ได้ใช้งาน Microsoft 365 เป็นไฟล์ CSV หรือไม่
หมายเหตุ: คุณต้องการทำความเข้าใจ คุณสมบัติการลงชื่อเข้าใช้ ทั้งสามรายการ และวิธีการเรียกข้อมูลหรือไม่ อ่านบทความส่งออกวันที่และเวลาลงชื่อเข้าใช้ของผู้ใช้ Microsoft 365 ครั้งล่าสุด
อ่านเพิ่มเติม: บล็อกการลงชื่อเข้าใช้จากกล่องจดหมายที่แชร์ »
บทสรุป
คุณได้เรียนรู้วิธีส่งออกผู้ใช้ที่ไม่ได้ใช้งานจาก Microsoft 365 รับรายงานผู้ใช้ที่ไม่ได้ใช้งานด้วยสคริปต์ Export-M365InactiveUsers PowerShell และตรวจสอบอย่างละเอียด ตรวจสอบสาเหตุที่ไม่มีกิจกรรมการลงชื่อเข้าใช้ของผู้ใช้และปิดใช้งานบัญชีผู้ใช้ที่ไม่ได้ใช้งานเพื่อปกป้ององค์กรของคุณ
คุณสนุกกับบทความนี้หรือไม่? คุณอาจต้องการส่งออกผู้ใช้ Azure AD เป็น CSV ด้วย PowerShell อย่าลืมติดตามเราและแบ่งปันบทความนี้






