远程桌面服务登录历史

Ash*_*Ash 4 terminal-server remote-desktop-services windows-server-2008-r2 eventviewer

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

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

有什么想法吗?

小智 6

您可以使用脚本来收集此信息。不那么理想/简单,但它会完成工作。这是一个适用于 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'
Run Code Online (Sandbox Code Playgroud)