当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何在 PowerShell 中安装 Microsoft Graph 模块

作者:精品下载站 日期:2024-12-14 03:39:13 浏览:15 分类:玩电脑

如何在 PowerShell 中安装 Microsoft Graph 模块


Microsoft Graph API 允许我们通过单一来源与所有 Microsoft 服务进行交互。要从 PowerShell 执行此操作,我们总是必须安装不同的模块并建立不同的连接。对于 PowerShell 的 Microsoft Graph SDK 模块,不再需要这样做。

我们已经可以在 Invoke-Webrequests 调用的帮助下使用 Graph API,但这并不容易使用。新的 Microsoft Graph 模块附带了许多 cmdlet,使与服务的交互变得更加容易。

在本文中,我将解释如何安装 Microsoft Graph 模块以及如何使用不同的权限连接到它。

Microsoft Graph PowerShell SDK

Graph 模块实际上称为 Microsoft Graph PowerShell SDK,是所有 Microsoft Graph API 的包装器。目前它似乎只是取代了 Azure AD 模块。我们用来与 Microsoft 365 交互的其他模块目前似乎还没有被它取代。

2022 年 6 月 30 日,Azure AD Graph 端点将被弃用。这意味着使用 Azure AD 模块进行的调用将不再得到响应。因此,将使用 Azure AD 模块的所有脚本重写为 Microsoft Graph 模块非常重要。

如前所述,Microsoft Graph PowerShell SDK 允许我们与 Microsoft 的所有 API 进行交互。这意味着我们还可以使用该模块与 SharePoint、Exchange Online、Compliance 等进行交互。

该模块的另一个优点是它支持 PowerShell 7 及更高版本。例如,Azure AD 模块无法在 PowerShell 7 上运行。

在 PowerShell 中安装 Microsoft Graph 模块

目前,Microsoft Graph SDK 模块共有 38 个模块。我们可以一次性安装它们,但您可能需要考虑仅安装您真正需要的模块。

笔记

确保在安装各个模块时至少安装 Microsoft.Graph.Authentication 模块

您可以使用以下命令查看所有可用模块:

Find-Module Microsoft.Graph*

我们将仅为当前用户安装 Microsoft Graph 模块。也可以为所有用户安装它,但随后您需要使用提升的权限打开 PowerShell。

  1. 打开 PowerShell 或 Windows 终端

    - 右键单击“开始” 或按 Windows 键 + X
    - 选择 Windows PowerShell 或 Windows 终端(在 Win 11 上)

    [玩转系统] 如何在 PowerShell 中安装 Microsoft Graph 模块

  2. 安装SDK

    在 PowerShell 中输入以下命令来安装模块:

    Install-Module Microsoft.Graph -Scope CurrentUser

    [玩转系统] 如何在 PowerShell 中安装 Microsoft Graph 模块

  3. 接受不受信任的存储库

    输入 Y 从不受信任的存储库安装

    [玩转系统] 如何在 PowerShell 中安装 Microsoft Graph 模块

  4. 等待安装完成

    安装所有模块时,可能需要几分钟才能完成安装

    [玩转系统] 如何在 PowerShell 中安装 Microsoft Graph 模块

如果您也想使用测试版,则需要单独安装测试版模块:

Install-Module Microsoft.Graph.Beta -Scope CurrentUser

从 PowerShell 连接到 Microsoft Graph

连接到 Microsoft Graph 时有两件事很重要,您需要定义范围,并且有 MgGraph 的 Beta 版本。默认情况下,模块将使用稳定版本的 API。但新功能首先在 cmdlet 的测试版中发布。

另一个重要的步骤是您需要指定要使用的范围。 MgGraph 提供对 Microsoft 的所有 API 的访问。因此,当您想要导出或查看 Azure AD 用户时,您只需要拥有 User.Read.All 权限

查找 Microsoft Graph 范围

一开始找到合适的范围可能有点困难。但您可以使用一些选项来确定需要指定的范围:

  • 微软图形浏览器
  • Microsoft Graph Rest API 参考
  • Find-MgGraphPermission cmdlet

Microsoft Graph Explorer 是一个很好的工具,用于测试对 Microsoft Graph 的 API 调用。它附带了许多示例调用来帮助您入门。但它也会列出调用所需的权限。

  1. 打开图形浏览器
  2. 在左侧选择一个示例查询
  3. 单击修改权限选项卡

[玩转系统] 如何在 PowerShell 中安装 Microsoft Graph 模块

在 PowerShell 中连接到 MS Graph 时,您至少需要“权限”选项卡中提到的范围之一。

另一种选择是使用 Rest API 参考。您可以在左侧菜单中选择要使用的实体之一,然后查看所需的权限。您不需要添加所有范围,它们是按照从最低权限到最高权限的顺序列出的。

[玩转系统] 如何在 PowerShell 中安装 Microsoft Graph 模块

最后一个选项是使用 Find-MgGraphPermission 或 Find-MgGraphCommand cmdlet。这两个 cmdlet 都允许您查找特定 MgGraph cmdlet 所需的权限:

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

# Or 
Find-MgGraphPermission AuthenticationMethod

在 PowerShell 中连接到 MgGraph

如果您知道需要使用哪些范围,则可以连接到 Microsoft Graph。我们将使用正常的交互方法,这在本地工作时非常有用。但是,当您想要计划脚本或在 Azure Runbook 中使用 Microsoft Graph 时,您将需要使用其他身份验证选项之一。

使用 User.Read.AllGroup.ReadWrite.All 范围连接到 Microsoft Graph:

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

您需要进行身份验证并授予权限。某些范围需要代表您的组织授予权限。

[玩转系统] 如何在 PowerShell 中安装 Microsoft Graph 模块

您现在可以使用图形 API。当您在 PowerShell 中使用 Graph 时,只需再次使用具有新权限的 Connect-MsGraph 命令,即可向会话添加其他范围。

如果要使用 beta cmdlet,只需在 cmdlet 的资源名称前添加 beta 前缀即可。例如,要使用 Get-MgUser 的 beta cmdlet,您可以使用 Get-MgBetaUser

更新 Microsoft Graph 模块

Microsoft Graph 模块仍在开发中,并定期添加新功能。因此,保持模块最新非常重要,这样您就可以在 PowerShell 脚本中使用最新的 Graph cmdlet。

要更新模块,我们可以在 PowerShell 中使用 Update-Module cmdlet,后跟模块名称:

Update-Module Microsoft.Graph

总结

找到 Microsoft Graph SDK 模块的正确 cmdlet 可能有点困难,但很高兴一个模块允许我们与所有 Microsoft 服务进行交互。在撰写本文时,文档仍然有点薄,因此用它编写脚本需要进行大量的试验和错误。

我希望这篇文章可以帮助您开始使用 MgGraph 模块。如果您有任何疑问,请在下面发表评论。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