如何連接到 Microsoft Graph PowerShell
有多種方法可以連接到 Microsoft Graph PowerShell 來管理 Microsoft 365 和 Azure 租戶。哪一種方法適合您取決於您想要什麼。一個很好的例子是連接到 Microsoft Graph PowerShell 以自動執行 Microsoft Graph PowerShell 腳本,無需用戶交互。在本文中,您將了解如何使用三種不同的方法連接到 Microsoft Graph PowerShell。
先決條件
您需要在系統上安裝 Microsoft Graph PowerShell 模塊。
以管理員身份啟動 Windows PowerShell 並運行以下命令。
Install-Module Microsoft.Graph -Force
重要的:在運行 cmdlet 或腳本之前,請務必更新到最新的 Microsoft Graph PowerShell 模塊版本,以防止出現錯誤和不正確的結果。
第一種方法是您大部分時間都會使用的方法,因為您想要使用您的帳戶連接到 Microsoft Graph 並使用命令。
Connect-MgGraph -Scopes "User.Read.All"
驗證您的憑據,然後您將返回到 PowerShell 窗口。
方法 2 – 如何使用基於證書的身份驗證 CBA 連接到 Microsoft Graph
第二種方法是在 Azure 中註冊具有權限的應用程序。讓我們完成以下步驟,並為無人值守腳本設置基於 Microsoft Graph 證書的身份驗證。
1. 在Azure中註冊應用程序
要在 Microsoft Entra ID 中註冊應用程序,請按照下列步驟操作:
- 登錄到微軟 Entra 管理中心
- 擴張Azure 活動目錄
- 點擊應用程序 > 應用程序註冊
- 選擇新註冊
- 填寫姓名MSGraph-自動化
- 選擇任何組織目錄(任何 Azure AD 目錄 - 多租戶)中的帳戶和個人 Microsoft 帳戶
- 點擊登記
- MSGraph 自動化應用程序概述出現
- 複製申請(客戶 ID)和目錄(租戶)ID並將其粘貼到記事本中,因為稍後連接到 Microsoft Graph 時需要它
2.配置Azure應用程序API權限
您需要按照以下步驟向您創建的 MSGraph-Automation 應用程序添加 API 權限:
- 點擊API 權限 > 添加權限
- 選擇Microsoft API > Microsoft Graph
- 選擇應用程序權限
- 搜尋用戶.read.all
- 擴張用戶並選擇用戶.閱讀.全部
- 點擊添加權限
- 點擊授予管理員同意
- 點擊是的
- 狀態顯示為綠色複選標記
現在應用程序已註冊並設置了 API 權限,我們可以配置兩種身份驗證方法;證書或客戶端秘密。
3.生成自簽名證書
要生成自簽名證書,請使用 Windows PowerShell 登錄到任何 Windows Server 或桌面。最好在要運行無人值守 PowerShell 腳本的計算機上生成證書。
當您將自簽名證書上傳到 Azure 中的應用程序時,以及如果您想在其他系統上使用該證書,您需要在後面的步驟中使用自簽名證書。
筆記:默認情況下,自簽名證書的有效期為一年。
在本例中,我們為自簽名證書添加了 5 年,因此我們不必每年更新它。
$mycert = New-SelfSignedCertificate -DnsName "exoip.com" -CertStoreLocation "cert:LocalMachineMy" -NotAfter (Get-Date).AddYears(5) -KeySpec KeyExchange -FriendlyName "MSGraph Automation"
確認證書並複制指紋並將其粘貼到記事本中。稍後連接到 Microsoft Graph 時將需要它。
$mycert | Select-Object -Property Subject,Thumbprint,NotBefore,NotAfter
這就是輸出的樣子。
Subject Thumbprint NotBefore NotAfter
------- ---------- --------- --------
CN=exoip.com 384010504F6B495B6D53B1C55DC6C1A7273081AC 7/7/2023 6:14:36 PM 7/7/2028 6:24:36 PM
將證書導出到.cer 文件。
你會需要那個.cer 文件當您將其上傳到 Azure 應用程序(您將在後續步驟中創建該應用程序)時。
$mycert | Export-Certificate -FilePath "C:tempMSGraphAutomationCert.cer"
出現輸出。
Directory: C:temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 7/7/2023 6:25 PM 796 MSGraphAutomationCert.cer
將證書導出到.pfx 文件。
你會需要那個.pfx 文件使用另一台計算機通過基於證書的身份驗證進行連接時。複製或發送.pfx 文件並將其安裝到其他機器上。
$mycert | Export-PfxCertificate -FilePath "C:tempMSGraphAutomationCert.pfx" -Password $(ConvertTo-SecureString -String "P@ssw0Rd1234" -AsPlainText -Force)
出現輸出。
Directory: C:temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 7/7/2023 6:26 PM 2717 MSGraphAutomationCert.pfx
4. 將證書上傳到應用程序
您需要上傳您在上一步中創建的自簽名證書:
- 點擊證書和秘密
- 點擊證書 > 上傳證書
- 單擊瀏覽圖標並選擇自簽名MSGraphAutomationCert.cer 文件在C:溫度
- 添加描述MS Graph 自動化證書
- 點擊添加
- 證書出現在列表中
筆記:確認它具有與您在上一步中導出的證書指紋相同的證書指紋。
5. 使用基於證書的身份驗證連接到 Microsoft Graph
啟動 Windows PowerShell ISE 或 Visual Studio Code 並填寫以下三個變量以使用基於證書的身份驗證連接到 Microsoft Graph PowerShell:
- $客戶端ID
- $租戶ID
- $CertificateThumbPrint
# Configuration
$ClientId = "0a613e88-a189-4eac-b8c3-055196fd04d6"
$TenantId = "eb403171-a4ec-4d98-a08f-1876318c9deb"
$CertificateThumbprint = "384010504F6B495B6D53B1C55DC6C1A7273081AC"
# Connect to Microsoft Graph with CBA
Connect-MgGraph -ClientId $ClientId -TenantId $TenantId -CertificateThumbprint $CertificateThumbprint
現在您已連接到 Microsoft Graph PowerShell,請運行 Get-MgUser cmdlet 以檢索用戶。
Get-MgUser
方法 3 – 如何使用客戶端密鑰連接到 Microsoft Graph
第三種方法是在 Azure 中註冊具有權限的應用程序。讓我們完成以下步驟並為無人值守腳本設置 Microsoft Graph 客戶端密鑰。
1. 在Azure中註冊應用程序
如果您沒有執行此操作,請執行上述步驟在 Azure 中註冊應用程序。
2.配置Azure應用程序API權限
如果您沒有執行此操作,請執行上述步驟來配置 Azure 應用程序 API 權限。
3. 添加客戶端密碼
您需要添加應用程序在請求令牌時用來證明其身份的客戶端密鑰。
- 點擊證書和秘密
- 點擊客戶端機密 > 新客戶端機密
- 給它描述MS Graph 自動化秘密
- 選擇到期日期730 天(24 個月)
- 點擊添加
- 複製客戶秘密值並將其粘貼到記事本中,因為在下一步連接到 Microsoft Graph 時將需要它
4. 使用客戶端密鑰連接到 Microsoft Graph
啟動 Windows PowerShell ISE 或 Visual Studio Code 並填寫以下三個變量以使用客戶端密鑰連接到 Microsoft Graph PowerShell:
- $客戶端ID
- $租戶ID
- $ClientSecret
# Configuration
$ClientId = "0a613e88-a189-4eac-b8c3-055196fd04d6"
$TenantId = "eb403171-a4ec-4d98-a08f-1876318c9deb"
$ClientSecret = "Kos8Q~nVLcjmmyGSY68qDg4zbdF8f51L2EM50ac5"
# Convert the client secret to a secure string
$ClientSecretPass = ConvertTo-SecureString -String $ClientSecret -AsPlainText -Force
# Create a credential object using the client ID and secure string
$ClientSecretCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $ClientId, $ClientSecretPass
# Connect to Microsoft Graph with Client Secret
Connect-MgGraph -TenantId $tenantId -ClientSecretCredential $ClientSecretCredential
現在您已連接到 Microsoft Graph PowerShell,請運行獲取 MgUsercmdlet 來檢索用戶。
另請閱讀:如何修復 Microsoft Entra Connect Sync 停止服務器關閉錯誤
Get-MgUser
就是這樣!
結論
您學習瞭如何使用三種方法連接到 Microsoft Graph PowerShell。完成分步指南後,您可以通過 Microsoft Graph PowerShell 通過用戶交互(方法 1)或無需用戶交互的無人值守腳本(方法 2/3)進行身份驗證。所有這些方法都非常適合使用。
您喜歡這篇文章嗎?您可能還喜歡使用 PowerShell 從 CSV 創建 Microsoft Entra ID 用戶。不要忘記關注我們並分享這篇文章。
