使用 PowerShell 将 Office 365 用户 MFA 状态导出到 CSV
什么是MFA?
多重身份验证 (MFA) 在保护用户帐户方面发挥着至关重要的作用。顾名思义,它使用多种方法来识别授权用户。您可以详细了解什么是 MFA、它的工作原理以及如何使用启用了 MFA 的帐户执行 PowerShell 脚本。
Office 365 硕士学位
为了保护您的 Office 365 环境,您需要为用户和管理员帐户配置 MFA。在深入为租户中的用户设置 MFA 之前,您应该了解各种 MFA 状态。用户帐户可以进行三种设置:
- 已禁用 - 登录不需要 MFA。这是新用户的默认状态。
- 已启用 - 用户已注册多重身份验证,但尚未完成注册过程。他们下次登录时系统将提示完成该过程。
- 强制 - 用户要么已完成注册过程,要么已被管理“强制”使用 MFA。他们必须设置 MFA 才能登录 Office 365 应用程序。
所有用户一开始都是禁用。当您在 Azure MFA 中注册用户时,他们的状态将更改为已启用。当启用的用户登录并完成注册过程后,其状态将更改为强制。
如何使用 PowerShell 检查 Office 365 中是否启用了 MFA?
您可以通过 Office 365 管理中心获取用户及其 MFA 状态的列表,但无法查看其他必要信息,例如 MFA 激活状态、配置的 MFA 方法、默认 MFA 方法、MFA 电话号码、MFA 邮件 ID、许可证状态管理员角色等。使用Powershell,您可以获得所有必要的信息。
注意:如果您想使用图形用户界面 (GUI) 查看所有信息,您可以尝试 AdminDroid 的 Office 365 报告工具。
我们编写了一个 PowerShell 脚本来导出 Office 365 用户的 MFA 状态以及有关用户帐户的许多有用信息。默认情况下,脚本将返回启用并强制执行 MFA 的用户。如果您想列出 MFA 已禁用的用户,则需要使用 -DisabledOnly 参数。
下载脚本:GetMFAStatus.ps1
更新:使用 Microsoft Graph PowerShell 获取 MFA 状态报告
由于“MsOnline”和“AzureAD”PowerShell 模块将于 2022 年之后停用,因此我们编写了一个脚本来使用 Microsoft Graph PowerShell 导出 MFA 状态报告。使用此高级脚本,您可以生成 7 个以上的 MFA 报告,其中包含 10 个以上的用户/MFA 属性。有关详细信息,请参阅:使用 MS Graph PowerShell 导出 MFA 状态报告
脚本亮点:
- 可以根据 MFA 状态过滤结果。 i。即,您可以单独过滤启用 MFA 的用户/强制用户/禁用用户。 例如,使用“EnabledOnly”标志,您应将 Office 365 用户的 MFA 启用状态导出到 CSV 文件。
- 将结果导出到 CSV 文件。
- 可以根据管理员用户过滤结果。
- 您可以过滤结果以单独显示授权用户。
- 您可以根据登录状态(允许/拒绝登录)过滤结果。
- 该脚本根据 MFA 状态生成不同的输出文件。
- 您可以使用此脚本获取条件访问设置的用户 MFA 状态。
- 该脚本可以使用启用 MFA 的帐户执行。
- 使用“管理员角色”列,您可以查找具有不受 MFA 保护的管理员角色的用户。例如,您可以查找没有 MFA 的全局管理员。
- 该脚本调度程序友好。即,凭证可以作为参数传递,而不是保存在脚本内。
导出 MFA 状态报告 - 示例输出:
导出的 MFA 状态报告将类似于以下屏幕截图。
启用 MFA 的用户报告(适用于已启用/强制执行的用户):
启用 MFA 的用户报告具有以下属性:显示名称、用户主体名称、MFA 状态、激活状态、默认 MFA 方法、所有 MFA 方法、MFA 电话、MFA 电子邮件、许可证状态、IsAdmin、管理员角色、登录状态。
MFA 禁用用户报告:
MFA 已禁用的用户报告具有以下属性:显示名称、用户主体名称、部门、MFA 状态、许可证状态、管理员身份、管理员角色、登录状态。
如何使用 PowerShell 获取 MFA 状态报告?
此一体化 PowerShell 脚本允许您生成 10 种不同类型的 Office 365 MFA 状态报告。默认情况下,该脚本将返回启用 MFA 并强制执行的用户报告。
./GetMFAStatus.ps1您可以使用参数/开关来获取更详细的 MFA 状态报告。
如何筛选 Office 365 MFA 报告?
获取有关用户 MFA 启用状态的报告:
作为 Office 365 管理员,您经常会问“如何检查 Office 365 中是否启用了 MFA”?解决方案就在这里。通过使用 -EnabledOnly 参数,您可以将启用 MFA 的用户导出到CSV 文件。
./GetMFAStatus.ps1 -EnabledOnly将 Office 365 用户的 MFA 强制状态报告导出为 CSV:
某些用户可能启用了 MFA,但未强制执行 MFA(注册过程未完成)。您可以使用 -EnforcedOnly param 获取 MFA 强制用户列表。
./GetMFAStatus.ps1 -EnforcedOnly列出没有 MFA 的 Office 365 用户:
MFA 为帐户提供了额外的安全级别。要查看 MFA 禁用的用户,您可以使用 -DisabledOnly 参数运行此脚本。
./GetMFAStatus.ps1 -DisabledOnly通过参考此报告,管理员可以为特定用户或所有用户启用 MFA。
在没有 MFA 的情况下导出 Office 365 管理员:
由于admin账户拥有较多的权限,需要特别注意。根据最近的一项调查,78% 的 Microsoft 365 管理员没有为其帐户激活 MFA。要查找没有多重身份验证的管理员,请使用 -AdminOnly 参数。
./GetMFAStatus.ps1 -AdminOnly -DisabledOnly导出的 MFA 报告列出了不受 MFA 保护的管理员帐户(用户)。通过参考此报告,您可以启用 MFA 以保护管理员帐户。
导出许可用户的 MFA 状态报告
您可以单独获取许可用户的 MFA 状态,而不是为所有用户生成 MFA 状态报告。您可以使用-<LicensedUserOnly 用于获取许可用户的 MFA 状态的参数
- 要查看许可用户的 MFA 激活状态,
./GetMFAStatus.ps1 -LicensedUserOnly- 要查看所有未配置 MFA 的许可用户,
./GetMFAStatus.ps1 -LicensedUserOnly -DisabledOnly根据登录状态导出用户的 MFA 状态
大多数组织将前员工的帐户保持为禁用状态。因此,我们有 - SignInAllowed 参数,根据登录状态过滤结果,
- 查看无需 MFA 即可登录的用户
./GetMFAStatus.ps1 -SignInAllowed $True -DisabledOnly- 要列出使用 MFA 拒绝登录的用户,
./GetMFAStatus.ps1 -SignInAllowed $False注意:
您可以同时使用多个过滤器来获取更精细的 MFA 状态报告。例如,
- 您可以获取登录状态被拒绝的已启用 MFA 状态的用户的列表。
./GetMFAStatus.ps1 -EnabledOnly -SignInAllowed $False- 您可以获取已禁用 MFA 且登录状态为允许的管理员用户的列表。
./GetMFAStatus.ps1 -DisabledOnly -AdminOnly -SignInAllowed $True如何安排 MFA 状态报告?
您可以通过在任务计划程序中计划 PowerShell 脚本来定期获取 MFA 状态报告。您可以通过明确提及凭据来安排此脚本,如下所示:
<Script Location>\.GetMFAStatus.ps1 -UserName <UserName> -Password <Password>
要了解有关调度 PowerShell 脚本的更多信息,请参阅我们的博客:使用任务计划程序调度 PowerShell 脚本。
获取更详细的 Office 365 MFA 报告:
您是否厌倦了手动执行脚本并将结果发送到电子邮件?如果是,我建议您尝试 AdminDroid Office 365 报告工具。
AdminDroid 有专用的 MFA 仪表板和更详细的 MFA 报告。您可以安排它们并将报告发送到首选电子邮件地址。此外,您可以在任何列上应用过滤器以仅查看所需的信息。 MFA 报告包括,
- MFA 激活用户 - 列出已在其帐户上激活 MFA 的所有用户。
- 具有 MFA 的用户 - 列出在其帐户中启用了 MFA 的所有用户
- 未启用 MFA 的用户 - 列出帐户中未启用 MFA 的所有用户。
- 启用 MFA 的用户 - 列出在其帐户上启用了 MFA 的所有用户
- MFA 强制用户 - 列出在其帐户上强制执行 MFA 的所有用户。
- MFA 未激活用户 - 列出已启用 MFA 但尚未激活的用户。
- MFA 设备详细信息 - 列出用户用于通过 MFA 进行身份验证的设备详细信息。
- MFA 用户详细信息 - 提供有关各个用户的 MFA 设置的信息。
- 使用 MFA 的条件访问策略 - 列出 MFA 配置的 CA 策略。
- 启用 MFA 的 CA 策略:条件详细信息 - 提供与启用 MFA 的 CA 策略关联的条件的概述。
- 基于 CA 策略的 MFA 包含/排除的用户 - 提供有关基于 CA 策略的 MFA 包含和排除的用户的详细信息。
此外,AdminDroid 提供超过120 多个免费报告和一些仪表板。它包括有关用户、许可证、组、组成员、设备、登录活动、密码更改、许可证更改等的报告。您可以进行定制、安排和导出。您可以下载免费的 Azure AD 报告器,看看它如何为您提供帮助。
此外,AdminDroid 在各种 Office 365 服务(例如 Azure AD、Exchange Online、SharePoint Online、 Microsoft Teams 等。对于您的 Office 365 报告和审核需求,您可以尝试 AdminDroid 的 Microsoft 365 报告工具,看看它如何为您提供帮助。
我们希望这篇文章对您有所帮助。如果您修改脚本并将其用于其他用例,请在评论部分留下您的想法并帮助更多管理员。



