การรายงานและการจัดการสิทธิ์การใช้งาน Office 365 โดยใช้ PowerShell
ผู้ดูแลระบบ Microsoft 365 จำเป็นต้องจัดการผู้ใช้และสิทธิ์การใช้งานอย่างมีประสิทธิภาพเพื่อลดต้นทุนสิทธิ์การใช้งาน นอกจากนี้ จำเป็นต้องเข้าใจข้อกำหนดของผู้ใช้ก่อนที่จะมอบหมายใบอนุญาต และระบุใบอนุญาตที่ไม่ได้ใช้เพื่อเพิ่มประสิทธิภาพการจัดการใบอนุญาต
การอัปเดตปี 2022: โมดูล MSOnline และ AzureAD PowerShell กำลังจะเลิกใช้งานในปี 2022
บล็อกนี้ใช้โมดูล MSOnline เพื่อจัดการและสร้างรายงานเกี่ยวกับใบอนุญาต Office 365 เนื่องจากโมดูลกำลังจะเลิกใช้งานเร็วกว่านี้ เราจึงได้พัฒนาสคริปต์ใหม่เพื่อจัดการสิทธิ์การใช้งาน Office 365 โดยใช้ MS Graph PowerShell คุณสามารถดาวน์โหลดสคริปต์ได้จากบล็อกของเรา: จัดการสิทธิ์การใช้งาน Microsoft 365 โดยใช้ MS Graph
หากคุณเป็นองค์กรขนาดเล็ก คุณสามารถใช้ศูนย์การจัดการ Microsoft 365 เพื่อมอบหมายและตรวจสอบสิทธิ์การใช้งานได้ แต่ศูนย์การจัดการไม่สามารถทำได้สำหรับองค์กรขนาดใหญ่ ในกรณีนี้ คุณสามารถใช้ PowerShell cmdlets เพื่อจัดการใบอนุญาตได้ แต่หากคุณยังใหม่กับ PowerShell การมอบหมายหรือลบใบอนุญาตจำนวนมากและสร้างรายงานใบอนุญาตอาจเป็นเรื่องท้าทาย
เพื่อเอาชนะความยากลำบาก เราได้สร้างสคริปต์ All-in-OnePowerShell สำหรับการจัดการใบอนุญาต M365 ใช่! สคริปต์เดียวสามารถทำกิจกรรมการจัดการใบอนุญาตและการรายงาน Office 365 ได้มากกว่า 10 รายการ
ดาวน์โหลดสคริปต์: O365LicenseReportingAndManagement.ps1
จุดเด่นของสคริปต์:
- สร้างรายงานใบอนุญาต Office 365 5
- อนุญาตให้ดำเนินการ 6การจัดการใบอนุญาตซึ่งรวมถึงการเพิ่มหรือลบใบอนุญาตจำนวนมาก
- ชื่อใบอนุญาตจะแสดงด้วยชื่อที่เรียกง่าย เช่น 'Office 365 Enterprise E3' แทนที่จะเป็น 'ENTERPRISEPACK'
- สคริปต์สามารถดำเนินการได้ด้วยบัญชีที่เปิดใช้งาน MFA เช่นกัน
- ส่งออกผลลัพธ์ของรายงานเป็น CSV
- ส่งออกการมอบหมายใบอนุญาตและการลบไฟล์บันทึก
- สคริปต์นี้เป็นมิตรกับตัวกำหนดเวลา กล่าวคือ คุณสามารถส่งข้อมูลรับรองเป็นพารามิเตอร์ แทนที่จะบันทึกไว้ในสคริปต์
การรายงานและการจัดการสิทธิ์การใช้งาน Office 365 โดยใช้สคริปต์ PowerShell:
ตามที่กล่าวไว้ก่อนหน้านี้ คุณสามารถใช้สคริปต์นี้เพื่อสร้างรายงานใบอนุญาตต่างๆ และดำเนินการจัดการใบอนุญาตได้ เราได้แสดงการดำเนินการที่สำคัญบางประการไว้ที่นี่
การรายงานใบอนุญาต Office 365
- รับรายงานผู้ใช้ที่ได้รับอนุญาตทั้งหมด
- รับรายงานผู้ใช้ที่ไม่มีใบอนุญาตทั้งหมด
- รับผู้ใช้ที่มีประเภทใบอนุญาตเฉพาะ
- ค้นหาผู้ใช้ที่ถูกปิดใช้งานทั้งหมดที่มีใบอนุญาต
- รายงานการใช้สิทธิ์การใช้งาน Office 365
การจัดการสิทธิ์การใช้งาน Office 365
- จำนวนมาก: มอบหมายใบอนุญาตให้กับผู้ใช้ (อินพุต CSV)
- จำนวนมาก: มอบหมายใบอนุญาตหลายใบให้กับผู้ใช้ (อินพุต CSV)
- ลบใบอนุญาตออกจากผู้ใช้
- เป็นกลุ่ม: ลบใบอนุญาตทั้งหมดออกจากผู้ใช้ (อินพุต CSV)
- ลบใบอนุญาตเฉพาะออกจากผู้ใช้ทั้งหมด
- ลบใบอนุญาตทั้งหมดออกจากผู้ใช้ที่ถูกปิดใช้งาน
เครื่องมือการรายงานและการจัดการสิทธิ์การใช้งาน Office 365 - วิธีการดำเนินการ:
หากต้องการเรียกใช้สคริปต์นี้ คุณสามารถเลือกวิธีใดวิธีหนึ่งด้านล่างนี้
วิธีที่ 1: ดำเนินการสคริปต์ด้วยบัญชี MFA และที่ไม่ใช่ MFA
.\O365LicenseReportingAndManagement.ps1วิธีที่ 2: รันสคริปต์โดยระบุข้อมูลรับรองอย่างชัดเจนและ "การดำเนินการ" ที่จำเป็น
.\O365LicenseReportingAndManagement.ps1 -UserName admin@contsoso.com -Password XXX -Action 1คุณสามารถใช้รูปแบบด้านบนเพื่อสร้างรายงานโดยอัตโนมัติ หากบัญชีผู้ดูแลระบบมี MFA คุณจะต้องปิดการใช้งาน MFA ตามนโยบายการเข้าถึงแบบมีเงื่อนไขเพื่อให้สามารถใช้งานได้
วิธีที่ 3: หากต้องการดำเนินการหลายอย่างโดยไม่ต้องรันสคริปต์หลายครั้ง คุณสามารถใช้พารามิเตอร์ -MultipleActionsMode param ได้
.\O365LicenseReportingAndManagement.ps1 -MultipleActionsModeมันจะแสดงเมนูหลักจนกว่าคุณจะยุติสคริปต์โดยระบุอินพุตเป็น 0
ปลดล็อกศักยภาพทั้งหมดของสคริปต์นี้
สคริปต์รองรับพารามิเตอร์ในตัวต่อไปนี้เพื่อช่วยให้การจัดการใบอนุญาต Office 365 และความต้องการการรายงานของคุณง่ายขึ้น
1.การกระทำ - เพื่อระบุการดำเนินการการรายงานหรือการจัดการโดยตรง แทนที่จะเลือกจากเมนูหลัก
2.LicenseName - เพื่อให้ผู้ใช้มีแผนใบอนุญาตเฉพาะ
3.ชื่อผู้ใช้และรหัสผ่าน - เพื่อกำหนดเวลาสคริปต์ PowerShell โดยไม่ต้องเข้าสู่ระบบแบบโต้ตอบ
4.MultipleActionsMode - เพื่อแสดงเมนูหลักอีกครั้งหลังจากดำเนินการเสร็จสิ้น มันจะช่วยให้คุณดำเนินการหลายๆ อย่างได้อย่างต่อเนื่องโดยไม่ต้องรันสคริปต์ซ้ำแล้วซ้ำอีก
ส่งออกผู้ใช้ที่ได้รับใบอนุญาตทั้งหมดใน Office 365:
หากต้องการรับรายชื่อผู้ใช้ที่ได้รับใบอนุญาตในองค์กรของคุณ ให้เรียกใช้สคริปต์ดังต่อไปนี้หรือเลือกการดำเนินการที่จำเป็นจากเมนูหลัก
.\O365LicenseReportingAndManagement.ps1 -Action 1เมื่อใช้รายงานนี้ คุณสามารถค้นหาผู้ใช้ที่ได้รับใบอนุญาตและใบอนุญาตที่ได้รับมอบหมาย ชื่อที่เป็นมิตรกับใบอนุญาต สถานะบัญชี ฯลฯ
ผลลัพธ์ตัวอย่าง:
หมายเหตุ: คุณสามารถอ้างอิงบล็อกก่อนหน้าของเราเพื่อรับรายงานใบอนุญาตโดยละเอียดพร้อมบริการที่ได้รับมอบหมายและสถานะ
รับผู้ใช้ที่ไม่มีใบอนุญาตใน Office 365 โดยใช้ PowerShell:
หากต้องการดูผู้ใช้ที่ไม่มีใบอนุญาตทั้งหมดในองค์กรของคุณ ให้เรียกใช้โค้ดด้านล่างโดยตรงหรือเลือกตัวเลือกที่ต้องการจากเมนู
.\O365LicenseReportingAndManagement.ps1 -Action 2จากรายงานนี้ ผู้ดูแลระบบสามารถระบุผู้ใช้ที่ไม่มีแผนใบอนุญาตใดๆ และมอบหมายใบอนุญาตให้พวกเขาได้ หากจำเป็น
ผลลัพธ์ตัวอย่าง:
ส่งออกรายชื่อผู้ใช้ที่มีประเภทใบอนุญาตเฉพาะ:
หากต้องการรับผู้ใช้ Office 365 ที่มีแผนใบอนุญาตเฉพาะ ให้เรียกใช้สคริปต์ดังนี้
.\O365LicenseReportingAndManagement.ps1 -Action 3มันจะขอแผนใบอนุญาต หลังจากเข้าสู่แผนใบอนุญาต สคริปต์จะแสดงรายการผู้ใช้ที่ได้รับใบอนุญาตที่ตรงกับใบอนุญาตนั้น
เช่น หากต้องการดูรายชื่อผู้ใช้ที่มีใบอนุญาต E3 ให้ป้อน “Contoso:EnterprisePack ” เมื่อสคริปต์แจ้งให้ระบุชื่อใบอนุญาต
คุณยังสามารถส่ง License Plan เป็นพารามิเตอร์ตามที่แสดงด้านล่าง
.\O365LicenseReportingAndManagement.ps1 -Action 3 -LicenseName Contoso:EnterprisePackผลลัพธ์ตัวอย่าง:
ผลลัพธ์ตัวอย่างแสดงรายการผู้ใช้ทั้งหมดที่มีสิทธิ์การใช้งาน E3
รับผู้ใช้ที่พิการ ยังคงได้รับใบอนุญาตใน Office 365:
โดยทั่วไป บัญชีของอดีตพนักงานจะถูกปิดใช้งานหลังจากที่ออกจากสำนักงาน ในบางสถานการณ์ คุณอาจต้องการกู้คืนสิทธิ์การใช้งาน Office 365 จากผู้ใช้ที่จากไป เพื่อให้คุณสามารถมอบหมายให้กับผู้ใช้รายอื่นได้ หากต้องการค้นหาผู้ใช้ที่มีสิทธิ์การใช้งานที่ถูกปิดใช้งาน ให้รันสคริปต์ดังต่อไปนี้
.\O365LicenseReportingAndManagement.ps1 -Action 4รายงานที่ส่งออกประกอบด้วย UPN, ชื่อที่แสดง, แผนใบอนุญาต, ชื่อที่จำง่ายของแผนใบอนุญาต, แผนก และตำแหน่งงาน
ผลลัพธ์ตัวอย่าง:
รายงานการใช้สิทธิ์การใช้งาน Office 365:
รายงานการใช้สิทธิ์การใช้งาน Office 365 แสดงรายการการสมัครใช้งานทั้งหมดที่มีอยู่ในองค์กรของคุณ พร้อมด้วยจำนวนสิทธิ์การใช้งานที่ใช้งานอยู่และจำนวนสิทธิ์การใช้งานที่ได้รับมอบหมาย จากรายงานนี้ คุณสามารถคำนวณจำนวนใบอนุญาตที่ยังไม่ได้มอบหมายได้
หากต้องการสร้างรายงานการใช้ใบอนุญาต ให้รันสคริปต์และเลือกการดำเนินการที่ต้องการจากเมนู มิฉะนั้นให้รันโค้ดด้านล่างโดยตรง
.\O365LicenseReportingAndManagement.ps1 -Action 5ผลลัพธ์ตัวอย่าง:
มอบหมายใบอนุญาต Office 365 จำนวนมากโดยใช้ PowerShell:
ผู้ใช้ต้องมีสิทธิ์การใช้งาน Office 365 เพื่อใช้บริการ Microsoft 365 ใดๆ ผู้ดูแลระบบสามารถมอบหมายใบอนุญาตจำนวนมากได้โดยใช้สคริปต์ PowerShell ของเรา เราได้ครอบคลุมกรณีการใช้งานที่ได้รับการร้องขอมากที่สุดด้านล่าง
มอบหมายใบอนุญาตให้กับผู้ใช้จาก CSV:
หากต้องการมอบหมายใบอนุญาต Office 365 ให้กับผู้ใช้หลายรายโดยใช้ไฟล์ CSV ให้เรียกใช้สคริปต์ PowerShell ดังนี้
.\O365LicenseReportingAndManagement.ps1 -Action 6สคริปต์จะถามชื่อใบอนุญาตและเส้นทางไฟล์ CSV เราได้ยกตัวอย่างสำหรับรายละเอียดอินพุตด้านล่าง
รูปแบบไฟล์อินพุต:
ไฟล์ CSV/txt อินพุตจะต้องอยู่ในรูปแบบด้านล่าง: UPN ของผู้ใช้โดยคั่นด้วยบรรทัดใหม่โดยไม่มีส่วนหัว
ไฟล์บันทึกเอาต์พุต- ตัวอย่าง
หลังจากดำเนินการสคริปต์ คุณสามารถอ้างถึงไฟล์ 'Office365_License_Assignment_Log' เพื่อทราบเกี่ยวกับผลการโอนสิทธิ์การใช้งาน
มอบหมายใบอนุญาตหลายรายการให้กับรายชื่อผู้ใช้:
หากต้องการมอบหมายใบอนุญาตหลายรายการให้กับผู้ใช้ Microsoft 365 ให้รันสคริปต์ตามที่แสดงด้านล่าง
.\O365LicenseReportingAndManagement.ps1 -Action 7ระบบจะถามตำแหน่งไฟล์ CSV และใบอนุญาตที่จะมอบหมาย คุณสามารถป้อนชื่อใบอนุญาตในรูปแบบต่อไปนี้- contoso:EnterprisePack,contoso:Flow_Free
เช่น
ตั้งค่าตำแหน่งการใช้งานใน Office 365
ก่อนที่จะมอบหมายใบอนุญาตให้กับผู้ใช้ได้ ผู้ใช้จะต้องมี "ตำแหน่งการใช้งาน" ก่อน มิฉะนั้น คุณจะได้รับข้อผิดพลาด "ไม่สามารถกำหนดใบอนุญาตให้กับผู้ใช้ได้หากไม่มีการระบุตำแหน่งการใช้งาน" ในการตั้งค่าตำแหน่งการใช้งานสำหรับผู้ใช้ Office 365 เราได้ให้พารามิเตอร์ 'LicenseUsageLocation'
ขณะเรียกใช้กรณีการใช้งานการมอบหมายใบอนุญาต คุณสามารถระบุพารามิเตอร์ 'LicenseUsageLocation' เพื่อตั้งค่าตำแหน่งการใช้งานให้กับผู้ใช้ที่มีค่าตำแหน่งการใช้งานว่างเปล่า
ตัวอย่างเช่น,
.\O365LicenseReportingAndManagement.ps1 -Action 7 -LicenseUsageLocation USหรือ
.\O365LicenseReportingAndManagement.ps1 -LicenseUsageLocation USยกเลิกการมอบหมายใบอนุญาตจากผู้ใช้ Office 365 โดยใช้ PowerShell:
การระบุและการเรียกคืนใบอนุญาตที่ไม่ได้ใช้จะช่วยเพิ่มประสิทธิภาพการใช้ใบอนุญาตและลดต้นทุนใบอนุญาต เราได้ครอบคลุมเทคนิคการลบใบอนุญาตที่ได้รับการร้องขอมากที่สุดด้านล่าง
ลบใบอนุญาตทั้งหมดออกจากผู้ใช้:
เมื่อผู้ใช้ไม่ต้องการใบอนุญาตอีกต่อไปหรือออกจากองค์กร คุณจะนำใบอนุญาตที่มอบหมายทั้งหมดออกจากผู้ใช้รายนั้นได้ เมื่อใช้รูปแบบด้านล่าง คุณจะนำใบอนุญาตทั้งหมดออกจากบัญชีผู้ใช้ได้
.\O365LicenseReportingAndManagement.ps1 -Action 8หลังจากเรียกใช้รูปแบบข้างต้น สคริปต์จะขอให้ป้อนข้อมูลประจำตัวของผู้ใช้เพื่อยกเลิกการมอบหมายใบอนุญาต คุณระบุ UserPrincipalName เป็นข้อมูลระบุตัวตนได้
ลบสิทธิ์การใช้งาน Office 365 ทั้งหมดสำหรับรายชื่อผู้ใช้ในรูปแบบ CSV:
เมื่อคุณต้องการรับใบอนุญาตคืนจากอดีตพนักงานและผู้ใช้ที่ไม่ได้ใช้งาน คุณสามารถยกเลิกการมอบหมายใบอนุญาตจำนวนมากได้โดยการรันสคริปต์ของเราในรูปแบบด้านล่าง
.\O365LicenseReportingAndManagement.ps1 -Action 9สคริปต์จะแจ้งให้ป้อน CSV หลังจากป้อนเส้นทางของไฟล์ สคริปต์จะลบใบอนุญาตออกจากบัญชีผู้ใช้ที่กล่าวถึงใน CSV อินพุต หลังจากดำเนินการ คุณสามารถอ้างอิงไฟล์ “Office365_License_Removal_Log ” เพื่อทราบเกี่ยวกับสถานะการลบใบอนุญาต
ลบใบอนุญาตเฉพาะออกจากผู้ใช้ทั้งหมด:
คุณสามารถเลือกกรณีการใช้งานนี้ได้ในสถานการณ์ต่อไปนี้
- เมื่อคุณต้องการย้ายจากแผนใบอนุญาตหนึ่งไปยังแผนใบอนุญาตอื่น เช่น E3 ถึง E5
- เมื่อคุณไม่ได้ใช้แผนใบอนุญาตเฉพาะอีกต่อไป
หากต้องการลบใบอนุญาตเฉพาะออกจากผู้ใช้ทั้งหมด
.\O365LicenseReportingAndManagement.ps1 -Action 10หลังจากเรียกใช้รูปแบบข้างต้น สคริปต์จะขอให้ลบแผนใบอนุญาตออก จากนั้นจึงดำเนินการลบใบอนุญาตต่อไป ในตอนท้าย คุณสามารถอ้างอิงถึงสถานะไฟล์บันทึกการตรวจสอบการลบใบอนุญาตได้
ลบใบอนุญาตออกจากผู้ใช้ที่ถูกปิดการใช้งาน:
องค์กรส่วนใหญ่ปิดใช้งานบัญชีผู้ใช้ที่ออกจากระบบแทนที่จะลบออก หากต้องการควบคุมต้นทุนและรับใบอนุญาตที่ไม่ได้ใช้ คุณสามารถลบใบอนุญาตออกจากผู้ใช้ที่ถูกปิดใช้งานได้
หากต้องการลบใบอนุญาตทั้งหมดออกจากผู้ใช้ที่ถูกปิดใช้งานทั้งหมด ให้รันสคริปต์ดังนี้
.\O365LicenseReportingAndManagement.ps1 -Action 11คุณสามารถดูไฟล์บันทึกเพื่อทราบรายชื่อผู้ใช้ที่ถูกปิดใช้งานและใบอนุญาตที่ยังไม่ได้มอบหมาย
กำหนดเวลารายงานใบอนุญาต Office 365:
แทนที่จะเรียกใช้สคริปต์ด้วยตนเอง คุณสามารถใช้ Windows Task Scheduler เพื่อเรียกใช้สคริปต์โดยอัตโนมัติในเวลาที่กำหนดไว้ล่วงหน้า
หากต้องการเรียกใช้สคริปต์ตามงาน PowerShell ที่กำหนดเวลาไว้ ให้ทำตามรูปแบบด้านล่าง
.\O365LicenseReportingAndManagement.ps1 -Action 1 -UserName admin@contoso.com -Password XXหากบัญชีผู้ดูแลระบบมี MFA คุณจะต้องปิดการใช้งาน MFA ตามนโยบายการเข้าถึงแบบมีเงื่อนไขเพื่อให้ใช้งานได้
จะรับรายงานสิทธิ์การใช้งาน Office 365 ด้วยวิธีง่ายๆ ได้อย่างไร
หากคุณเบื่อกับการเรียกใช้ PowerShell cmdlets หรือสคริปต์ คุณสามารถลองใช้เครื่องมือการรายงานของ Office 365 ของ AdminDroid เครื่องมือนี้มอบรายงานใบอนุญาตมากกว่า 20 รายการ โดยไม่มีค่าใช้จ่าย เพื่อจัดการความต้องการใบอนุญาตขององค์กรของคุณอย่างมีประสิทธิภาพ
นอกจากนี้ AdminDroid ยังมีรายงานมากกว่า 100+ รายการและแดชบอร์ดจำนวนหนึ่ง โดยสมบูรณ์ฟรี ประกอบด้วยรายงานเกี่ยวกับผู้ใช้ ใบอนุญาต กลุ่ม สมาชิกกลุ่ม อุปกรณ์ กิจกรรมการเข้าสู่ระบบ การเปลี่ยนแปลงรหัสผ่าน การเปลี่ยนแปลงใบอนุญาต และอื่นๆ เวอร์ชันฟรีช่วยให้คุณปรับแต่ง กำหนดเวลา และส่งออกได้เช่นกัน ดาวน์โหลดเครื่องมือการรายงาน Office 365 ฟรีโดย AdminDroid และดูว่าเครื่องมือนี้ช่วยคุณได้อย่างไร
รายงานแต่ละฉบับมีการวิเคราะห์กราฟิกที่ขับเคลื่อนด้วย AI เพื่อรับข้อมูลเชิงลึกและทำความเข้าใจข้อมูลในลักษณะที่ดึงดูดสายตา
นอกจากนี้ เครื่องมือการรายงานของ AdminDroid Microsoft 365 ยังมีรายงานกว่า 1,500 รายการ เพื่อรับรายงานโดยละเอียดเกี่ยวกับบริการต่างๆ ของ Office 365 เช่น Azure AD, Exchange Online, SharePoint Online, Microsoft Teams, OneDrive for Business, Streams, One Note, Yammer ฯลฯ
ฉันหวังว่าบล็อกนี้จะช่วยคุณในการจัดการใบอนุญาต Office 365 และสร้างรายงานใบอนุญาต คุณสามารถแบ่งปันเทคนิคการจัดการใบอนุญาตของคุณกับผู้ดูแลระบบคนอื่นและเราผ่านส่วนความคิดเห็น











