网站搜索

将 Office 365 用户真实上次登录时间报告导出为 CSV


从 Get-MailboxStatistics 检索的 LastLogonTime 并不准确,但大多数管理员/脚本使用它来识别非活动邮箱。

现在,我看到大多数论坛都有诸如“为什么 Get-MailboxStatistics cmdlet 报告的上次登录日期不正确”、“某些用户的问题”等问题。邮箱具有最近的上次登录日期/时间,即使该帐户几个月前已被阻止/禁用”。

为了解决这个问题,我们编写了PowerShell脚本来获取用户的真实上次登录时间(基于用户的上次活动时间)。在此脚本中,我们使用邮箱的 LastUserActionTime 而不是 LastLogonTIme 来识别用户的上次活动。在进入脚本之前,让我们看看为什么我们不应该信任 LastLogonTime 属性。

为什么使用 Get-MailboxStatistics 获取 Office 365 用户上次登录时间是不好的做法?

Get-MailboxStatistics PowerShell cmdlet 在获取 Office 365 用户的上次登录时间方面非常受欢迎。目前,许多 PowerShell 脚本使用 Get-MailboxStatistics cmdlet 导出的 LastLogonTime 不准确。以下是您在使用 LastLogonTime 时应牢记的一些关键事项

  • 邮箱的上次登录时间不准确,因为从 Get-MailboxStatistics 检索的 LastLogonTime 不仅反映了用户的上次登录时间,而且还反映了用户的上次登录时间。进程访问邮箱。
  • Microsoft Exchange 邮箱助手对服务器上邮箱数据库中的邮箱执行后台处理。即使邮箱所有者忽略了邮箱,它也会继续处理它们。因此,上次登录时间通常意味着助理上次访问邮箱的时间。

大多数人没有意识到LastLogonTime提供了不准确的数据来识别邮箱的不活动状态。

获取LastLogonTime的解决方案

由于LastLogonTime还给出了邮箱助手上次访问邮箱的时间,因此我们应该选择其他一些属性来显示上次“真实”时间用户访问了邮箱。

终于,许多人都在等待的改变。

现在是LastUserActionTime。是的,使用 LastUserActionTime 获取 Office 365 邮箱用户的上次活动是最佳解决方案。

还是不清楚?请参阅关于为什么 Get-MailboxStatistics 报告的 Office 365 用户上次登录时间不准确的专门博客文章。

注意:如果您不想限制 Exchange 中的最后一个活动,您可以使用 Get-MgUser cmdlet 检索非活动 Microsoft 365 用户的详细信息。

使用 PowerShell 导出 Office 365 用户的真实上次登录时间(上次活动时间)报告

如果您在线搜索如何获取 Office 365 用户上次登录时间,您将得到大量不准确且具有误导性的结果。修复脚本是最好的事情,但如果您不是程序员或不熟悉 PowerShell,您可能会发现获取用户真实的上次登录时间有点困难。这就是我们的切入点。我们编写了一个 PowerShell 脚本来导出 Office 365 用户的上次活动时间(实际上次登录时间)报告。

脚本亮点:

  • 根据用户上次操作时间(LastUserActionTime)报告用户的活动时间。
  • 将结果导出到 CSV 文件。
  • 可以根据非活动天数过滤结果。
  • 您可以根据用户/邮箱类型过滤结果。
  • 可以将结果过滤到单独列出从未登录过邮箱的列表。
  • 您可以根据许可用户过滤结果。
  • 显示 Office 365 中用户管理角色的结果。
  • 分配的许可证列将向您显示用户友好名称,例如“Office 365 Enterprise E3”而不是“ENTERPRISEPACK”。
  • 可以使用启用 MFA 的帐户执行该脚本。
  • 该脚本调度程序友好。即,凭据可以作为参数传递,而不是保存在脚本内。

下载脚本:UserLastActivityTimeReport

示例输出:

我们之前的博客中提供了先决条件和脚本执行步骤。请参考博客。

导出的报告将类似于下面的屏幕截图。

释放此脚本的全部潜力

此脚本有许多内置参数,可根据您的要求过滤/自定义报告。我们在下面列出了一些主要用例。

根据非活动天数导出 Office 365 非活动邮箱

要获取非活动邮箱,您可以使用-InactiveDaysparam 将返回在给定天数内不活动的邮箱。它还会将非活动邮箱导出到 CSV 文件。

./UserLastActivityTimeReport.ps1 -InactiveDays 50

使用此参数,您可以获得超过“N”天不活动的邮箱列表。

将 Office 365 用户邮箱上次活动时间导出为 CSV:

通常您会遇到仅获取用户邮箱的上次登录时间报告并排除其他类型(如共享邮箱、房间邮箱等)的情况。在这种情况下,您可以使用-UserMailboxOnly< i>param,在结果中单独返回用户邮箱。

