首页 > 其他分享 >告别痕迹:远程桌面连接历史和凭据的清零指南

告别痕迹:远程桌面连接历史和凭据的清零指南

时间:2024-08-02 20:28:50浏览次数:15  
标签:删除 记录 凭据 Host 远程桌面 entries 清零

在平日的工作里,运用 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 凭据。
  • 权限:确保以管理员身份运行脚本。
  • 备份:建议在删除之前备份相关数据,以防误删。

通过这个脚本,您可以有效管理和清理远程桌面的连接记录和凭据,保护您的隐私和安全。

标签:删除,记录,凭据,Host,远程桌面,entries,清零
From: https://www.cnblogs.com/HaiJaine/p/18339546

相关文章

  • TpmVscMgr.exe 命令行工具让具有管理凭据的用户能够在计算机上创建和删除 TPM 虚拟智
     tpmvscmgr|MicrosoftLearn tpmvscmgr命令行工具让具有管理凭据的用户能够在计算机上创建和删除TPM虚拟智能卡。 tpmvscmgrTpmVscMgr.exe 命令:    create        [/quiet]        /name<名称>       ......
  • python实现jenkins凭据录入
    #新增配置importjenkins.model.*importjenkins.plugins.publish_over_ssh.BapSshHostConfigurationdefinst=Jenkins.getInstance()defpublish_ssh=inst.getDescriptor("jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin")defconfiguration=new......
  • 远程桌面文件传输异常或者取消传输后一直显示正在取消
    环境:WindowServers2008R2摘要说明:本篇文章主要讲述当应用远程桌面进行文件传输时,若因网络等导致进程中断,再次传输时则不能进行文件传输;或者传输时取消传输,然后一直显示正在取消。此时可以通过重启window的rdpclip.exe进程来解决此问题步骤1.关闭rdpclip.exe进程远程桌面......
  • windows远程桌面打开rdp 调用显卡
    -----------------------------------------------------------------------------------------------------------前情提要:服务器在公网环境,带宽只有30M。远程桌面多开玩游戏,设置RDP服务端使用GPU。压缩传输带宽避免造成卡顿。如果是内网,也可以用,还可以提供一个注册表键值,修......
  • 「Mac&Linux」一次基于X和蒲公英组网的远程桌面尝试
    因为某些原因我必须在远程条件下使用带图形环境的Ubuntu工作。虽然说有向日葵和ToDesk这种远程控制工具,但是后者经常莫名其妙蹦个错误告诉我连不上网络(指的是Mac上的这个软件连不到它公司自己的网络,连我这个账号在ToDesk上有哪些在线设备都不知道),前者怎么说呢...我已经受够远程桌......
  • [Windows] 号称最快免费小巧的远程桌面 AnyDesk v8.0.11单文件版
    描述对于经常在互联网上进行操作的学生,白领等!一款好用的软件总是能得心应手,事半功倍。今天给大家带了一款高科技软件虽然QQ拥有远程协助功能,但很多时候连接并不够流畅,而且被控电脑那方也必须要有人操作才行。因此,很多人会选择TeamViewer、AnyDesk等…这样更为专业的......
  • 扩展Windows Server 2022的远程桌面连接数
    一、添加远程桌面授权服务打开服务器管理器:登录到WindowsServer2022服务器。点击“开始”菜单,搜索“服务器管理器”并打开它。启动“添加角色和功能”向导:在服务器管理器中,点击左侧菜单中的“管理”然后选择“添加角色和功能”。点击“下一步”继续。选择安装......
  • Windows Defender Credential Guard (WDC) 旨在保护操作系统中的凭据免受攻击和恶意
    WindowsDefenderCredentialGuard(WDC)是一种Windows10和WindowsServer2016及更高版本中引入的安全功能,旨在保护操作系统中的凭据免受攻击和恶意软件的威胁。它通过使用硬件虚拟化技术(如IntelVT-x和AMD-V)来隔离和保护用户的敏感信息,例如NTLM口令、KerberosTicketGrant......
  • 普通用户通过远程桌面连接域控服务器
    windows域控服务器无法通过计算机管理中的本地用户和组的方式来管理windows域控服务器默认允许domainadmins群组使用远程桌面方式连接域内普通用户远程桌面连接域控服务器时,因为权限不足,会报错若要远程登录,你需要具有通过远程桌面服务进行登录的权限。默认情况下,管理员组的成......
  • Windows远程桌面的奇技淫巧
    前言Windows远程桌面简介远程桌面协议(RDP)是一个多通道(multi-channel)的协议,让使用者连上提供微软终端机服务的计算机(称为服务端或远程计算机)远程桌面的前置条件在获取权限后,针对3389进行展开,先查询3389端口是否开启netstat-ano|findstr3389发现没有开启(也......