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

ใช้ PowerShell เพื่อสร้างรายงานเกี่ยวกับนโยบายของทีมที่กำหนดให้กับบัญชีผู้ใช้


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

ฉันคิดว่ามีเหตุผลหลายประการที่ทำให้ Microsoft ใช้แนวทางนี้กับคอนโซลผู้ดูแลระบบ ขั้นแรก ข้อมูลหน้าคอนโซลสำหรับการแสดงผล เมื่อคุณย้ายไปที่ด้านล่างของรายการ จะมีข้อมูลเพิ่มเติมปรากฏขึ้นจนกว่าจะมีชุดที่สมบูรณ์ (ฉันไม่เคยลองสิ่งนี้กับผู้เช่าที่มีผู้ใช้ 50,000 คน แต่นั่นคือทฤษฎี) การใช้งานนี้สอดคล้องกับวิธีที่ Graph API ดึงข้อมูล ในผู้เช่ารายใหญ่ การเพจจะทำงานได้ดีกว่าการที่คุณถูกบังคับให้รอให้ข้อมูลทั้งหมดพร้อมใช้งาน ประการที่สอง ความพยายามทางวิศวกรรมในการปรับใช้และสนับสนุนตัวเลือกการพิมพ์ในคอนโซลผู้ดูแลระบบทั้งหมดอาจเป็นต้นทุนที่ Microsoft ต้องการหลีกเลี่ยง ประการที่สาม ตัวเลือกการส่งออกช่วยให้ผู้เช่าดาวน์โหลดข้อมูลและจัดรูปแบบตามความต้องการของตนเอง (ทุกองค์กรมีรูปแบบของตนเอง) สุดท้าย การเข้าถึงข้อมูลโดยทางโปรแกรมมักจะทำได้ผ่าน PowerShell หรือ Graph API โดยรวมแล้ว เป็นการยากที่จะบ่นมากเกินไปเกี่ยวกับการขาดการสนับสนุนการพิมพ์ในคอนโซลผู้ดูแลระบบ Microsoft 365

นโยบายของทีม

ซึ่งนำฉันมาสู่ Teams อย่างเรียบร้อยและคำขอเพื่อสร้างรายงานนโยบายที่กำหนดให้กับบัญชีผู้ใช้ ดังที่คุณทราบ Teams ชอบนโยบายเป็นพิเศษ การตรวจสอบล่าสุดเผยให้เห็นนโยบาย Teams 40 นโยบายที่แยกจากกันซึ่งสามารถกำหนดให้กับบัญชีได้ (มีนโยบาย 16 นโยบายให้แก้ไขผ่านศูนย์การจัดการ Teams) เว้นแต่จะเกี่ยวข้องกับระบบ Teams Phone (ซึ่งใช้นโยบายจำนวนมาก) ผู้ดูแลระบบ Teams โดยเฉลี่ยอาจโต้ตอบกับชุดต่อไปนี้:

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

เมื่อคำนึงถึงนโยบายชุดนี้ เราสามารถเขียน PowerShell เพื่อสร้างรายงานการกำหนดนโยบาย Teams ได้

การเข้ารหัสรายงาน

สคริปต์รายงานตรงไปตรงมามาก

  • เชื่อมต่อกับโมดูล Microsoft Teams PowerShell เพื่อดึงข้อมูลเกี่ยวกับนโยบายที่กำหนดให้กับผู้ใช้
  • เชื่อมต่อกับโมดูล PowerShell การจัดการ Exchange Online นี่คือการเชื่อมต่อทางเลือกที่ฉันใช้เพื่อดึงข้อมูลชื่อผู้เช่าสำหรับรายงานโดยใช้ cmdlet Get-OrganizationConfig คุณยังสามารถใช้ Get-AzureADTenantDetail cmdlet จากโมดูล Azure AD ได้ด้วย
  • สำหรับผู้ใช้แต่ละราย ให้แยกการกำหนดนโยบายและอัปเดตออบเจ็กต์รายการ PowerShell ง่ายต่อการเพิ่มหรือลบการกำหนดนโยบายเพื่อปรับแต่งผลลัพธ์ หากใช้นโยบายเริ่มต้น เราจะส่งออก "ค่าเริ่มต้นของผู้เช่า" (คุณสามารถเลือกชื่ออื่นได้หากต้องการ) มิฉะนั้นสคริปต์จะแทรกชื่อของนโยบายที่กำหนด
  • เมื่อผู้ใช้ทั้งหมดได้รับการประมวลผล ให้ใช้ข้อมูลรายการและโค้ด HTML บางส่วนเพื่อสร้างไฟล์ HTML
  • สร้างไฟล์ CSV โดยใช้ข้อมูลรายงานเพื่อให้วิเคราะห์งานได้ง่าย
  • เสร็จสิ้นโดยการรายงานความสำเร็จและชื่อของไฟล์ที่สร้างขึ้น

รูปที่ 1 แสดงตัวอย่างรายงาน ดังที่คุณเห็น รายงานแสดงรายการการมอบหมายสำหรับนโยบายเป้าหมายเก้ารายการสำหรับผู้ใช้แต่ละราย

คุณสามารถดาวน์โหลดสคริปต์ได้จาก GitHub คุณสามารถแก้ไขโค้ดเพื่อให้เหมาะกับความต้องการของผู้เช่าของคุณได้ ข้อมูลพื้นฐานจะยังคงเหมือนเดิม แต่คุณอาจต้องการเพิ่มนโยบายพิเศษหรือจัดรูปแบบของรายงานให้ละเอียดยิ่งขึ้น

พลังแห่งเชลล์

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

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