使用 PowerShell 导出 Microsoft 365 来宾用户的上次登录时间报告
跟踪 Microsoft 365 租户中的来宾用户活动对于安全和访问管理至关重要。了解访客用户上次登录的时间有助于识别不活动的帐户和潜在的安全风险。虽然 Microsoft 365 没有提供直接导出来宾用户上次登录时间的方法,但我们开发了一个用户友好的 PowerShell 脚本。
但在深入研究脚本之前,首先让我们探索现有的可用本机方法,这些方法可用于识别来宾用户的上次登录时间。
如何识别 Microsoft 365 访客用户的上次登录时间?
以下是在 Microsoft 365 中检查来宾用户上次登录时间的一些方法。
Microsoft Entra 管理中心 - 登录 Microsoft Entra 管理中心并导航至身份 -> 监控和运行状况 -> 登录-在日志中。现在,点击“添加过滤器”并选择用户类型过滤器。然后,您选择访客来检索访客用户的登录历史记录。但您将无法直接找到访客用户的上次登录时间。另请注意,Entra ID 登录日志仅保留最近 30 天的数据。
统一审核日志 - 统一审核日志可通过“Search-UnifiedAuditLog”访问,提供 Microsoft 365 用户过去 90 天的登录历史记录。然而,对所有这些审核记录进行排序以识别来宾用户的上次登录时间可能有点麻烦。
Graph PowerShell - 要使用 MS Graph PowerShell 检查 Office 365 来宾用户的上次登录时间,请执行以下 cmdlet。在此之前,请确保连接到 Microsoft Graph PowerShell。
Get-MgUser -All -Filter "UserType eq 'Guest'" -Property SignInActivity | Select-Object userprincipalname -ExpandProperty SignInActivity | Format-List借助 Get-MgUser cmdlet,您可以检索 Microsoft 365 来宾用户的上次登录时间。而且,如果您想探索在 Microsoft 365 中管理来宾用户的快速方法,请查看有关使用 PowerShell 管理 Microsoft 365 来宾用户的博客。
虽然 PowerShell 简化了来宾用户上次登录时间的检索,但计算非活动天数需要额外的处理,这可能非常耗时。
为了减轻 Microsoft 365 管理员的工作量,我们制作了一个 PowerShell 脚本,可以以秒为单位导出 Microsoft 365 来宾用户的上次登录时间!
下载脚本:M365GuestsLastLoginTimeReport
脚本亮点:
- 该脚本使用 MS Graph PowerShell,并在您确认后安装 MS Graph PowerShell SDK(如果尚未安装)。
- 该脚本也可以使用启用 MFA 的帐户执行。
- 帮助根据非活动天数生成报告。
- 提供有关交互式/非交互式登录的详细信息。
- 结果可以过滤到列表从未登录单独的客人。
- 单独为启用登录的用户生成报告。
- 将报告结果导出为 CSV 文件。
- 支持单独过滤许可用户。
- 该脚本调度程序友好。
- 它也可以通过基于证书的身份验证 (CBA) 来执行。
Microsoft 365 来宾用户的上次登录时间报告 - 示例输出
该脚本将 Microsoft 365 来宾用户的上次登录时间导出为 CSV,具有以下属性:
- 用户主体名称
- 创建日期
- 上次互动登录日期
- 上次非交互式登录日期
- 基于交互式登录的非活跃天数
- 基于非交互式登录的非活跃天数
- 刷新令牌有效期自
- 上次成功登录时间
- 许可证详情
- 帐户状态
- 部门
- 职称
导出的 Microsoft 365 来宾用户的上次登录时间报告如下图所示。
Microsoft 365 来宾用户的上次登录报告 - 脚本执行步骤:
- 下载脚本。
- 启动 Windows PowerShell。
- 选择提供的任何方法来执行脚本。
方法 1:您可以使用 MFA 和非 MFA 帐户运行脚本。
./M365GuestsLastLoginTimeReport.ps1提供的示例使您能够将访客用户的上次登录时间导出到 CSV 文件中。
方法 2:您还可以选择使用基于证书的身份验证来运行脚本,这对于调度程序是友好的。当您想要无人值守运行脚本时,可以选择此方法。
要使用证书,您必须在 Microsoft Entra 中注册应用程序并使用证书连接到 MS Graph。
./M365GuestsLastLoginTimeReport.ps1 -TenantId <TenantId> -ClientId <ClientId> -CertificateThumbprint <Certthumbprint>注意 - 根据您的要求,您可以创建自签名证书。在采用基于证书的身份验证之前,在 Azure AD 中注册应用程序至关重要。
充分利用 Microsoft 365 来宾用户的上次登录脚本
该脚本根据您的需要提供了一些内置的过滤参数,下面列出了其用例。
- 获取所有 M365 访客用户的上次登录时间
- 查找 M365 非活动访客用户的上次登录时间
- 基于非交互式登录导出 M365 访客用户的上次登录时间
- 跟踪获得许可的访客用户及其上次登录时间
- 查看启用/禁用登录的访客用户的上次登录时间
- 使用 PowerShell 导出从未登录的来宾用户
- 安排 M365 访客用户的上次登录时间报告
获取所有M365访客用户的上次登录时间
要查看所有 Microsoft 365 来宾用户的上次登录时间,请运行以下脚本。
./M365GuestsLastLoginTimeReport.ps1上述代码将导出组织中所有访客用户的上次登录时间。同样,检索总体用户的上次登录时间至关重要,从而识别组织中的 Microsoft 365 非活动用户。
查找 M365 非活动访客用户的上次登录时间
通过识别长时间未登录的访客用户,管理员可以立即停用这些帐户以防止未经授权的访问,从而降低安全风险。要根据访客用户的不活动时间段确定其上次登录时间,请运行脚本并使用 -InactiveDays 参数指定不活动天数。
./M365GuestsLastLoginTimeReport.ps1 -InactiveDays 90导出的报告包含已连续 90 天处于非活动状态的来宾用户上次登录时间的列表。此外,您还可以灵活地自定义生成非活动访客用户报告的天数,无论是 30 天、180 天还是任何其他指定的时间段。
基于非交互式登录导出 M365 访客用户的上次登录时间
非交互式登录通过使用令牌或代码进行访问来绕过直接用户交互。它们对于自动化任务和后端流程非常方便。在确定访客用户的上次登录时间时,包括他们的非交互式登录非常重要。为此,请使用 -InactiveDays_NonInteractive 参数运行脚本,后跟所需的非活动天数。
./M365GuestsLastLoginTimeReport.ps1 -InactiveDays_NonInteractive 90导出的报告包含 90 天内未执行非交互式登录的访客用户的列表。
跟踪许可的访客用户及其上次登录时间
发现当前不活动的许可来宾用户,以便有效管理组织的许可证。要检索来宾用户上次使用许可证登录的时间,请与 -LicensedUsersOnly 开关参数一起执行脚本。
./M365GuestsLastLoginTimeReport.ps1 -LicensedUsersOnly生成的报告包含所有获得许可的访客用户及其上次登录时间。
查看启用/禁用登录的访客用户的上次登录时间
在许多组织中,禁用用户帐户是 Microsoft 365 员工离职期间维护安全性的标准做法。因此,无需跟踪禁用来宾帐户的上次登录时间。要仅分析已启用登录的来宾用户的上次登录时间,请使用 -EnabledUsersOnly 开关参数运行脚本。
./M365GuestsLastLoginTimeReport.ps1 -EnabledUsersOnly
此代码将仅检索已启用的来宾帐户的最后登录活动,因此您不必检查已禁用的来宾帐户。
如果您想要获取禁用登录的来宾用户的上次登录活动,请与 -DisabledUsersOnly 开关参数一起运行脚本。禁用的用户无法登录或使用与其帐户关联的许可服务。
./M365GuestsLastLoginTimeReport.ps1 -DisabledUsersOnly此导出的报告将包含禁用的来宾帐户的上次登录活动。
使用 PowerShell 导出从未登录的来宾用户
要导出从未登录的来宾用户报告,请使用 -ReturnNeverLoggedInUser 开关运行脚本。 使用此报告,您可以识别组织内不活动的访客用户帐户。
./M365GuestsLastLoginTimeReport.ps1 -ReturnNeverLoggedInUser注意 - 通过访问审核日志,您可以跟踪从未登录过的用户帐户的创建者,以识别和删除未使用的帐户。
安排 M365 访客用户的上次登录时间报告
我们的脚本对调度程序友好。它可以通过基于证书的身份验证(也称为仅应用程序访问)来完成。要按计划任务运行脚本,您可以使用 Windows 任务计划程序。
./M365GuestsLastLoginTimeReport.ps1 -TenantId <TenantId> -ClientId <ClientId> -CertificateThumbprint <Certthumbprint>管理员还可以使用 Azure 自动化安排 PowerShell 脚本,以有效简化重复性任务。
使用 AdminDroid 轻松跟踪 Microsoft 365 来宾用户活动
在 Microsoft 365 中处理来宾用户可能会很麻烦,尤其是当您仅限于 PowerShell 和 Azure 门户时。但不要害怕! AdminDroid 让您的生活更轻松。凭借其用户友好的界面和强大的功能,AdminDroid 简化了访客用户的管理,让您轻松简化整个流程。
了解 AdminDroid 提供的全面的访客用户报告,从而实现有效管理并促进无缝协作:
来宾用户信息报告
- 外部访客用户
- 内部访客用户
- 最近创建/删除的访客用户
- SharePoint 来宾用户
- 按外部用户计数分组
来宾用户会员报告
- 来宾用户组成员资格
- 与嘉宾会员的频道/私人频道
- 添加/删除到 SharePoint 组的来宾成员
- 共享给来宾用户的站点邀请
来宾用户审核
- 所有外部和内部访客用户登录
- 访客用户上次登录时间
- 审核来宾创建、删除和更新
- 从组中添加/删除外部成员
- Teams 外部用户登录活动
- 用户登录外部组织
来宾用户的文件/文件夹/页面活动
- 与来宾用户共享的文件
- 来宾用户访问文件/页面
- 团队中来宾用户的文件/文件夹共享
访客邮箱权限报告
- 有权访问其他邮箱的访客用户
- 访客用户访问的邮箱
除此之外,AdminDroid 还提供报告板,这是所有报告的大中心,整齐地组织成不同的类别,例如非活动用户、管理员、M365 使用情况和外部用户。它非常方便,因为管理员可以快速一次性获取一堆报告。 如果您对 Microsoft 365 来宾用户特别感兴趣,可以查看在报告板安全部分的外部用户类别下,有 30 多个专门为他们提供的报告。
AdminDroid 完全免费提供120 多个报告和仪表板。它包括有关用户、许可证、组、组成员、设备、登录活动、密码更改、许可证更改等的报告。免费的 Azure AD Reporter 版本在自定义、计划和导出等报告功能方面没有任何限制。
此外,AdminDroid 还提供1800 多个预构建报告和30 多个智能仪表板,让您一目了然地了解您的 Office 365 环境。该工具提供有关 Office 365 报告、审核、分析、使用统计、安全性和合规性的报告,以及有关关键 M365 活动的警报。下载 AdminDroid Microsoft 365 报告软件,看看它如何为您提供帮助。
我希望此博客将帮助您管理和报告来宾用户在组织中的上次登录时间。如果您有任何疑问,请通过评论部分与我们联系。