./UserLastActivityTimeReport.ps1 -UserMailboxOnly

将从未登录的 Office 365 用户导出到 CSV:

使用以下命令运行脚本-ReturnNeverLoggedInMBOnly参数用于单独获取从未登录过的邮箱。使用此报告,您可以识别空闲/未使用的邮箱并继续进行许可证协调。因此,您最终可以节省更多许可证!

./UserLastActivityTimeReport.ps1 -ReturnNeverLoggedInMBOnly

将非活动许可用户导出到 CSV:

要获取非活动许可用户列表,您可以使用 -LicensedUsersOnly 参数。使用此报告,您可以从非活动用户那里重新获得许可证。

./UserLastActivityTimeReport.ps1 -LicensedUsersOnly

导出用户列表的上次登录时间:

您可以使用 -MBNamesFile 参数从名为“MBIdentity.txt”的输入列表中获取邮箱的上次活动,并将上次活动导出到 CSV 中。

要获取用户邮箱的真实最后活动,请传递带有邮箱名称/别名/可分辨名称/规范 DN/电子邮件地址/UPN/SamAccountName 或 GUID 的输入文件。

./UserLastActivityTimeReport.ps1 -MBNamesFile C:/MBIdentity.txt

MBNamesFile 必须遵循以下格式:邮箱标识由换行符分隔,不带标题。

将 Office 365 邮箱导出为 CSV

您可以导出具有分配许可证、管理角色、上次登录时间等属性的 Office 365 邮箱。要导出 Office 365 邮箱报告,请执行不带任何参数的脚本。这将导出 Office 365 租户中的所有邮箱。

./UserLastActivityTimeReport.ps1

以用户友好的时间导出 Office 365 非活动邮箱

如果您想查看用户上次操作时间(例如 2 分钟前、3 小时前、3 天前),您可以使用< span style="color: #808080;"> -FriendlyTime 参数。如果您使用此参数,它将安装 PowerShell Humanizer 模块(如果尚未安装该模块)。

./UserLastActivityTimeReport.ps1 -FriendlyTime

获取更详细的报告

您可以同时使用多个滤镜 更精细的上次登录时间报告。例如,您可以生成超过 90 天不活动的许可用户列表。

./UserLastActivityTimeReport.ps1 -LicensedUserOnly -InactiveDays 90

使用 MFA 执行“Office 365 用户的真实上次登录时间报告”

要使用启用了 MFA 的帐户执行脚本,

./UserLastActivityTimeReport.ps1

要详细了解如何将 Exchange Online PowerShell 与 MFA 连接,请参阅我们的博客:将 Exchange Online PowerShell 与 MFA 连接。

要使用非 MFA 帐户执行脚本(它将提示输入凭据一次。使用该凭据,脚本将创建 AzureAD 和 EXO PowerShell 会话),请使用 -NoMFA 开关参数运行脚本。

./UserLastActivityTimeReport.ps1 -NoMFA

安排“Office 365 用户的真实上次登录时间 PowerShell 脚本”

您可以通过明确提及凭据来在任务计划程序中安排此脚本。

<Script Location>\./UserLastActivityTimeReport.ps1 -UserName <UserName> -Password <Password> -NoMFA

要了解有关调度 Powershell 脚本的更多信息,请参阅我们的博客:使用任务计划程序调度 PowerShell 脚本。

注意:

LastUserActionTime 不显示最新数据。会有一些延迟,例如一两天。您可以参考LastUserActionUpdateTime,它指示LastUserActionTime的更新时间。

获取更详细的用户上次活动日期报告:

如果您想根据不活跃用户的情况了解他们,

  • 上次登录时间
  • 最后活动时间
  • 最后阅读的邮件
  • 最后发送的邮件
  • 最后收到邮件的日期
  • 交换不活跃用户
  • 根据上次团队活动日期显示团队不活跃用户
  • 基于 SharePoint 活动的 SharePoint 非活动用户
  • OneDrive 非活跃用户
  • Skype 不活跃用户
  • Yammer 非活动用户

我建议您尝试 AdminDroid Microsoft 365 报告和审核工具。

此外,AdminDroid 还提供1500+ 预构建报告和 20 个具有视觉吸引力的智能仪表板,让您一目了然地了解您的 Office 365 环境。该工具提供有关 Office 365 报告、审计、分析、使用统计、安全性和合规性等的报告。

此外,AdminDroid 完全免费提供 100 多个报告和一些仪表板。它包括有关用户、许可证、组、组成员、设备、登录活动、密码更改、许可证更改等的报告。免费版在自定义、计划和导出等报告功能上没有任何限制。为了满足您的 Azure AD 报告和审核需求,您可以下载 AdminDroid 提供的免费 Office 365 报告工具,看看它如何为您服务。

跟踪不活跃用户肯定会帮助您更好地管理。如果您有任何疑问,请通过评论部分与我们联系。

相关文章