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

กราฟเชิงปฏิบัติ: การมอบหมายใบอนุญาตจำนวนมาก


การมอบหมายใบอนุญาตให้กับผู้ใช้จำนวนมาก

ความคิดเห็นของผู้อ่านสำหรับบทความที่ครอบคลุมถึงวิธีมอบหมายใบอนุญาตให้กับบัญชีผู้ใช้ด้วย Microsoft Graph PowerShell SDK ขอตัวอย่างที่แสดงวิธีอ่านบัญชีจาก CSV และมอบหมายใบอนุญาตให้กับบัญชีเหล่านั้น กล่าวอีกนัยหนึ่งคือวิธีใช้ PowerShell เพื่อมอบหมายใบอนุญาตจำนวนมากให้กับบัญชีผู้ใช้เป้าหมาย เป็นสิ่งที่ผู้คนทำเมื่อแนะนำผลิตภัณฑ์ใหม่แก่ผู้เช่า

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

ค้นหาบัญชีผู้ใช้เพื่อดำเนินการ

ตามแนวคิดแล้ว ขั้นตอนการประมวลผลนั้นเรียบง่าย ขั้นตอนแรกคือการนำเข้ารายละเอียดของบัญชีผู้ใช้เป้าหมายจากไฟล์ CSV หรือคุณสามารถใช้กลไกอื่นเพื่อสร้างชุดบัญชีเป้าหมายได้ กลไกที่เหมาะสมได้แก่:

  • การเป็นสมาชิกของกลุ่ม Microsoft 365 (รวมถึงกลุ่มไดนามิก) คุณต้องกรองการเป็นสมาชิกกลุ่มเพื่อลบบัญชีผู้เยี่ยมชม
  • การเป็นสมาชิกของรายชื่อการแจกจ่าย (รวมถึงรายชื่อการแจกจ่ายแบบไดนามิก) รายชื่อการแจกจ่ายสามารถรวมออบเจ็กต์ที่ไม่สามารถกำหนดเป้าหมายสำหรับการมอบหมายใบอนุญาตได้ เช่น โฟลเดอร์สาธารณะหรือผู้ใช้เมล ดังนั้นการกรองบางอย่างจึงมีความจำเป็น
  • การเป็นสมาชิกของหน่วยบริหาร Entra ID
  • พบบัญชีผู้ใช้ได้โดยการใช้ตัวกรองกับ Get-MgUser cmdlet

ตัวอย่างเช่น คุณสามารถค้นหาชุดบัญชีเป้าหมายได้โดยการค้นหาบัญชีทั้งหมดที่อยู่ในบางประเทศ:

[array]$Users = Get-MgUser -All -Filter "country eq 'United States'"

แน่นอนว่า การใช้ตัวกรองเพื่อค้นหาบัญชีผู้ใช้จะทำงานได้ก็ต่อเมื่อคุณสมบัติของบัญชีมีข้อมูลที่ถูกต้องเท่านั้น

การสร้างอาร์เรย์ผู้ใช้เป้าหมายสำหรับการมอบหมายใบอนุญาตจำนวนมาก

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

สำหรับตัวอย่างนี้ เนื่องจากมีผู้คนจำนวนมากใช้ไฟล์ CSV เพื่อชี้ไปยังบัญชีเป้าหมาย นั่นคือสิ่งที่ฉันทำในสคริปต์ตัวอย่าง:

$InputFile = "c:\temp\Users.csv"
[array]$Users = Import-CSV $InputFile

ข้อมูลที่อยู่ในอาร์เรย์ $Users จะเก็บชื่อผู้ใช้หลักและชื่อที่แสดงของบัญชีที่เราต้องการมอบหมายใบอนุญาตให้กับ:

UPN                                DisplayName
---                                -----------
Lotte.Vetler@office365itpros.com   Lotte Vetler
Hans.Flick@office365itpros.com     Otto Flick
James.Ryan@office365itpros.com     James Ryan
Hans.Geering@office365itpros.com   Hans Geering
Joe.Sop@contoso.com                Joe Sop
Ben.James@office365itpros.com      Ben James
Brian.Weakliam@office365itpros.com Brian Weakliam

