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

วิธีการติดตั้งโมดูลกราฟ Microsoft ใน PowerShell


Microsoft Graph API ช่วยให้เราสามารถโต้ตอบกับบริการทั้งหมดของ Microsoft ผ่านแหล่งเดียว ในการดำเนินการนี้จาก PowerShell เรามักจะต้องติดตั้งโมดูลที่แตกต่างกันและทำการเชื่อมต่อที่แตกต่างกัน สิ่งนี้ไม่จำเป็นอีกต่อไปกับ Microsoft Graph SDK Module สำหรับ PowerShell

เราสามารถใช้ Graph API ได้แล้วด้วยความช่วยเหลือจากการโทร Invivo-Webrequests แต่นั่นไม่ใช่เรื่องง่ายที่จะใช้งาน Microsoft Graph Module ใหม่มาพร้อมกับ cmdlets มากมายเพื่อให้การโต้ตอบกับบริการง่ายขึ้นมาก

ในบทความนี้ ผมจะอธิบายวิธีการติดตั้ง Microsoft Graph Module และวิธีเชื่อมต่อโดยใช้สิทธิ์ที่แตกต่างกัน

Microsoft Graph PowerShell SDK

โมดูล Graph จริงๆ แล้วเรียกว่า Microsoft Graph PowerShell SDK และเป็น Wrapper สำหรับ Microsoft Graph API ทั้งหมด ในขณะนี้ดูเหมือนว่าจะมาแทนที่โมดูล Azure AD เท่านั้น โมดูลอื่นๆ ที่เราใช้โต้ตอบกับ Microsoft 365 ดูเหมือนจะไม่ถูกแทนที่ด้วยโมดูลในขณะนี้

ในวันที่ 30 มิถุนายน 2022 จุดสิ้นสุด Azure AD Graph จะเลิกใช้งาน ซึ่งหมายความว่าการโทรที่ทำขึ้นด้วยโมดูล Azure AD จะไม่ได้รับการตอบกลับอีกต่อไป ดังนั้น การเขียนสคริปต์ทั้งหมดของคุณที่ใช้โมดูล Azure AD ใหม่ลงในโมดูล Microsoft Graph จึงเป็นเรื่องสำคัญ

ตามที่กล่าวไว้ Microsoft Graph PowerShell SDK ช่วยให้เราสามารถโต้ตอบกับ API ทั้งหมดจาก Microsoft ซึ่งหมายความว่าเรายังสามารถใช้โมดูลเพื่อโต้ตอบกับ SharePoint, Exchange Online, Compliance และอื่นๆ ได้

ข้อดีอีกประการของโมดูลนี้คือรองรับ PowerShell 7 ขึ้นไป ตัวอย่างเช่น โมดูล Azure AD ไม่ทำงานบน PowerShell 7

การติดตั้งโมดูลกราฟ Microsoft ใน PowerShell

โมดูล Microsoft Graph SDK มีอยู่ในขณะนี้จาก 38 โมดูล เราสามารถติดตั้งได้ทั้งหมดในคราวเดียว แต่คุณอาจต้องการพิจารณาติดตั้งเฉพาะโมดูลที่คุณต้องการจริงๆ เท่านั้น

บันทึก

ตรวจสอบให้แน่ใจว่าคุณติดตั้งโมดูล Microsoft.Graph.Authentication เป็นอย่างน้อยเมื่อติดตั้งแต่ละโมดูล

คุณสามารถดูโมดูลที่มีอยู่ทั้งหมดได้ด้วยคำสั่งต่อไปนี้:

Find-Module Microsoft.Graph*

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

  1. เปิด PowerShell หรือ Windows Terminal

    - คลิกขวาที่ Start หรือกดปุ่ม Windows + X
    - เลือก Windows PowerShell หรือ Windows Terminal (ใน Win 11)

  2. ติดตั้ง SDK

    ป้อนคำสั่งต่อไปนี้ใน PowerShell เพื่อติดตั้งโมดูล:

    Install-Module Microsoft.Graph -Scope CurrentUser

  3. ยอมรับพื้นที่เก็บข้อมูลที่ไม่น่าเชื่อถือ

    พิมพ์ Y เพื่อติดตั้งจากพื้นที่เก็บข้อมูลที่ไม่น่าเชื่อถือ

  4. รอให้การติดตั้งเสร็จสิ้น

    เมื่อติดตั้งโมดูลทั้งหมด อาจใช้เวลาสองสามนาทีก่อนที่การติดตั้งจะเสร็จสมบูรณ์

หากคุณต้องการใช้เวอร์ชันเบต้าด้วย คุณจะต้องติดตั้งโมดูลเบต้าแยกต่างหาก:

Install-Module Microsoft.Graph.Beta -Scope CurrentUser

