远程桌面服务登录历史记录

远程桌面服务登录历史记录

是否可以生成过去用户登录 Windows Server 2008 远程桌面服务服务器的报告?

我能找到的最接近的事件查看器日志位于应用程序和服务日志 --> Microsoft --> Windows --> TerminalServices-RemoteConnectionManager 下。这些日志很好,但是您无法显示每个登录事件(事件 ID 1149)的用户帐户。

有什么想法吗?

答案1

您可以使用脚本来收集这些信息。虽然不太理想/简单,但可以完成工作。这是一个适用于 Windows 7/Server 2008r2 或更高版本的 Powershell 脚本(此代码可以在较新的 Powershell 版本上进一步清理,但为了向后兼容,我保留了原样):

$LogName = 'Microsoft-Windows-TerminalServices-LocalSessionManager/Operational'
$Results = @()
$Events = Get-WinEvent -LogName $LogName
foreach ($Event in $Events) {
    $EventXml = [xml]$Event.ToXML()

    $ResultHash = @{
        Time        = $Event.TimeCreated.ToString()
        'Event ID'  = $Event.Id
        'Desc'      = ($Event.Message -split "`n")[0]
        Username    = $EventXml.Event.UserData.EventXML.User
        'Source IP' = $EventXml.Event.UserData.EventXML.Address
        'Details'   = $Event.Message
    }

    $Results += (New-Object PSObject -Property $ResultHash)
}

$Results | Export-Csv 'Remote Desktop Users.csv'

答案2

首先,如果您当时没有记录(或者日志已被覆盖),那么您就倒霉了。

其次,您需要查看安全事件日志,并查找事件 ID 528 和 540。登录类型 10 表示远程交互式登录 (RDP)。

答案3

基于https://gallery.technet.microsoft.com/Log-Parser-to-Identify-8aac36bd

Get-Eventlog -LogName Security | where {$_.EventId -eq "4624"} | select-object @{Name="User"
;Expression={$_.ReplacementStrings[5]}} | sort-object User -unique

您可以从 ReplacementStrings 中获取其他信息。您还可以在 Get-Eventlog 命令中指定远程计算机。

相关内容