网站搜索
有多种方法可以连接到 Microsoft Graph PowerShell 来管理 Microsoft 365 和 Azure 租户。哪一种方法适合您取决于您想要什么。一个很好的例子是连接到 Microsoft Graph PowerShell 以自动执行 Microsoft Graph PowerShell 脚本,无需用户交互。在本文中,您将了解如何使用三种不同的方法连接到 Microsoft Graph PowerShell。
您需要在系统上安装 Microsoft Graph PowerShell 模块。
以管理员身份启动 Windows PowerShell 并运行以下命令。
重要提示:始终安装 Microsoft Graph PowerShell 和
阅读更多 →
Microsoft Graph API 允许我们通过单一来源与所有 Microsoft 服务进行交互。要从 PowerShell 执行此操作,我们总是必须安装不同的模块并建立不同的连接。对于 PowerShell 的 Microsoft Graph SDK 模块,不再需要这样做。
我们已经可以在 Invoke-Webrequests 调用的帮助下使用 Graph API,但这并不容易使用。新的 Microsoft Graph 模块附带了许多 cmdlet,使与服务的交互变得更加容易。
在本文中,我将解释如何安装 Microsoft Graph 模块以及如何使用不同的权限连接到它。
Graph 模块实际上称为 Microsoft Graph PowerShell SDK,是所有 Microsoft Graph API 的包装器。目前它似乎只是取代了 Azure AD 模块。我们用来与 Microsoft 365 交互的其他模块目前似乎还没有被它取代。
2022 年 6 月 30 日,Azure AD Graph 端点将被弃用。这意味着使用 Azure AD 模块进行的调用将不再得到响应。因此,将使
阅读更多 →
Microsoft Teams 使用 SharePoint Online 来存储团队成员之间共享的文件,这已不是什么秘密。每个团队在该团队的 Microsoft 365 组拥有的 SharePoint Online 网站中都有一个文档库,创建新频道时,会在文档库中创建该频道的文件夹。
默认情况下,频道文件夹的名称与频道相同。使用 Exchange Online 或 PnP PowerShell 可以轻松检索详细信息。然而,当频道重命名时,事情会变得更加复杂。
目前,当频道被重命名时,其文件夹不会更改(但希望很快就会更改!),这使得查找频道文件夹变得更加困难。私人频道因其关联的 SharePoint Online 网站而造成了另一层复杂性。
在使用 Teams 的大型组织中,报告并迁移这些数据非常困难。为了帮助了解 Teams 如何使用 SharePoint,我创建了一个简单的 Graph API/PowerShell 脚本,以在 CSV 文件中报告 Teams 频道及其 SharePoint 位置(您可以在此处从 GitHub 下载该脚本)。每个通道报告以下信息:
阅读更多 →
更新日期:2023 年 8 月 1 日
在上一篇文章中,我讨论了使用适用于 PowerShell 的 Microsoft Graph SDK 中的 cmdlet 来替换 Azure AD 模块中的许可证管理 cmdlet,这些 cmdlet 将于 2022 年 6 月 30 日停用(更新:Microsoft 已将此日期移至 3 月2024 年)。事实证明,通过将几个 Azure AD cmdlet 替换为 Get-MgUser 和 Set-MgUserLicense 等 cmdlet 来转换它们并不是特别困难(如果是的话,我就无法做到这一点)。然而,在生产环境中使用的 PowerShell 组合中引入新模块总是会产生一些问题和担忧,其中最重要的是安全性。
在测试和生产环境中使用 Graph SDK cmdlet 的方法有正确和错误之分。简而言之,以交互方式运行 cmdlet 很简单,但可能会导致过度许可的服务主体 (应用程序) 出现问题。这与 Graph SDK 的连接方式及其使用的权限有关。让我们来看看为什么。
在更新使用 Microsoft Graph PowerShell SDK 访问 Microsoft 365 数据的 Azure AD 帐户的许可证等文章中,我们使用了在交互式会话中发出的命令。正如我在本文中指出的那样,这种方法非常适合探索 Graph SDK cmdlet 的工作原理,同时也为程序员和管理员提供了一些需要理解的要点。最严重的问题是权限累积,随着时间的推移收集的同意意味着用于 SDK 的服务主体可能会获得过度许可。解决方案是使用在 Azure AD 中注册的单独应用程序,并获得足够的权限来完成工作;这带来了管理挑战,但更安全。
如果您选择使用注册应用程序,则可以使用仅应用程序身份验证而不是委派访问权限。仅应用程序身份验证意味着应用程序使用 X.509 证书作为其凭据。该证书可以是自签名的(用于测试目的)或由证书颁发机构颁发。 Microsoft 有关对 Microsoft Graph PowerShell SDK 使用仅应用程序身份验证的文档包含配置在 Azure AD 中注册的应用程序以进行仅应用程序身份验证的步骤。本文介绍了我使用这些步骤的经验。
您可能没有等待使
阅读更多 →
在上一篇有关将 Azure 自动化帐户和 Runbook 与 Exchange Online 管理 PowerShell 模块一起使用的文章中,我还解释了如何在 Runbook 中执行的 PowerShell 脚本中使用图形 API 查询。自然的后续问题是询问 Microsoft Graph PowerShell SDK 是否支持 Runbook。我可以报告说,该 SDK 可以使用基于证书的身份验证或托管标识与 Azure 自动化一起使用。当然,一个简单的陈述可能隐藏着一堆复杂性,所以让我们来探讨一下细节。
作为可能性的实际示例,在本文中,我将转换脚本以将电子邮件发送到此处描述的新邮箱,以便在 Runbook 中执行。
正如上一篇文章中所讨论的,我们将使用 Azure 自动化帐户(与 Azure 订阅绑定)在沙箱服务器上运行脚本。 Azure 自动化支持托管标识,我将在以后的文章中深入探讨该主题。目前,经过尝试和测试的技术可以完成这项工作。
更新:Azure 自动化不再支持 Runbook 帐户。请改用托管身份。请参阅本文了解更多信息。
阅读更多 →
现在,您应该知道 Microsoft 计划在 2022 年底或不久后停用 Azure AD 和 MSOL PowerShell 模块。已停用模块中的 cmdlet 之后将继续运行,但不会获得任何支持。 Microsoft 建议您升级脚本以使用 Microsoft Graph PowerShell SDK 中的 cmdlet。实际的转换通常是在 Microsoft 的 cmdlet 映射中找到匹配的 cmdlet 并切换到它。但是,在 cmdlet 顺利运行之前,还会遇到其他复杂问题。确定用于访问数据的正确 Microsoft Graph API 权限只是这些复杂性之一。
Azure AD PowerShell 模块和 Microsoft Graph PowerShell SDK 之间的权限处理存在显着差异。使用 Connect-AzureAD cmdlet 登录时,您可以使用登录帐户拥有的所有管理权限。但是,Graph SDK 在最低权限模型上运行,这意味着即使在连接具有高权限的帐户时,您也必须请求权限才能执行操作。
将脚
阅读更多 →
Microsoft Graph API 已经存在一段时间了,微软正在将更多管理功能(例如 Azure AD 帐户的许可证管理)转移到该平台。当 Microsoft 将功能转移到 Graph 时,组织可能必须更新 PowerShell 脚本。
开始使用 Graph API 可能是一项艰巨的任务,特别是如果您没有基于 REST 的服务的经验。通过一些实践和花时间阅读 Graph 文档,可以了解 Microsoft 365 租户迁移评估等工具是如何组合在一起的,并开始了解使用 Graph 的价值。
如果您想要以更熟悉的方式利用 Graph,Microsoft Graph PowerShell SDK 可以简化该过程并将其打包到(相对)简单的 PowerShell 模块中。使用 PowerShell SDK 连接到 Microsoft Graph 存在一些问题,但它使租户管理员学习和采用 Graph API 的过程变得更加容易。
在有关使用 Microsoft Graph PowerShell SDK 的系列的第一部分中,我解释了 SDK 是什么以及开始时需要考虑的事项。
阅读更多 →
在本系列的第一部分中,我解释了 Microsoft Graph PowerShell SDK 如何通过用更熟悉的 PowerShell cmdlet 替换 API 调用来简化 Microsoft Graph API 的使用。我还演示了如何安装 SDK 并连接以运行您的第一个 cmdlet。
管理员需要执行的一些最常见的活动涉及用户和组管理。本文将深入介绍如何使用 SDK 执行常见的日常任务,以通过 Graph 管理用户和组。
Microsoft Graph API 和 SDK 的最大优势之一是能够从一个位置管理 Microsoft 365 的许多方面。这看起来似乎是一件小事,但是当您开始自动化更复杂的场景时,跟踪必要的模块很麻烦,并且确保您的环境准备就绪需要时间。更不用说保持所有不同的模块更新。
一个奇怪的异常现象是缺乏管理 Exchange Online 的端点。虽然可以通过图表访问邮箱数据,但大多数 Exchange Online 管理任务(例如地址列表、邮件流规则)仍然需要通过 Exchange Onli
阅读更多 →
在本系列的第二部分中,我了解了 Microsoft Graph 和 Graph PowerShell SDK 如何允许管理员从单个模块管理 Microsoft 365 的多个方面。凭借一些 PowerShell 经验,该 SDK 使标准管理任务和报告变得相对容易。
虽然在一个地方拥有此功能很好,但通过 PowerShell 管理 Microsoft 365 对于大多数管理员来说已经是老新闻了。 Graph SDK 相对于其他方法的优势在于,它可以充分利用 Graph API,允许管理员与 Exchange Online 和 SharePoint Online 等 Microsoft 365 服务进行交互,而这些服务以前需要使用专用 API,而这些 API 可能需要大量的资源。投入更多的时间来学习。
自 Exchange Server 2007 以来,Exchange Web 服务 (EWS) 一直是 Microsoft Exchange 的组成部分。EWS 支持以编程方式访问邮箱等 Exchange 资源。 2018 年,Exchange 团队宣布他们将不再积极投资 Exch
阅读更多 →