[玩转系统] 连接到 Microsoft Graph PowerShell
作者:精品下载站 日期:2024-12-14 09:12:44 浏览:15 分类:玩电脑
连接到 Microsoft Graph PowerShell
安装 Microsoft Graph 模块后,您可以连接到 Microsoft Graph PowerShell。连接到 Microsoft Graph PowerShell 的方法有多种。在本文中,我们将向您展示如何使用交互模式、自签名证书和客户端密钥连接到 Microsoft Graph。
微软图谱
Azure Active Directory Graph API 自 2023 年 6 月 30 日起已弃用,因此现在必须将应用程序迁移到 Microsoft Graph。连接到 Microsoft Graph 后,您可以访问 Azure AD 服务和 Microsoft 365 服务。
Microsoft Graph 具有 Azure AD Graph 中提供的所有功能以及身份保护和身份验证方法等新 API。
安装 Microsoft Graph PowerShell 模块
首先,您需要安装 Microsoft Graph PowerShell 模块。 Microsoft Graph PowerShell SDK 包含 2 个模块,您将分别安装:
- Microsoft.Graph PowerShell 模块
- Microsoft.Graph.Beta PowerShell 模块
我们建议您更新到最新版本,因为某些 cmdlet 将无法工作。
注意:您需要安装 Microsoft Graph PowerShell 模块 v2.x 才能连接 Microsoft Graph 来运行自动化脚本。
检查 Microsoft Graph PowerShell 模块
您可以验证是否已安装 Microsoft Graph PowerShell SDK 并查看模块正在运行的版本。
运行以下 PowerShell 命令。
Get-InstalledModule Microsoft.Graph | ft -AutoSize
Get-InstalledModule Microsoft.Graph.Beta | ft -AutoSize
输出显示您安装的版本。
PS C:\> Get-InstalledModule Microsoft.Graph | ft -AutoSize
Get-InstalledModule Microsoft.Graph.Beta | ft -AutoSize
Version Name Repository Description
------- ---- ---------- -----------
2.7.0 Microsoft.Graph PSGallery Microsoft Graph PowerShell module
Version Name Repository Description
------- ---- ---------- -----------
2.7.0 Microsoft.Graph.Beta PSGallery Microsoft Graph PowerShell module
更新 Microsoft Graph PowerShell 模块
您可以始终使 Microsoft Graph PowerShell SDK 保持最新。
运行以下命令来更新 Microsoft Graph 和 Microsoft Graph Beta 模块。
Update-Module Microsoft.Graph -Force
Update-Module Microsoft.Graph.Beta -Force
将 Microsoft Graph PowerShell 模块安装到最新版本后,您可以开始连接。
连接到 Microsoft Graph PowerShell 的三种方法
我们将向您展示三种连接 Microsoft Graph PowerShell 的方法:
- 交互模式(委托访问)
- 基于证书的身份验证 (CBA)
- 客户端秘密(密码)
第一种方法是最简单的,因为您只需要使用 PowerShell 连接。其他两种方法类似,因为它需要在 Azure AD 中创建新应用程序。方法 2 和 3 之间的区别在于,有两种方法可以对 Azure Active Directory 中新创建的应用程序进行身份验证。
我们将向您展示两种方法,但建议为您的应用程序添加证书 (CBA) 而不是客户端密钥,因为它们不那么安全。
1.以交互方式连接MgGraph
第一种方法是使用 PowerShell 连接到 Microsoft Graph API 的最快、最简单的方法。
- 以管理员身份打开 PowerShell 并运行以下命令。
Connect-MgGraph
- 使用您的管理员凭据登录。
- 如果您启用了 MFA,您将收到以短信形式发送或发送到手机上的身份验证应用程序的验证码。如果您的 MFA 被禁用,您将无法在此处执行任何操作。
现在您必须返回 PowerShell 窗口,您将在其中获得以下输出。
PS C:\> Connect-MgGraph
Welcome To Microsoft Graph!
注意:您无法运行自动化脚本,但它可用于测试或运行脚本。
如果您想运行自动化任务,您应该使用下一个方法。
2. 使用基于证书的身份验证连接 MgGraph
在我们使用 PowerShell 连接到 Microsoft Graph 之前,您需要在 Azure AD 中注册应用程序并分配 API 权限。然后我们将为应用程序创建一个自签名证书。
在 Azure AD 中注册新应用程序
首先,您需要注册一个应用程序,您将在其中获得应用程序(客户端)ID 和目录(租户)ID。
所需时间:10 分钟
如何在 Microsoft Entra 管理中心注册新应用程序:
-
登录 Microsoft Entra 管理中心。
使用您的管理员凭据登录
转到 Azure Active Directory。
单击“应用程序”>“应用程序”注册
点击新注册注册应用程序。
为您的应用程序命名 MSGraph 机器人
选择仅此组织目录中的帐户(- 单个租户)
点击注册已成功创建应用程序 MSGraph 机器人。
您将被重定向到 MSGraph 机器人概览页面
复制应用程序 ID 和目录 ID
您需要复制以下值并将其粘贴到记事本中,因为稍后连接到 Microsoft Graph 时需要它们:
- 应用程序(客户端)ID
- 目录(租户)ID
分配API权限
您必须为您创建的 MSGraph 机器人应用程序分配 API 权限。
- 点击API权限
- 点击添加权限
- 在Microsoft API选项卡下
- 单击Microsoft Graph
- 点击应用程序权限
- 搜索User.Read.All
- 选择用户 > User.Read.All
- 点击添加权限
- 点击授予 a-d 管理员同意
- 单击是
出现绿色复选标记,表明您已成功授予管理员同意!
创建自签名证书
创建新应用程序后,可以使用自签名证书将 .pfx 文件和 .cer 文件上传到 Azure AD。
首先,您需要生成一个自签名证书。最好在要运行无人值守 PowerShell 脚本的同一台计算机上制作证书。
以管理员身份使用 Windows PowerShell 登录任何 Windows 服务器或桌面。
注意:自签名证书默认有效期为一年
在我们的示例中,我们将为自签名证书添加 5 年以避免每年续订。
使用以下 PowerShell cmdlet 创建新的自签名证书。
$mycert = New-SelfSignedCertificate -DnsName "a-d.site" -CertStoreLocation "cert:\LocalMachine\My" -NotAfter (Get-Date).AddYears(5) -KeySpec KeyExchange -FriendlyName "MSGraph Bot"
证书现已存储,要查看指纹,请使用以下 PowerShell cmdlet。
$mycert | Select-Object -Property Subject,Thumbprint,NotBefore,NotAfter
复制指纹并将其粘贴到记事本中。稍后当您使用 CBA 连接到 Microsoft Graph PowerShell 时将需要它。
PS C:\> $mycert | Select-Object -Property Subject,Thumbprint,NotBefore,NotAfter
Subject Thumbprint NotBefore NotAfter
------- ---------- --------- --------
CN=a-d.site 03D55A7B5A29D571BDEB21F1079541F130F93B26 7/19/2023 11:49:38 AM 7/19/2028 11:59:38 AM
使用 PowerShell 导出到 .cer 文件
我们想要创建一个.cer 文件以便稍后上传到 Azure AD 应用程序中。使用 .cer 文件,您只能从生成自签名证书的计算机连接到 Microsoft Graph。
创建一个名为 temp 的文件夹,将其保存在 C:\temp 中。
使用以下 PowerShell cmdlet 将证书导出到 .cer 文件。
$mycert | Export-Certificate -FilePath "C:\temp\MSGraphBot.cer"
您将在 PowerShell 中看到以下输出。
PS C:\> $mycert | Export-Certificate -FilePath "C:\temp\MSGraphBot.cer"
Directory: C:\temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 7/19/2023 12:00 PM 805 MSGraphBot.cer
您可以在计算机上的 C:\temp 中找到 .cer 文件。
导出到 .pfx 文件
我们还将创建一个 .pfx 文件,以便您可以从任何计算机连接到 Microsoft Graph。您可以将 .pfx 文件复制或发送给某人,以便将其安装在另一台计算机上,因为将在身份验证过程中检索 .pfx 文件。
$mycert | Export-PfxCertificate -FilePath "C:\temp\MSGraphBot.pfx" -Password $(ConvertTo-SecureString -String "P@ssw0Rd1234" -AsPlainText -Force)
请参阅下面的输出。
PS C:\> $mycert | Export-PfxCertificate -FilePath "C:\temp\MSGraphBot.pfx" -Password $(ConvertTo-SecureString -String "P@ssw0Rd1234" -AsPlainText -Force)
Directory: C:\temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 7/19/2023 12:02 PM 2709 MSGraphBot.pfx
您可以在计算机上的 C:\temp 中找到 .pfx 文件。
将证书上传到应用程序
现在我们需要上传您之前创建的自签名证书。
来自 MSGraph 机器人 概述:
- 点击证书和机密
- 选择证书
- 点击上传证书
- 单击浏览图标在 C:\temp 中搜索并选择 MSGraphBot.cer 文件
- 添加描述MSGraph机器人
- 点击添加
该证书将显示在带有指纹的列表中。
注意:始终确保其具有与您之前创建的证书指纹相同的证书指纹。
使用 CBA 连接到 Microsoft Graph
键入以下信息以使用基于证书的身份验证连接到 Microsoft Graph PowerShell:
- 在第 1 行中填写应用程序 ID
- 在第 2 行中填写租户 ID
- 在第 3 行填写证书指纹
运行以下 PowerShell 脚本以使用 CBA 连接到 Microsoft Graph。
# Configuration
$ClientId = "9e2c8889-527c-4ce9-9da8-6b4ce9abe3b7"
$TenantId = "a2ff010e-0e03-4c56-8863-2ae7f07876dd"
$CertificateThumbprint = "03D55A7B5A29D571BDEB21F1079541F130F93B26"
# Connect to Microsoft Graph with CBA
Connect-MgGraph -ClientId $ClientId -TenantId $TenantId -CertificateThumbprint $CertificateThumbprint
您已连接到 Microsoft Graph。一个很好的验证方法是运行以下 cmdlet。
Get-MgUser
3. 将 MgGraph 与 Client Secret 应用程序连接
在最后一种方法中,我们将向您展示如何为新创建的应用程序创建客户端密钥。
在 Azure AD 中注册新应用程序
请参阅上述步骤在 Azure 中注册新应用程序。在我们的示例中,我们将使用之前创建的相同应用程序。
分配API权限
请参阅上述步骤将 API 权限分配给 Azure 应用程序。在我们的示例中,我们已经为之前创建的应用程序分配了 API 权限。
创建客户端机密
转到 Azure AD 中的 MSGraph 机器人应用程序概述页面。
要在 Microsoft Entra 门户中为您的应用程序创建客户端密钥,请按照下列步骤操作:
- 单击证书和机密
- 单击客户端密钥 > 新客户端密钥
- 输入描述
- 选择到期日期
- 点击添加
注意:客户端密钥的有效期最长为 24 个月(2 年)。您可以使用 PowerShell 在 Azure AD 中创建无限的客户端密钥。
- 复制客户端密钥值并保存
注意: 除非在创建后立即查看客户端密钥值,否则无法查看。请记住在离开页面之前保存创建的密码。
使用客户端密钥连接到 Microsoft Graph
您需要更改以下参数值才能使用客户端密钥连接到 MS Graph:
- 在第 2 行中输入应用程序客户端 ID
- 在第 3 行中输入目录租户 ID
- 在第 4 行中输入客户端密钥值
运行以下 PowerShell 脚本。
# Configuration
$ClientId = "9e2c8889-527c-4ce9-9da8-6b4ce9abe3b7"
$TenantId = "a2ff010e-0e03-4c56-8863-2ae7f07876dd"
$ClientSecret = "ZZj8Q~pHUbxG1uX5bNmuM5XV-rQb20tiWHEEkbsO"
# 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。一个很好的验证方法是运行以下 cmdlet。
Get-MgUser
就是这样!您已成功连接到 Microsoft Graph PowerShell!
阅读更多内容:配置基于证书的身份验证以运行自动化脚本 »
结论
您了解了如何使用自签名证书、客户端密钥和交互模式连接到 Microsoft Graph PowerShell。如果您使用客户端密钥或 CBA 连接,请记住将 MS Graph 模块更新到最新版本,创建应用程序并分配 API 权限。使用 CBA,运行自动化脚本不再涉及用户交互、用户名、密码或 MFA。
您喜欢这篇文章吗?您可能还喜欢在 Azure 中使用基于组的许可分配 Microsoft 365 许可证。不要忘记关注我们并分享这篇文章。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag