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

[玩转系统] 使用 MS Graph PowerShell 导出 Microsoft 365 非活动用户报告

作者:精品下载站 日期:2024-12-14 08:36:40 浏览:14 分类:玩电脑

使用 MS Graph PowerShell 导出 Microsoft 365 非活动用户报告


Microsoft 365 管理员经常检查上次登录时间以生成非活动用户报告。该报告在有效管理用户帐户、优化许可证、增强安全性和满足合规性要求方面发挥着至关重要的作用。那么,让我们看看如何检查 Microsoft 365 组织中的非活动用户。

如何识别 Microsoft 365 中的非活动用户?

由于“Get-MsolUser”或“Get-AzureADUser”cmdlet 不提供用户的上次登录时间信息,因此管理员通常会采用不同的方法来识别不活动的用户用户。

  1. 广泛使用的方法:
    它涉及使用“Get-MailboxStatistics”cmdlet 来检索不活动的 Exchange 邮箱。然而,人们经常提到从“Get-MailboxStatistics”获取的上次登录时间不准确。
  2. Microsoft 365 管理中心:
    检查 Microsoft 365 管理中心“活动用户”下可用的“上次登录”属性。但它需要手动单击每个用户才能查看他们的上次登录日期。
  3. Azure AD 登录日志:
    Azure AD 登录日志和 Get-AzureADAuditSignInLogs 提供用户的登录详细信息,但仅限于最近 30 天。
  4. 统一审核日志:
    “Search-UnifiedAuditLog”提供 Microsoft 365 用户长达 90 天的登录历史记录。然而,它涉及处理大量的审计记录,使其成为一项繁琐的任务。

您是否发现自己正在担心如何最简单、最准确地检索上次登录日期?幸运的是,有一个解决方案。

使用 MS Graph PowerShell 获取 Microsoft 365 用户的上次登录时间:

借助 Get-MgUser cmdlet,您可以检索 Microsoft 365 用户的上次登录时间。

Get-MgUser -Userid <id> -Property SigninActivity | select -ExpandProperty SigninActivity

上述 cmdlet 将检索用户上次登录的详细信息。但是,此过程需要额外的处理来计算不活动天数,这可能非常耗时。

为了减轻 Office 365 管理员的负担,我开发了一个 PowerShell 脚本,可以生成带有实时用例的 10 多个非活动用户报告。那么,让我们深入探讨这个有效的解决方案!

下载脚本:GetM365InactiveUserReport

脚本亮点:

  1. 通过单个脚本,您可以生成 10 多个不同的非活动用户报告
  2. 该脚本也可以使用启用 MFA 的帐户执行。
  3. 该脚本支持基于证书的身份验证 (CBA)。
  4. 还提供有关非交互式登录的详细信息。
  5. 您可以根据非活动天数生成报告。
  6. 帮助单独过滤从未登录过的用户。
  7. 单独为启用登录的用户生成报告。
  8. 支持单独过滤授权用户
  9. 获取非活动外部用户报告。
  10. 将结果导出到 CSV 文件。
  11. 分配的许可证列将向您显示用户友好名称,例如“Office 365 Enterprise E3”而不是“ENTERPRISEPACK”。
  12. 在您确认后自动安装 MS Graph PowerShell 模块(如果尚未安装)。
  13. 该脚本调度程序友好

Microsoft 365 非活动用户报告 - 示例输出:

导出的 Office 365 上次登录报告(又名非活动用户报告)包含以下属性。

  • 用户主体名称
  • 用户创建日期和时间
  • 上次互动登录时间
  • 基于交互式登录的非活跃天数
  • 上次非交互式登录时间
  • 基于非交互式登录日期的非活动天数
  • 刷新令牌有效期自
  • 员工ID
  • 分配的许可证详细信息
  • 帐户状态(即登录状态)
  • 部门
  • 职称

导出的 Microsoft 365 非活动用户报告与下面的屏幕截图类似。

[玩转系统] 使用 MS Graph PowerShell 导出 Microsoft 365 非活动用户报告

