none
查询计算机登录信息和时间 RRS feed

  • 问题

  • 如何通过域控制器查询有哪些域账户都登录过哪些加域的机器和具体登录时间,请问有什么方法可以查询到这些信息吗?

    2017年2月28日 13:14

答案

  • 您好!

    根据我的了解,基于现有的文档和方法,我们很难实现这一需求,因为AD中不会存储用户登录历史,在用户现有属性中,与登录相关的就是LastLogOnDate,最后一次登录时间。

    以下是我找到的两个基于脚本的变通方法可供您参考:如果需要根据域账号来导出登录历史,需要提前在所有加域计算机上开启登录审核,然后通过相应的事件ID 4624来筛选登录历史。如以下博客中提到的脚本,通过在域控上运行该脚本,收集多台计算机上指定的事件日志:

    PowerShell Script: Retrieve Specific Event ID’s From Event Log On Multiple Computers(英文)

    https://blogs.technet.microsoft.com/nzdse/2011/12/10/powershell-script-retrieve-specific-event-ids-from-event-log-on-multiple-computers/

    如若未开启过审核,我们可以根据计算机收集用户的登录历史,如以下脚本:

    $computers = “computername01”,”computername02”

    $reports = @()

    foreach ($computer in $computers) {

                    $report = Get-OSCUserLogonDuration -Computer $computer -IncludeRemoteInteractive -StartDate (Get-Date -Date “2012/02/01 00:00:00”) -EndDate (Get-Date -Date “2012/02/14 23:59:59”) -Verbose

                    $reports += $report

    }

    $reports | Format-Table -AutoSize

    $reports | Export-csv -Path C:\Scripts\report.csv -NoTypeInformation

    通过运行该脚本,我们可以查出用户在多台电脑上登录/登出时间,并将结果导出为.csv文件。具体信息您可以查看以下链接中的示例 06:获取多台计算机中的用户登录持续时间并导出至 CSV 文件。

    查找用户登录持续时间 (PowerShell)

    https://gallery.technet.microsoft.com/scriptcenter/Find-user-logon-duration-667b8c48

    此致,

    Alvin Wang


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    • 已标记为答案 liuying321 2017年3月2日 8:55
    2017年3月1日 5:11
    版主