Windows Server查看远程桌面访问记录全攻略

Windows Server查看远程桌面访问记录全攻略

解决方案goocz2025-03-28 12:05:4636A+A-

在Windows Server 服务器运维中,查看远程桌面访问记录至关重要,它能助力管理员监控用户行为、排查安全隐患,为问题解决提供关键线索。

下面介绍多种查看方法。

一、事件查看器:直观的记录宝库

事件查看器是Windows系统自带工具,可查看各类系统事件,其中包含远程桌面访问记录。

1. 打开

按“Win+R”组合键,在运行对话框输入“eventvwr.msc”回车即可打开。

2. 定位日志

依次展开“应用程序和服务日志”→“Microsoft”→“Windows”→“
TerminalServices-RemoteConnectionManager”,右键单击“Operational”选择“筛选当前日志”。

3. 筛选

输入事件ID“1149”,此ID对应远程桌面连接事件,点击“确定”就能看到连接历史记录,其中包含IP地址、计算机名、登录时间等信息。

4. 高级筛选

若想进一步筛选,可利用自定义筛选功能。

比如筛选特定用户或时间段记录,在筛选窗口选“添加”,通过下拉菜单选“用户”输入用户名,选“时间生成”设定时间范围即可。

二、注册表:系统底层追溯

注册表保存着远程桌面访问相关信息。

1. 打开

按“Win+R”组合键,输入“regedit”回车打开。

2. 查找位置

导航到“HKEY_CURRENT_USER\SOFTWARE\Microsoft\Terminal Server Client”路径。“Default”键下能看到最近10次连接记录;展开“Servers”键,可获取服务器列表及登录用户名。操作注册表需谨慎,错误修改可能导致系统故障。

3. 备份与恢复

修改前建议备份。

选择要备份的键,右键点击选“导出”保存为.reg文件。若修改出问题,双击备份文件可恢复。

三、PowerShell:自动化查询利器

PowerShell脚本可高效查询远程桌面访问记录。

# 设置要查询的时间范围,这里设置为过去7天

$StartTime = (Get-Date).AddDays(-7)

# 获取安全日志中与远程桌面登录相关的事件

$Events = Get-EventLog -LogName Security -After $StartTime | Where-Object {

# 筛选出事件ID为4624(表示成功登录)且登录类型为10(远程桌面登录)的事件

($_.EventID -eq 4624) -and ($_.Message -match 'Logon Type: \s+(10)\s')

}

# 遍历事件并提取相关信息

$Results = foreach ($Event in $Events) {

$Message = $Event.Message

$TimeGenerated = $Event.TimeGenerated

$ClientIP = $Message -replace '(?smi).*Source Network Address: \s+((^\s)+)\s+.*', '$1'

$Username = $Message -replace '(?smi).* \s\sAccount Name: \s+((^\s)+)\s+.*', '$1'

$UserDomain = $Message -replace '(?smi).* \s\sAccount Domain: \s+((^\s)+)\s+.*', '$1'

$LogonType = $Message -replace '(?smi).*Logon Type: \s+((^\s)+)\s+.*', '$1'

# 创建一个自定义对象来存储信息

New-Object -Type PSObject -Property @{

TimeGenerated = $TimeGenerated

ClientIP = $ClientIP

Username = '{0}\{1}' -f $UserDomain, $Username

LogonType = switch ($LogonType) {

2 {'Interactive - local logon'}

3 {'Network connection to shared folder'}

4 {'Batch'}

5 {'Service'}

7 {'Unlock (after screensaver)' }

8 {'Network cleartext'}

9 {'New credentials (local impersonation process under existing connection)'}

10 {'RDP'}

11 {'Cached interactive'}

default {"Log type not recognised: $LogonType"}

}

}

}

# 按照时间降序排序结果并输出

$Results | Sort-Object -Property TimeGenerated -Descending | Select-Object -Property TimeGenerated, ClientIP, Username, LogonType

1. 脚本优化

为增强灵活性,可将时间范围设为参数。

修改脚本开头:

param(

[int]$DaysBack = 7

)

$StartTime = (Get-Date).AddDays(-$DaysBack)

运行脚本时,可通过命令行传入天数参数,如 .\script.ps1 -DaysBack 14 查询过去14天记录。

2. 多样化输出

除控制台输出,还可将结果导出为CSV文件以便分析存档。在脚本末尾添加:

$Results | Export-Csv -Path "C:\RemoteDesktopAccessRecords.csv" -NoTypeInformation

四、第三方工具:功能扩展助手

借助第三方工具可增强查看和分析能力。

1. SolarWinds Server & Application Monitor

这是一款全面的服务器监控工具,能实时监控远程桌面连接,提供详细历史记录报表。安装配置后,在界面中可查看连接时长、次数、用户活动等指标,还能设置警报。

2. ManageEngine ADAudit Plus

主要用于活动目录审计,也具备强大的远程桌面访问记录查看功能。它能深入分析登录事件,提供用户行为分析报告,帮助管理员发现安全威胁,如暴力破解、异常登录时间等。

熟练掌握上述方法,能让管理员更高效地管理Windows Server服务器,维护系统安全稳定。

点击这里复制本文地址 以上内容由goocz整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

果子教程网 © All Rights Reserved.  蜀ICP备2024111239号-5