การกำหนดใบอนุญาตให้กับบัญชีผู้ใช้แต่ละบัญชี

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

เพื่ออธิบายสิ่งที่ฉันหมายถึง ให้ตรวจสอบการประมวลผลที่แสดงในรูปที่ 1

สคริปต์:

  • ค้นหาผลิตภัณฑ์ที่สมัครเป็นสมาชิก (SKU) ที่ผู้เช่ารู้จัก และเลือก SKU ที่ยังคงมีใบอนุญาตบางส่วนอยู่
  • นำเสนอรายการ SKU ให้กับผู้ใช้เพื่อให้พวกเขาเลือกใบอนุญาตที่จะมอบหมายให้กับผู้ใช้เป้าหมาย
  • ตรวจสอบว่ามีใบอนุญาตเพียงพอที่จะมอบหมายให้กับผู้ใช้เป้าหมายทั้งหมด
  • ตรวจสอบว่าผู้ใช้เป้าหมายแต่ละรายไม่มีใบอนุญาตในชุดที่ได้รับมอบหมาย
  • หากไม่มีใบอนุญาตสำหรับผู้ใช้ ให้ลองมอบหมายใบอนุญาตให้กับบัญชี (หมายเหตุ: หากผู้เช่าของคุณใช้หน่วยการดูแลระบบแบบจำกัด เฉพาะบัญชีที่มีบทบาทผู้ดูแลระบบสำหรับหน่วยการดูแลระบบเท่านั้นที่สามารถมอบหมายใบอนุญาตให้กับบัญชีสมาชิกได้)
  • รวบรวมรายละเอียดของความสำเร็จหรือความล้มเหลวของการกำหนดใบอนุญาตและบันทึกข้อมูลในรายการออบเจ็กต์ (รูปที่ 2)
  • รายงานรายละเอียดของการประมวลผล รวมถึงจำนวนการมอบหมายใบอนุญาตที่สำเร็จและล้มเหลวที่เกิดขึ้น

Microsoft 365 Kill Chain และการจัดการเส้นทางการโจมตี

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

การปรับปรุงเพิ่มเติมที่เป็นไปได้

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

  • การกำหนด SKU ผลิตภัณฑ์หลายรายการในคราวเดียว
  • ปิดใช้งานแผนบริการที่องค์กรไม่ต้องการให้ผู้ใช้ใช้จาก SKU ของผลิตภัณฑ์ ตัวอย่างเช่น องค์กรอาจตัดสินใจว่าไม่จำเป็นต้องใช้ Viva Engage (Yammer) ดังนั้นจึงปิดใช้งานแผนบริการ Viva Engage Core ใน SKU เช่น Office 365 E3 และ E5 เป็นไปได้ แต่หากคุณปิดใช้งาน Viva Engage คุณจะสูญเสียฟังก์ชันการทำงานบางอย่างของ Teams เช่น แอปถามตอบในการประชุม
  • แบ่งปันผลลัพธ์ของการประมวลผลการมอบหมายใบอนุญาตกับบุคคลอื่นผ่านทางอีเมลหรือทีม

โปรดแก้ไขสคริปต์ที่ฉันเขียน (สามารถดาวน์โหลดได้จาก GitHub) เพื่อเพิ่มแนวคิดของคุณ ฉันอาจไม่เห็นด้วยกับข้อเสนอแนะของคุณ แต่อย่างน้อยเราก็สามารถพูดคุยกันได้

การมอบหมายใบอนุญาตจำนวนมากทำให้คุณเป็นแบบอัตโนมัติ

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

หากคุณเข้าร่วมการประชุมผู้เชี่ยวชาญในแอตแลนตา (19-20 กันยายน 2023) อย่าลืมมาที่ Great PowerShell Script-Off เพื่อสนุกสนานและสนับสนุนผู้เข้าแข่งขันในขณะที่พวกเขาต่อสู้กับความท้าทายที่เราเตรียมไว้ให้พวกเขา ความท้าทายทั้งหมดเป็นงานระบบอัตโนมัติของผู้เช่า Microsoft 365 ทั่วไป ดังนั้นคุณอาจได้เรียนรู้บางอย่างด้วยเช่นกัน!

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