ค้นหาเว็บไซต์

ส่งออกรายงานรหัสผ่านผู้ใช้ Microsoft 365


คุณสามารถตรวจสอบนโยบายการหมดอายุของรหัสผ่านสำหรับทั้งองค์กรของคุณได้ในศูนย์การจัดการ Microsoft 365 ไม่แสดงรายการผู้ใช้แต่ละรายทั้งหมด หากต้องการรับข้อมูลรหัสผ่านโดยละเอียดสำหรับผู้ใช้ Microsoft 365 แต่ละราย คุณต้องเรียกใช้สคริปต์ PowerShell ในบทความนี้ คุณจะได้เรียนรู้วิธีส่งออกรายงานรหัสผ่านผู้ใช้ Microsoft 365 เป็นไฟล์ CSV

ข้อมูลส่งออกสคริปต์ PowerShell รหัสผ่านผู้ใช้ Microsoft 365

หากองค์กรของคุณไม่ได้กำหนดนโยบายการหมดอายุของรหัสผ่าน Microsoft แนะนำให้ตั้งค่ารหัสผ่านให้ไม่มีวันหมดอายุ เมื่อทั้งองค์กรมีนโยบายการหมดอายุของรหัสผ่าน ก็อาจมีผู้ใช้ Microsoft 365 แต่ละรายที่มีนโยบายอื่น นั่นคือจุดที่สคริปต์ PowerShell มาช่วยเหลือ

สคริปต์นี้จะเรียกใช้และรวบรวมข้อมูลต่อไปนี้ต่อผู้ใช้:

  1. บัตรประจำตัวประชาชน
  2. ชื่อหลักของผู้ใช้
  3. จดหมาย
  4. ชื่อที่แสดง
  5. นโยบายรหัสผ่าน
  6. วันที่เปลี่ยนรหัสผ่านครั้งล่าสุด
  7. วันที่และเวลาที่สร้าง
  8. โดเมน
  9. อายุรหัสผ่านสูงสุด
  10. อายุรหัสผ่าน
  11. หมดอายุวันที่
  12. วันเวลาที่เหลือ

เราจะแสดงวิธีรับผลลัพธ์เหล่านี้ในขั้นตอนต่อไป

ส่งออกผู้ใช้ Microsoft 365 เป็น CSV ด้วย PowerShell

ทำตามขั้นตอนต่างๆ และส่งออกรายงานรหัสผ่านผู้ใช้ Microsoft 365 เป็นไฟล์ CSV ด้วย PowerShell

1. ติดตั้ง Microsoft Graph PowerShell

ก่อนที่คุณจะเรียกใช้สคริปต์ PowerShell Export-M365PasswordReport.ps1 คุณต้องติดตั้งโมดูล Microsoft Graph PowerShell

เรียกใช้คำสั่งด้านล่างเพื่อติดตั้งโมดูล Microsoft Graph

Install-Module Microsoft.Graph -Force

2. เชื่อมต่อกับ Microsoft Graph PowerShell

คุณต้องเชื่อมต่อกับ MS Graph ด้วยขอบเขตด้านล่าง

Connect-MgGraph -Scopes "User.ReadWrite.All", "Group.ReadWrite.All", "Directory.ReadWrite.All"
  1. ลงชื่อเข้าใช้ด้วยข้อมูลประจำตัวผู้ดูแลระบบของคุณ
  2. เปิดใช้งานคำยินยอมในนามขององค์กรของคุณ
  3. คลิก ยอมรับ

3. ดาวน์โหลดสคริปต์ Export-M365PasswordReport PowerShell

หากต้องการดาวน์โหลดสคริปต์ PowerShell Export-M365PasswordReport ให้ทำตามขั้นตอนเหล่านี้:

  1. ดาวน์โหลดสคริปต์ PowerShell Export-M365PasswordReport.ps1
  2. หรือคัดลอกสคริปต์ด้านล่างลงใน Notepad และบันทึกเป็นไฟล์ Export-M365PasswordReport.ps1
<#
    .SYNOPSIS
    .\Export-M365UsersPassword.ps1

    .DESCRIPTION
    Connect to Microsoft Graph PowerShell first.
    The script exports the passwords report for all Microsoft 365 users to a CSV file.

    .LINK
    
