是否可以生成过去用户登录 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 命令中指定远程计算机。