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

สร้างรายงานการใช้งานกล่องจดหมายด้วย Microsoft Graph PowerShell


รายงานการใช้งานใน Microsoft 365 เช่น รายงานการใช้งาน OneDrive, SharePoint และกล่องจดหมาย เป็นวิธีที่สะดวกในการรับภาพรวมอย่างรวดเร็วของการใช้พื้นที่เก็บข้อมูลในผู้เช่าของคุณ ปัญหาหนึ่งที่เกิดขึ้นในการถามตอบของ Microsoft คือรายงานเหล่านี้ไม่สามารถกำหนดค่าให้ส่งถึงคุณโดยอัตโนมัติทางอีเมลตามระยะเวลาที่กำหนด โดยเฉพาะรายงานการใช้กล่องจดหมาย Exchange Online

วิธีแก้ไขปัญหานี้คือการสร้างรายงานเดียวกันโดยใช้ Microsoft Graph PowerShell ก่อน เมื่อสร้างรายงานแล้ว คุณจะมีความยืดหยุ่นในการส่งผ่านทางอีเมลหรือวางลงในการแชร์ไฟล์เพื่ออ่านในภายหลัง

ในบล็อกนี้ ฉันจะแสดงวิธีใช้ Microsoft Graph PowerShell เพื่อสร้างรายงานการใช้งานกล่องจดหมาย Exchange Online จาก Microsoft 365

ความต้องการ

  • คุณต้องติดตั้งโมดูล Microsoft Graph PowerShell ล่าสุด ดูวิธีการติดตั้งโมดูล Microsoft Graph PowerShell
  • คุณต้องยินยอมตามการอนุญาตต่อไปนี้: Reports.Read.All สิ่งนี้จะต้องมีบัญชีผู้ดูแลระบบทั่วโลก

รายงานการใช้งาน Exchange Online

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

สำหรับสคริปต์ด้านล่างแต่ละตัว ให้แก้ไขตัวแปร $path เพื่อให้ตรงกับตำแหน่งที่คุณต้องการส่งออกผลลัพธ์

รายงานการใช้กล่องจดหมาย

Connect-MgGraph -scopes Reports.Read.All
$path = "C:\temp\MailboxReport.csv"
Get-MgReportMailboxUsageDetail -Period D7 -OutFile $path
$report = import-csv $path
$report.Foreach({
    $_."storage used (Byte)" = '{0:N2} MB' -f ($_."storage used (Byte)" / 1MB)
})
$report | Export-CSV -Path $path -NoTypeInformation

cmdlet รายงานการใช้งาน Microsoft Graph PowerShell ทั้งหมด

มีรายงาน Microsoft ที่เกี่ยวข้องอื่น ๆ อีกมากมายที่คุณสามารถสร้างได้โดยใช้ PowerShell ซึ่งบางรายงานมีประโยชน์ตามระยะเวลาการใช้งานและบางรายงานก็ยังไม่มี ด้านล่างนี้คือรายการ cmdlet ของรายงานการใช้งานทั้งหมดที่แบ่งออกเป็นส่วนๆ

พิมพ์
Get-MgReportDailyPrintUsageByPrinter
Get-MgReportDailyPrintUsageByPrinterCount
Get-MgReportDailyPrintUsageByUser
Get-MgReportDailyPrintUsageByUserCount
Get-MgReportMonthlyPrintUsageByPrinter
Get-MgReportMon thlyPrintUsageByPrinterCount
รับ-MgReportMonthlyPrintUsageByUser
รับ-MgReportMonthlyPrintUsageByUserCount

จดหมาย
Get-MgReportEmailAppUsageAppUserCount
Get-MgReportEmailAppUsageUserCount
Get-MgReportEmailAppUsageUserDetail
Get-MgReportEmailAppUsageUserCount
Get-MgReportMailboxUsageDetail
Get-MgReportMailboxUsageMailbox นับ
รับ-MgReportMailboxUsageQuotaStatusMailboxCount
รับ-MgReportMailboxUsageStorage

OneDrive
รับ-MgReportOneDriveUsageAccountCount
รับ-MgReportOneDriveUsageAccountDetail
รับ-MgReportOneDriveUsageFileCount
รับ-MgReportOneDriveUsageStorage

SharePoint
Get-MgReportSharePointSiteUsageDetail
Get-MgReportSharePointSiteUsageFileCount
Get-MgReportSharePointSiteUsagePage
Get-MgReportSharePointSiteUsageSiteCount
Get-MgReportSharePointSiteUsageStorage

อุปกรณ์ของทีม
Get-MgReportSkypeForBusinessDeviceUsageDistributionUserCount
Get-MgReportSkypeForBusinessDeviceUsageUserCount
Get-MgReportSkypeForBusinessDeviceUsageUserDetail
Get-MgReportTeamDeviceUsageDistributionUserCount
Get-MgReportTeamDeviceUsageUserCount
รับ- MgReportTeamDeviceUsageUserDetail

Yammer
รับ-MgReportYammerDeviceUsageDistributionUserCount
รับ-MgReportYammerDeviceUsageUserCount

ระยะเวลาการรายงาน

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

  • D7
  • D30
  • D90
  • D180

จัดทำรายงานอัตโนมัติทางอีเมล

แต่ละรายงานสามารถส่งโดยอัตโนมัติทางอีเมลไปยังกล่องจดหมายของผู้ใช้ กลุ่ม หรือกล่องจดหมายที่ใช้ร่วมกัน เพื่อให้บรรลุเป้าหมายนี้ สามารถส่งอีเมลได้โดยใช้ Microsoft Graph และอัตโนมัติโดยใช้ Microsoft Graph PowerShell นี่คือตัวอย่างโค้ดที่ฉันใช้ในการส่งอีเมลโดยใช้ Microsoft Graph PowerShell:

(Send-MgUserMail cmdlet นี้พบได้ในโมดูล Microsoft.Graph.Users.Actions และจำเป็นต้องได้รับความยินยอมจาก mail.send )

$Attachment = %filepath%
$MailAttachement = [Convert]::ToBase64String([IO.File]::ReadAllBytes($Attachment))

$body = @{
	message = @{
		subject = "Org Mailbox Report"
		body = @{
			contentType = "Text"
			content = "Please see the attached"
		}
		toRecipients = @(
			@{
				emailAddress = @{
					address = "%TO ADDRESS%"
				}
			}
		)
        attachments = @(
			@{
				"@odata.type" = "#microsoft.graph.fileAttachment"
				name = "$Attachment"
				contentType = "text/plain"
				contentBytes = $MailAttachement
			}
        )
	}
	saveToSentItems = "false"
}

Send-MgUserMail -UserId $from -BodyParameter $body

กระบวนการนี้สามารถเป็นแบบอัตโนมัติได้โดยใช้ Azure Automation เพื่อให้แน่ใจว่ากระบวนการทำงานอย่างปลอดภัยและไม่ได้มาจากเซิร์ฟเวอร์จริงหรือเสมือน กระบวนการนี้ฉันได้กล่าวถึงโดยละเอียดในบล็อกของฉัน วิธีเรียกใช้สคริปต์ Microsoft Graph PowerShell ด้วย Azure Automation

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