网站搜索
2021 年 9 月,我第一次开始撰写有关使用 Microsoft Graph PowerShell SDK 的文章。在第一篇文章中,我指出了由于服务主体创建来保存分配给 SDK 的权限随着时间的推移而累积的方式所导致的潜在问题。最终,任何使用 Connect-MgGraph cmdlet 以交互方式登录 SDK 的人都可以获得广泛的权限。 SDK 版本 2 中仍然存在相同的行为。鉴于使用最少权限模型进行管理操作的重要性,权限的累积并不是一件好事。
Microsoft Graph PowerShell SDK 与其他 Microsoft 365 PowerShell 模块(例如 Exchange Online 或 SharePoint Online 管理模块)不同。这些模块假设由管理员使用,并且他们的 cmdlet 在此基础上工作。当然,如果没有管理员角色的人登录使用这些模块,权限会限制他们访问自己的数据。
关于租户如何使用Graph SDK,我认为我们可以将使用方式细分如下:
关于如何使用 Microsoft Graph PowerShell SDK 将许可证分配给用户帐户的文章的读者评论要求提供一个示例,展示如何从 CSV 读取帐户并向这些帐户分配许可证。换句话说,如何使用 PowerShell 将许可证批量分配给目标用户帐户。这是人们向租户介绍新产品时所做的事情。
当微软最终发布 Microsoft 365 Copilot 供公众使用时,我想愿意支付 30 美元/用户/月价格的组织在决定谁获得 Copilot 许可证后会寻求某种批量分配机制。鉴于 Copilot 要求租户拥有 Microsoft 365 企业许可证,他们可以使用基于组的许可。这是最好的方法,这里讨论的脚本对于那些无法使用基于组的许可的人来说在很大程度上是一种自己动手的分配机制。话又说回来,了解事物的工作原理总是很好的,这样您就可以在必要时创建自己的自动化。
从概念上讲,处理步骤很简单。第一步是从 CSV 文件导入目标用户帐户的详细信息。或者,您可以使用另一种机制来建立目标帐户集。合适的机制包括:
Microsoft 正在标准化 Microsoft Graph API,以便以编程方式访问 Microsoft 365 租户配置、应用程序和用户数据,而不是依赖 Azure AD、Azure AD Preview 和 MSOL 等旧版 PowerShell 模块。事实上,这三个模块正在被弃用。虽然弃用日期已更改,但组织应计划更新其脚本,以便不再依赖这些模块。
GitHub Copilot 可以帮助您进行升级。 GitHub Copilot 是一款由 AI 驱动的代码完成和建议工具,由 GitHub 与 ChatGPT 的制造商 OpenAI 合作开发。它可以根据代码编辑器中的自然语言注释和上下文提供实时代码建议和自动完成功能,从而帮助任何人编写代码。代码建议和 Copilot 对 PowerShell 的理解相结合,可以帮助租户管理员将其旧脚本转换为使用 Microsoft Graph PowerShell SDK 中的 cmdlet。需要注意的是,GitHub Copilot 只是一个工具。它不能取代对 Microsoft Graph 工作原理的基本理解。对于那些有兴趣了解 Microsoft Graph SDK 的人,Practical 365 有大量
阅读更多 →
您只能在 Microsoft Entra 中设置或更改单个用户的个人资料图片。使用 PowerShell,您可以获取、下载、设置和删除多个用户的用户照片。在本文中,您将了解如何使用 Microsoft Graph PowerShell 管理用户照片。
请按照以下步骤更改 Microsoft Entra 管理中心中的用户照片:
Microsoft Graph PowerShell 中的 Get-MgUser 命令专门用于检索 Microsoft 365 租户中存储在 Azure Active Directory (Microsoft Entra) 中的用户信息。在 Azure AD 中管理用户是管理员的一项重要任务。因此,了解 Get-MgUser cmdlet 对于通过 PowerShell 管理 Microsoft Graph 中的用户数据至关重要。此命令可帮助您高效地检索用户属性和关系,并提供各种参数(例如 filter、property 和 search
阅读更多 →
Microsoft Graph 模块是一个 PowerShell 模块,提供用于通过 PowerShell 管理 Microsoft 365 和 Azure Active Directory 资源的 cmdlet。
Microsoft Graph API 提供对 Microsoft 365 数据和服务(例如用户、组、日历和文件)的访问。
在本文中,我们将讨论如何安装 Microsoft Graph PowerShell 模块。
Microsoft Graph PowerShell SDK 需要满足以下先决条件:
要从 PowerShell 脚本通过 SMTP 服务器发送电子邮件,您可以使用内置的 Send-MailMessage cmdlet。它的主要缺点是它只能使用基本 SMTP 身份验证,不支持现代身份验证方法,包括 OAuth 和 Microsoft 现代身份验证。当你运行
在新版本的 PowerShell Core 7.x 中运行命令时,您会收到以下警告:
阅读更多 →在这篇文章中,我将向您展示如何使用 Microsoft Graph PowerShell 和 Invoke-MgGraphRequest cmdlet 在 Microsoft Entra 中创建新应用程序。这使您可以创建新的应用注册,而无需额外依赖 Microsoft.Graph.Applications 模块。
要在 Microsoft Graph PowerShell 中创建应用程序注册,您首先需要确保已安装 Microsoft.Graph.Authentication 模块。这允许您使用 Connect-MgGraph 和 Invoke-MgGraphRequest cmdlet。
您还需要访问全局管理员帐户,以同意 Microsoft Graph 命令行工具应用程序所需的权限。
让我们在 Microsoft Entra 中注册一个新应用程序。我们将从注册一个基本应用程序开始,然后在此基础上慢慢
阅读更多 →
Microsoft Graph PowerShell 基于证书的身份验证使你能够对 Microsoft Graph 进行身份验证并在应用程序上下文中运行 PowerShell 脚本,而无需存储或检索客户端密钥。
当您需要从特权设备运行脚本但又不想在代码中存储客户端密钥的情况下,这可能很有用。场景可能包括从特权设备运行脚本或使用 Azure 自动化。
在本教程中,我将向您展示如何通过 Microsoft Graph PowerShell 使用基于证书的身份验证。
在此场景中,我在主租户(租户 2)中使用 Azure 自动化 Runbook。我需要使用 PowerShell 向另一个租户(租户 1)中的 Microsoft Graph 进行身份验证以管理资源。
对于此用例,我将使用基于证书的身份验证和 Microsoft Graph PowerShell。
您首先需要在本地工作站上生成新的自签名证书。当您执行此操作时,私钥也会存储在您的本地设备上。完成后可以将其删除。
以下命令将创建一个名为 AzureAutomation
阅读更多 →
带有 Microsoft Graph PowerShell 的 Get-MgUserMessageContent cmdlet 提供了一种以 .eml 格式将电子邮件导出到本地计算机的方法,任何人都可以阅读该格式。在这篇文章中,我将向您展示如何从组织中的任何 Exchange Online (M365) 邮箱批量导出电子邮件。此外,如何过滤导出特定日期范围内且主题行中包含特定信息的电子邮件。
此脚本使用以下 Microsoft Graph PowerShell 模块:
您还需要租户中的全局管理员帐户才能同意以下权限:
有关这些要求的支持,请参阅我的帖子:如何安装 Microsoft Graph PowerShell 模块。
Mail.Read 权限仅在应用程序上下文中可用。为此,您需要在
阅读更多 →