将 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.txtMBNamesFile 必须遵循以下格式:邮箱标识由换行符分隔,不带标题。
将 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 报告工具,看看它如何为您服务。
跟踪不活跃用户肯定会帮助您更好地管理。如果您有任何疑问,请通过评论部分与我们联系。





