登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
每日签到
每天签到奖励2圆-6圆
发帖说明
VIP申请
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
VIP申请
VIP网盘
网盘
联系我们
每日签到
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
告别痕迹:远程桌面连接历史和凭据的清零指南 ...
告别痕迹:远程桌面连接历史和凭据的清零指南
[ 复制链接 ]
佟棠华
2025-6-7 09:24:21
在平日的工作里,运用 Windows 远程桌面工具(RDP)去连接各类服务器和计算机是屡见不鲜的情况。不过,鉴于安全和隐私方面的因素,我们偶尔会有删除这些连接的历史记录以及相关登录凭据的需求。在接下来的这篇文章中,我会为您呈上一份完备的 PowerShell 脚本,助力您达成此目标。
例如,假如您在一家涉及机密信息处理的公司工作,对远程桌面连接的历史和凭据进行及时清理就显得尤为重要,避免可能的信息泄露风险。再比如,对于个人用户而言,保护自己的隐私,不让他人获取到过往的连接记录,也是很有必要的。
为什么要删除远程桌面记录?
远程桌面连接的记录以及凭据,有可能会将您常用的服务器 IP 地址以及登录信息暴露出来,从而加大安全风险。当您把这些记录清除掉之后,能够更有效地保护您的隐私以及网络安全。
比如说,如果这些记录被不法分子获取,他们就可能利用这些信息入侵您的服务器或者计算机,造成严重的损失。又或者,如果您的竞争对手得到了这些信息,可能会对您的工作或业务造成不利影响。所以,及时删除远程桌面记录是非常重要的。
PowerShell 脚本:删除 RDP 历史记录和凭据
以下是一个可以同时删除远程桌面连接历史记录和登录凭据的 PowerShell 脚本:
# 获取所有远程桌面连接记录
$rdpHistoryPath = "HKCU:\Software\Microsoft\Terminal Server Client\Default"
$rdpHistory = Get-ItemProperty -Path $rdpHistoryPath
# 创建一个用于存储历史记录的数组
$entries = @()
# 遍历注册表项并提取每一项的名称和值
foreach ($property in $rdpHistory.PSObject.Properties) {
if ($property.Name -like "MRU*") {
$entries += [PSCustomObject]@{
Name = $property.Name
Value = $property.Value
}
}
}
# 显示所有记录
Write-Host "当前的远程桌面连接记录:" -ForegroundColor Cyan
for ($i = 0; $i -lt $entries.Count; $i++) {
Write-Host "$($i): $($entries[$i].Value)"
}
# 提示用户输入要删除的记录编号或IP地址/计算机名称
$selection = Read-Host "请输入要删除的记录编号或IP地址/计算机名称"
# 定义一个函数来删除凭据
function Remove-RdpCredentials($computerName) {
$targetName = "TERMSRV/$computerName"
# 获取凭据管理器中的所有 Windows 凭据
$credentialList = Get-StoredCredential -Type Generic
# 查找与目标名称匹配的凭据
$credential = $credentialList | Where-Object { $_.TargetName -eq $targetName }
if ($credential) {
# 删除找到的凭据
$credential | Remove-StoredCredential
Write-Host "已删除凭据:$($credential.TargetName)" -ForegroundColor Green
} else {
Write-Host "未找到与 $computerName 相关的凭据。" -ForegroundColor Yellow
}
}
# 检查输入是编号还是名称/IP
if ($selection -match '^\d+$') {
# 如果是编号,进行删除
$index = [int]$selection
if ($index -ge 0 -and $index -lt $entries.Count) {
$keyToDelete = $entries[$index].Name
$valueToDelete = $entries[$index].Value
# 删除注册表项
Remove-ItemProperty -Path $rdpHistoryPath -Name $keyToDelete
Write-Host "已删除记录:$valueToDelete" -ForegroundColor Green
# 删除相应的凭据
Remove-RdpCredentials -computerName $valueToDelete
} else {
Write-Host "输入的编号无效。" -ForegroundColor Red
}
} else {
# 如果是名称/IP,进行匹配并删除
$entryToDelete = $entries | Where-Object { $_.Value -eq $selection }
if ($entryToDelete) {
# 删除注册表项
Remove-ItemProperty -Path $rdpHistoryPath -Name $entryToDelete.Name
Write-Host "已删除记录:$($entryToDelete.Value)" -ForegroundColor Green
# 删除相应的凭据
Remove-RdpCredentials -computerName $entryToDelete.Value
} else {
Write-Host "未找到匹配的记录。" -ForegroundColor Red
}
}
复制代码
使用说明
1. 运行 PowerShell
确保以管理员身份运行 PowerShell,以便拥有足够的权限修改注册表和凭据。
2. 安装 CredentialManager 模块
在第一次运行脚本之前,需要安装 CredentialManager 模块来管理凭据:
Install-Module -Name CredentialManager -Force -Scope CurrentUser
复制代码
3. 执行脚本
将上述代码保存为 .ps1 文件,例如 RemoveRDPHistoryWithCredentials.ps1。在 PowerShell 中导航到脚本所在的目录,并运行:
.\RemoveRDPHistoryWithCredentials.ps1
复制代码
4. 输入选择
根据脚本提示,输入要删除的记录的编号或 IP 地址/计算机名称。
注意事项
凭据管理器
:该脚本使用 CredentialManager 模块来访问和删除 Windows 凭据。
权限
:确保以管理员身份运行脚本。
备份
:建议在删除之前备份相关数据,以防误删。
通过这个脚本,您可以有效管理和清理远程桌面的连接记录和凭据,保护您的隐私和安全。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
签约作者
程序园优秀签约作者
发帖
佟棠华
2025-6-7 09:24:21
关注
0
粉丝关注
16
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
杭环
9988
凶契帽
9988
4
氛疵
9988
5
黎瑞芝
9988
6
猷咎
9986
7
里豳朝
9986
8
肿圬后
9986
9
蝓俟佐
9984
10
虽裘侪
9984
查看更多