Export Microsoft 365 users password report
.NOTES Written By: o365info Website: o365info.com .CHANGELOG V1.00, 10/26/2023 - Initial version #> # Get all domain password expiration policies $domains = Get-MgDomain | Select-Object Id, PasswordValidityPeriodInDays $domains | ForEach-Object { if (!$_.PasswordValidityPeriodInDays) { $_.PasswordValidityPeriodInDays = 90 } } # Get user information $properties = "Id", "UserPrincipalName", "mail", "displayName", "PasswordPolicies", "LastPasswordChangeDateTime", "CreatedDateTime" $users = Get-MgUser -Filter "userType eq 'member' and accountEnabled eq true" ` -Property $properties -CountVariable userCount ` -ConsistencyLevel Eventual -All -Verbose | ` Select-Object $properties | Where-Object { "$(($_.userPrincipalName).Split('@')[1])" -in $($domains.id) } # Add properties to the $users objects $users | Add-Member -MemberType NoteProperty -Name Domain -Value $null $users | Add-Member -MemberType NoteProperty -Name MaxPasswordAge -Value 0 $users | Add-Member -MemberType NoteProperty -Name PasswordAge -Value 0 $users | Add-Member -MemberType NoteProperty -Name ExpiresOn -Value (Get-Date '1970-01-01') $users | Add-Member -MemberType NoteProperty -Name DaysRemaining -Value 0 # Get the current datetime for calculation $timeNow = Get-Date foreach ($user in $users) { # Get the user's domain $userDomain = ($user.userPrincipalName).Split('@')[1] # Check if the user has "disablepasswordexpiration" set if ($user.PasswordPolicies -contains "DisablePasswordExpiration") { # Set values to indicate that the password does not expire for this user $passwordAge = (New-TimeSpan -Start $user.LastPasswordChangeDateTime -End $timeNow).Days $user.MaxPasswordAge = "Password does not expire" $user.PasswordAge = $passwordAge $user.ExpiresOn = "N/A" $user.DaysRemaining = "N/A" } else { # Get the maximum password age based on the domain password policy $maxPasswordAge = ($domains | Where-Object { $_.id -eq $userDomain }).PasswordValidityPeriodInDays # Check if MaxPasswordAge is 2147483647 if ($maxPasswordAge -eq 2147483647) { $passwordAge = (New-TimeSpan -Start $user.LastPasswordChangeDateTime -End $timeNow).Days $user.MaxPasswordAge = "Password does not expire" $user.PasswordAge = $passwordAge $user.ExpiresOn = "N/A" $user.DaysRemaining = "N/A" } else { $passwordAge = (New-TimeSpan -Start $user.LastPasswordChangeDateTime -End $timeNow).Days $expiresOn = (Get-Date $user.LastPasswordChangeDateTime).AddDays($maxPasswordAge) $user.PasswordAge = $passwordAge $user.ExpiresOn = $expiresOn $user.DaysRemaining = $( # If the remaining days is negative, show "Expired" instead if (($daysRemaining = (New-TimeSpan -Start $timeNow -End $expiresOn).Days) -le 0) { "Expired" } else { $daysRemaining } ) $user.MaxPasswordAge = $maxPasswordAge } } $user.Domain = $userDomain } # Display the results in Out-GridView $users | Out-GridView # Export the results to CSV file $users | Export-Csv -Path "C:\temp\M365UsersPassword.csv" -NoTypeInformation -Encoding UTF8
  1. สร้างโฟลเดอร์ สคริปต์ และ temp ในไดรฟ์ (C:) ของคุณ หากคุณยังไม่มี
  2. บันทึกสคริปต์ PowerShell Export-M365PasswordReport.ps1 ในโฟลเดอร์ C:\scripts

เปิดไฟล์เพื่อตรวจสอบว่าไม่ได้บล็อกหรือไม่ เพื่อป้องกันข้อผิดพลาดเมื่อเรียกใช้สคริปต์

4. เรียกใช้สคริปต์ Export-M365PasswordReport PowerShell

เรียกใช้ PowerShell ในฐานะผู้ดูแลระบบ และเรียกใช้สคริปต์ PowerShell Export-M365PasswordReport.ps1

C:\scripts\.\Export-M365PasswordReport.ps1

สคริปต์ PowerShell เริ่มสแกนผู้ใช้ Microsoft 365 ทั้งหมดในองค์กร อาจใช้เวลาสักครู่หากคุณมีผู้ใช้จำนวนมาก

5. รายงานการหมดอายุของรหัสผ่านผู้ใช้ Out-GridView Microsoft 365

สคริปต์จะแสดงรายการข้อมูลรหัสผ่านผู้ใช้ Microsoft 365 ในหน้าต่างมุมมองตาราง

Out-GridView ปรากฏขึ้นหลังจากสคริปต์เสร็จสิ้น โดยจะแสดงนโยบายรหัสผ่าน (ไม่มี, ว่างเปล่า, DisableStrongPassword หรือ DisablePasswordExpiration) ที่ผู้ใช้ Microsoft 365 แต่ละรายมี

6. เปิดไฟล์ CSV รายงานการหมดอายุของรหัสผ่านผู้ใช้ Microsoft 365 ใน Excel

คุณจะพบไฟล์ M365UsersPassword.csv ในโฟลเดอร์ C:\temp

เปิดไฟล์ CSV ด้วยแอปพลิเคชันเช่น Microsoft Excel เพื่อดูผลลัพธ์

แค่นั้นแหละ.

หมายเหตุ: เมื่อคุณมีรายงานรหัสผ่านผู้ใช้ Microsoft 365 แล้ว คุณสามารถจัดการรหัสผ่านผู้ใช้ Microsoft 365 ได้

อ่านเพิ่มเติม: ส่งออกรายงานขนาดกล่องจดหมาย Microsoft 365 ด้วย PowerShell »

บทสรุป

คุณได้เรียนรู้วิธีส่งออกรายงานรหัสผ่านผู้ใช้ Microsoft 365 เป็นไฟล์ Out-GridView และ CSV ด้วย PowerShell สคริปต์ PowerShell Export-M365PasswordReport.ps1 แสดงรายงานรหัสผ่านโดยละเอียดสำหรับผู้ใช้แต่ละราย คุณจะได้รับภาพรวมที่มีโครงสร้างซึ่งแสดงว่านโยบายรหัสผ่านที่ผู้ใช้แต่ละรายมีและเมื่อรหัสผ่านหมดอายุ

คุณสนุกกับบทความนี้หรือไม่? คุณอาจต้องการส่งออกสิทธิ์การใช้งานผู้ใช้ Microsoft 365 อย่าลืมติดตามเราและแบ่งปันบทความนี้

บทความที่เกี่ยวข้อง