注意:通过访问审核日志,您可以跟踪从未登录过的用户帐户的创建者,以识别和删除未使用的帐户。

Microsoft 365 非活动用户报告 - 脚本执行方法:

您可以根据您的需求选择以下任意一种方式。
方法1:使用管理员帐户导出非活动用户报告:
当您想要使用管理员帐户生成上次登录时间报告时,可以选择此方法。它支持 MFA 和非 MFA 帐户。

.\GetM365InactiveUserReport.ps1

方法2:使用证书安排 Microsoft 365 非活动用户报告:

当您想要无人值守运行脚本时,可以选择此方法。要使用证书,必须在 Azure AD 中注册应用程序并使用证书连接到 MS Graph。

.\GetM365InactiveUserReport.ps1 -TenantId <TenantId> -ClientId <ClientId> -CertificateThumbprint <Certthumbprint>

您可以使用 CA 证书或创建自签名 SSL 证书。大多数管理员更喜欢将自签名证书供内部使用。

探索脚本的全部功能:

该脚本支持内置筛选器来生成 10 多个 Office 365 上次登录报告。您可以将多个筛选器组合在一起以获得更精细的报告。我在下面列出了一些主要用例。

  • 列出所有 Azure AD 用户及其上次登录日期和时间。
  • 根据不活跃天数获取不活跃用户报告(例如,90 天的不活跃用户)
  • 根据非交互式登录天数查找不活跃用户
  • 获取已分配许可证的非活动用户列表
  • 查看启用登录的用户的上次登录日期
  • 识别 Microsoft 365 中从未登录的用户
  • 检查外部用户的上次登录日期
  • 查找处于禁用状态的 Office 365 许可用户
  • 获取登录被阻止的外部用户
  • 在 Microsoft 365 中获取具有特定许可证的非活动用户
  • 调度程序非活动用户报告

1.获取所有用户的 Azure AD 上次登录日期报告:

要列出所有 Azure AD 用户及其上次登录活动,请运行以下脚本。

.\GetM365InactiveUserReport.ps1

使用此上次登录报告,管理员可以识别其组织中的非活动用户并删除其许可证或删除他们根据其组织的政策。

2.根据非活动天数导出 Office 365 非活动用户报告:

管理员经常想知道自用户登录 Office 365 以来已经过了多少天。如果您是其中之一他们,这对你会有帮助。要根据不活动天数检索不活动用户,请通过在 -InactiveDays 参数中传递不活动天数来执行脚本。

.\GetM365InactiveUserReport.ps1 -InactiveDays 90

导出的报告包含 90 天内不活动的用户的列表。此外,您还可以灵活地自定义生成非活动用户报告的天数,无论是 30 天、180 天还是任何其他指定的时间段。

3.根据非交互式登录查找不活跃用户:

非交互式登录不需要用户交互或身份验证因素。相反,设备或客户端应用使用令牌或代码来代表用户验证或访问资源.非交互式登录通常用于不需要用户参与的自动化任务和后端流程。
在识别不活动用户时,建议也考虑他们的非交互式登录。

为此,请使用 -InactiveDays_NonInteractive 参数执行脚本,后跟所需的非活动天数。例如:

.\GetM365InactiveUserReport.ps1 InactiveDays_NonInteractive 90

或者,您可以结合 -InactiveDays参数并运行脚本来获取Azure AD非活动用户,包括交互式和非交互式用户登录:

.\GetM365InactiveUserReport.ps1 -InactiveDays 90 -InactiveDays_NonInteractive 90

生成的报告将显示未执行任何登录(包括非交互式登录)的非活动用户。

4.获取已分配许可证的非活动用户列表:

通过识别获得许可的非活跃用户,您可以回收这些许可证并将其分配给活跃用户或避免不必要的许可证费用。大多数管理员更喜欢这种技术来进行 M365 许可证优化。

要为非活动用户获取许可证,请使用 -LicensedUsersOnly 开关参数运行 PowerShell 脚本。