กำลังเชื่อมต่อกับ Microsoft Graph จาก PowerShell

มีสองสิ่งที่สำคัญเมื่อเชื่อมต่อกับ Microsoft Graph คุณจะต้องกำหนดขอบเขตและมี MgGraph เวอร์ชันเบต้า ตามค่าเริ่มต้น โมดูลจะใช้ API เวอร์ชันเสถียร แต่ฟีเจอร์ใหม่จะเปิดตัวครั้งแรกใน cmdlets เวอร์ชันเบต้า

ขั้นตอนที่สำคัญอีกประการหนึ่งคือ คุณจะต้องระบุขอบเขตที่คุณต้องการใช้ MgGraph ให้การเข้าถึง API ทั้งหมดจาก Microsoft ดังนั้นเมื่อคุณต้องการตัวอย่างในการส่งออกหรือดูผู้ใช้ Azure AD คุณจะต้องมีสิทธิ์ User.Read.All เท่านั้น

ค้นหาขอบเขตกราฟของ Microsoft

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

  • ไมโครซอฟต์ กราฟ เอ็กซ์พลอเรอร์
  • การอ้างอิง Microsoft Graph Rest API
  • ค้นหา MgGraphPermission cmdlet

Microsoft Graph Explorer เป็นเครื่องมือที่ยอดเยี่ยมในการทดสอบการเรียก API ไปยัง Microsoft Graph มาพร้อมกับตัวอย่างการโทรมากมายเพื่อช่วยคุณในการเริ่มต้น แต่จะแสดงรายการสิทธิ์ที่จำเป็นสำหรับการโทรด้วย

  1. เปิดตัวสำรวจกราฟ
  2. เลือกตัวอย่างแบบสอบถามทางด้านซ้าย
  3. คลิกแท็บ แก้ไขสิทธิ์

คุณจะต้องมีขอบเขตอย่างน้อยหนึ่งขอบเขตที่กล่าวถึงในแท็บสิทธิ์เมื่อเชื่อมต่อกับ MS Graph ใน PowerShell

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

ตัวเลือกสุดท้ายคือการใช้ cmdlets Find-MgGraphPermission หรือ Find-MgGraphCommand cmdlet ทั้งสองจะอนุญาตให้คุณค้นหาสิทธิ์ที่จำเป็นสำหรับ MgGraph cmdlet เฉพาะ:

Find-MgGraphCommand -Command "Get-MgUserAuthenticationMethod" | select -ExpandProperty Permissions | Select -Unique name

# Or 
Find-MgGraphPermission AuthenticationMethod

กำลังเชื่อมต่อกับ MgGraph ใน PowerShell

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

เชื่อมต่อกับ Microsoft Graph ด้วยตัวอย่างขอบเขต User.Read.All และ Group.ReadWrite.All:

Connect-MgGraph -Scopes "User.Read.All","Group.ReadWrite.All"

คุณจะต้องตรวจสอบและให้สิทธิ์ ขอบเขตบางอย่างจำเป็นต้องให้สิทธิ์ในนามขององค์กรของคุณ

ตอนนี้คุณสามารถใช้ Graph API ได้แล้ว เมื่อคุณทำงานกับ Graph ใน PowerShell คุณสามารถเพิ่มขอบเขตเพิ่มเติมให้กับเซสชันของคุณได้โดยใช้ คำสั่ง Connect-MsGraph อีกครั้งพร้อมสิทธิ์ใหม่

หากคุณต้องการใช้ beta cmdlet เพียงเพิ่มคำนำหน้าเบต้าหน้าชื่อทรัพยากรของ cmdlet ตัวอย่างเช่น หากต้องการใช้ beta cmdlet ของ Get-MgUser คุณสามารถใช้ Get-MgBetaUser

อัปเดตโมดูลกราฟ Microsoft

โมดูล Microsoft Graph ยังคงได้รับการพัฒนาพร้อมคุณสมบัติใหม่ที่เพิ่มเข้ามาเป็นประจำ ดังนั้นจึงเป็นเรื่องสำคัญที่จะต้องอัปเดตโมดูลของคุณให้ทันสมัยอยู่เสมอ เพื่อให้คุณสามารถใช้ Graph cmdlets ล่าสุดในสคริปต์ PowerShell ของคุณได้

หากต้องการอัปเดตโมดูล เราสามารถใช้ Update-Module cmdlet ใน PowerShell ตามด้วยชื่อโมดูล:

Update-Module Microsoft.Graph

ห่อขึ้น

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

ฉันหวังว่าบทความนี้จะช่วยคุณในการเริ่มต้นใช้งานโมดูล MgGraph หากคุณมีคำถามใด ๆ เพียงแค่แสดงความคิดเห็นด้านล่าง

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