.\GetM365InactiveUserReport.ps1 -LicensedUsersOnly

导出的报告包含所有许可用户及其非活动天数。您还可以结合 -InactiveDays 参数来获取在指定天数内不活动的许可用户的列表。这样可以根据用户的活动状态进行更有针对性的分析和识别。

.\GetM365InactiveUserReport.ps1 -LicensedUsersOnly -InactiveDays 180

该报告列出了过去 180 天内没有进行过任何登录活动的许可用户,使管理员能够根据需要识别并可能删除许可证。

5.查看已启用登录的用户的上次登录日期:

大多数组织都会在员工离职流程中禁用用户帐户,以防止他们登录 Microsoft 365 帐户。因此,无需分析禁用用户的上次登录时间.为了解决这个问题,我们实施了一个解决方案。通过使用-EnabledUsersOnly 开关参数,您可以导出并分析仅启用的用户的最后登录日期用户。

要利用此功能,只需运行以下格式的脚本:

.\GetM365InactiveUserReport.ps1 -EnabledUsersOnly

上述格式将提供所有已启用用户的上次登录活动,使您可以专注于相关数据,而不包括已禁用登录的用户帐户。

6.查找从未登录过Office 365的Azure AD用户:

在 Office 365 中,如果提前为新员工配置帐户或在没有适当的员工入职程序的情况下创建多个帐户,则会创建从未登录的用户。这些从未登录的用户帐户可能会带来重大安全风险,因为其中许多帐户可能具有默认值或弱密码。

因此,识别并解决这些帐户对于确保 Microsoft 365 组织的整体安全至关重要。要查找从未登录过的 Azure Active Directory 用户,请使用 -ReturnNeverLoggedInUsers 开关参数运行脚本。

.\GetM365InactiveUserReport.ps1 -ReturnNeverLoggedInUser

注意:在确定从未登录的用户时请考虑帐户创建日期。

7.检查外部用户的上次登录日期:

过时的外部帐户可能会带来安全风险,并成为未经授权的访问或帐户泄露的目标。此外,监控外部用户的上次登录活动有助于识别任何可疑或未经授权的访问尝试。

要查看外部用户及其上次登录详细信息,请使用 -ExternalUsersOnly 开关参数执行脚本。

.\GetM365InactiveUserReport.ps1 -ExternalUsersOnly

此报告有助于清理过时的帐户。如果您需要缩小非活动外部帐户的列表范围基于特定天数的用户,您可以在执行脚本时包含 -InactiveDays 参数。

.\GetM365InactiveUserReport.ps1 -ExternalUsersOnly -InactiveDays 180

此非活动外部用户报告包含过去 180 天内未登录的访客帐户。通过查看此报告,您可以根据组织的策略禁用或删除不活动的外部用户。

8.查找处于禁用状态的 Office 365 许可用户:

当员工离开组织、临时帐户暂停或出于管理原因时,管理员会禁用用户帐户。在禁用状态下,用户无法登录并使用与其关联的许可服务帐户。

识别处于禁用状态的 Office 365 许可用户对于管理用户帐户、许可证分配和整体安全性非常重要。要查找具有有效许可证分配的禁用用户,请运行以下脚本。

.\GetM365InactiveUserReport.ps1 -LicensedUsersOnly -DisabledUsersOnly

导出的报告显示具有有效许可证的禁用用户。该报告可用于撤销非活动用户的许可证。

9.使用 PowerShell 获取登录被阻止的外部用户:

有时,管理员在与组织的协作结束时可能会选择禁用外部用户帐户。因此,检查这些外部账户的状态对于更好的外部用户管理至关重要。管理员可以根据组织政策和数据保留要求删除已禁用的外部用户帐户

要查看禁用的外部用户,请运行以下脚本。

.\GetM365InactiveUserReport.ps1 -ExternalUsersOnly -DisabledUsersOnly

您还可以包含 -LicensedUsersOnly 参数来过滤掉获得许可的外部用户并从中删除许可证。

10.获取具有特定许可证类型的非活动用户:

获取具有特定许可证的 Office 365 非活动用户列表可能有利于优化许可证分配和成本管理。通过识别未主动使用分配的许可证的用户,管理员可以考虑将其计划从高成本许可证切换到成本较低的许可证,或者完全删除其许可证。

例如,要查找具有 E3 许可证的非活动用户,请在 Excel 中打开生成的报告,并使用“Microsoft 365 EnterpriseE3”筛选“许可证详细信息”列。这将显示已分配 E3 许可证的用户列表。

11.安排 Microsoft 365 非活动用户报告:

管理员可以利用任务计划程序将 PowerShell 脚本作为计划任务执行,利用基于证书的身份验证无缝执行,无需用户交互。这样可以自动定期生成“非活跃用户报告”。

.\GetM365InactiveUserReport.ps1 -TenantId <TenantId> -ClientId <ClientId> -CertificateThumbprint <Certthumbprint>

使用 AdminDroid 的非活动用户报告优化用户管理:

管理员通常需要根据服务使用情况(例如 Exchange Online、SharePoint 或 Teams)来识别不活动用户。他们还考虑应用程序的使用情况,特别是针对不使用桌面应用程序的用户。这种粒度级别可以实现高效的许可证管理并降低成本。然而,通过本机方法收集这些信息可能具有挑战性且耗时。 AdminDroid Microsoft 365 报告工具可以提供全面的报告,使管理员能够根据服务和应用程序的使用情况轻松识别不活动的用户。

AdminDroid 提供40 多个报告来确定用户的不活动情况。这包括,

    • 交换不活跃用户

      • 按上次发送、阅读和接收邮件的时间
  • 截至上次活动时间
  • 按上次登录时间
  • SharePoint 非活动用户

    • 按上次访问的文件和同步时间
  • 按上次内部和外部文件共享
  • 按上次访问页面的时间
  • 按上次 SharePoint 活动时间
  • 团队非活跃用户

    • 通过上次团队聊天和发送的私人消息
  • 按上次通话和会议活动
  • 按上次 Team 活动
  • OneDrive 非活跃用户

    • 按上次访问的文件和同步时间
  • 按上次内部和外部文件共享
  • 按上次访问页面的时间
  • Yammer 非活动用户

    • 截至上次收到喜欢
  • 截至上次发布的帖子和阅读时间
  • 截至上次 Yammer 活动时间
  • 非活跃用户概览报告

    • 每个 O365 服务的非活跃用户报告
  • 基于城市、州、县、浏览器、设备操作系统等的上次登录时间报告。
  • 基于邮箱应用程序使用情况的非活动邮箱(Outlook for Mac/Windows、OWA、Outlook for mobile 等)
  • [玩转系统] 使用 MS Graph PowerShell 导出 Microsoft 365 非活动用户报告

    AdminDroid 引入了非活动用户报告板,这是一种集中式解决方案(40 多个非活动用户报告),可简化对所有 Microsoft 365 服务中用户非活动情况的监控。

    [玩转系统] 使用 MS Graph PowerShell 导出 Microsoft 365 非活动用户报告

    AdminDroid 提供有关 Microsoft 365 使用和采用的全面详细信息,从而提高资源效率并有效管理不活跃用户。

    [玩转系统] 使用 MS Graph PowerShell 导出 Microsoft 365 非活动用户报告

    此外,AdminDroid 还提供广泛的功能,包括1800 多个预构建报告30 多个 Office 365 仪表板。这些报告提供全面的见解,涵盖报告、审计、分析、使用统计、安全性和合规性等领域。

    此外,AdminDroid 还提供免费的 Azure AD 报告工具,其中包括涵盖各种类别的 120 多个报告和仪表板。这些报告具有导出、通过电子邮件发送报告和计划等功能。

    立即下载 AdminDroid Microsoft 365 管理工具,体验简化管理的强大功能!

    我希望这个博客能帮助您有效地管理不活跃的用户。如果您有任何疑问,可以通过评论部分联系我们。

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

    取消回复欢迎 发表评论:

    关灯