使用powershell找回丢失的RDCManage密码

news2024/11/15 18:18:47

内网的一台服务器上的装机默认用户密码忘记了,但是好在别的电脑上使用RDCMan(Remote Desktop Connection Manager)连接过这台服务器,并且保存了密码。于是经过一番折腾,最后把密码找回来了:

最后成功的powershell脚本来自于这个地址:

https://www.undocumented-features.com/2019/10/03/decrypting-credentials-stored-in-remote-desktop-manager-rdcman-rdg/

但是能找到这个地址是因为这篇文章给出的三个方案,就有powershell,

https://www.cnblogs.com/Thorndike/p/15325079.html

因为不好使,就根据脚本里面的关键字去搜索,才找到的。(百度和bing都没有有效的结果,这次实际上发挥作用的是google)

最终有效的脚本是这个:

# Decrypt passwords in RDG files
param($RDGFile,
    $PasswordString,
    $RDCManSource
    )
If (!$RDCManSource)
{
    $RDCManSource = (Get-ChildItem -Path @('C:\Program Files\Microsoft', 'C:\Program Files (x86)\Microsoft') -File "RDCMan.exe" -Recurse -ErrorAction SilentlyContinue)[0]
}
If (!$RDCManSource)
{
    Write-Error "Remote Desktop Manager must be installed.  If it is installed, use the -RDCManSource parameter to specify the executable's location."
    Exit
}
else
{
    Write-Host "goto RDCManSource."

    Write-Host $RDCManSource.FullName
    try
    {
        $Assembly = [Reflection.Assembly]::LoadFile($RDCManSource)
    }
    catch
    {
        $_.Exception.Message.ToString();
        Write-Host "Catch"; Exit
    }
    try { Import-Module $Assembly }
    catch
    {
        $_.Exception.Message.ToString();
        Write-Host "Import Exception"; exit }
}
If ($RDGFile)
{
    Write-Host "goto RDGFile."
    Write-Host
    [xml]$Data = Get-Content $RDGFile
    $CredentialValues = $Data.SelectNodes("*//logonCredentials")
    $global:Output = @()
    foreach ($obj in $CredentialValues)
    {
        try
        {
            $EncryptionSettings = New-Object -TypeName RdcMan.EncryptionSettings
            $Password = [RdcMan.Encryption]::DecryptString($obj.password, $EncryptionSettings)
        }
        catch
        {
            $_.Exception.Message.ToString(); continue
        }
        If ($Password -and ($Password -notcontains 'Failed to decrypt'))
        {
            $CredObject = New-Object PSObject
            $CredObject | Add-Member -Type NoteProperty -Name "ProfileName" -Value $obj.ProfileName -ea SilentlyContinue -Force
            $CredObject | Add-Member -Type NoteProperty -Name "UserName" -Value $obj.username -ea SilentlyContinue -Force
            $CredObject | Add-Member -Type NoteProperty -Name "Password" -Value $Password
            $CredObject | Add-Member -Type NoteProperty -Name "Domain" -Value $obj.domain
            $global:Output += $CredObject
        }
    }
    If ($Output)
    {
        $Output
    }
    Else
    {
        Write-Host "Nothing to show."
    }
}
else
{
    If ($PasswordString)
    {
        $EncryptionSettings = New-Object -TypeName RdcMan.EncryptionSettings
        $Password = [RdcMan.Encryption]::DecryptString($PasswordString, $EncryptionSettings)
        Write-Host "Cleartext password: $($Password)"
    }
}

需要注意的是,我电脑上使用的是绿色版,所以是传参进来的

 .\dops2 -RDGFile '.\本地电脑.rdg'  -RDCManSource 'D:\Green\RDCMan\RDCMan.exe'

其它另外一个尝试过的脚本:

Copy-Item 'C:\Program Files (x86)\Microsoft\Remote Desktop Connection Manager\RDCMan.exe' 'C:\windows\temp\RDCMan.dll'
Import-Module 'C:\windows\temp\RDCMan.dll'
$EncryptionSettings=New-Object-TypeName RdcMan.EncryptionSettings 
$lines=Get-Content RDCManpass.txt
foreach ($line in $lines){
    $PwdString= $line
    [RdcMan.Encryption]::DecryptString($PwdString,$EncryptionSettings)
}

windows 10系统直接执行脚本会报错:

解决办法:

https://blog.csdn.net/qq_15585305/article/details/131436046

另外PowerShell脚本传参,参考了这篇:

https://blog.csdn.net/wan_ghuan/article/details/104346908

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/818387.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ChatGPT】ChatGPT是如何训练得到的?

前言 ChatGPT是一种基于语言模型的聊天机器人,它使用了GPT(Generative Pre-trained Transformer)的深度学习架构来生成与用户的对话。GPT是一种使用Transformer编码器和解码器的预训练模型,它已被广泛用于生成自然语言文本的各种…

抓紧收藏,Selenium无法定位元素的几种解决方案

01、frame/iframe表单嵌套 WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌的页面元素无法直接定位。 解决方法: driver.switch_to.frame(id/name/obj) switch_to.frame()默认可以直接取表单的id或name属性。如果没有可用的id和…

基于量子同态的安全多方量子求和加密

摘要安全多方计算在经典密码学中一直扮演着重要的角色。量子同态加密(QHE)可以在不解密的情况下对加密数据进行计算。目前,大多数协议使用半诚实的第三方(TP)来保护参与者的秘密。我们使用量子同态加密方案代替TP来保护各方的隐私。在量子同态加密的基础上&#xff…

Day49 算法记录|动态规划16 (子序列)

这里写目录标题 583. 两个字符串的删除操作72. 编辑距离总结 583. 两个字符串的删除操作 这道题求得的最小步数,是这道题的变种 M i n ( 步数) s t r 1. l e n g t h s t r 2. l e n g t h − 2 ∗ ( M a x ( 公共字符串长度) ) Min(步数…

子域名收集工具OneForAll的安装与使用-Win

子域名收集工具OneForAll的安装与使用-Win OneForAll是一款功能强大的子域名收集工具 GitHub地址:https://github.com/shmilylty/OneForAll Gitee地址:https://gitee.com/shmilylty/OneForAll 安装 1、python环境准备 OneForAll基于Python 3.6.0开发和…

Linux系统安装Nginx(保姆级教程)

目录 一、环境准备 二、开始安装 2.1、解压Nginx文件 2.2、编译安装 2.3、启动Nginx 2.4、安装成系统服务(脚本) 2.5、常见问题 本机如何访问虚拟机中的Nginx? 编译安装的过程中出现如下几种警告错误 一、环境准备 系统&#xff1a…

教程|如何用 Docker/K8s 快速部署 StarRocks 集群

云原生是一种现代化的软件开发和部署方法论。相较于传统的应用开发和部署方式,云原生带来了显著的优势,包括弹性伸缩、应用程序可移植性、高可靠性和自动化部署与管理等方面,从而极大地提升了成本效益和开发效率。 StarRocks 从 3.0 版本开始…

wms三代电子标签操作指导

一、服务器使用 V1.4基站已经内置服务程序,无需搭建服务;可跳至第1.4部分 1、服务器搭建 安装mysql5.7, 创建db_wms数据库并导入原始数据库文件 安装jdk1.8, 配置java环境变量 下载tomca8.0, 部署wms.war到tomcat, 并启动tomcat 2、下载资源 Wind…

dflow工作流使用1——架构和基本概念

对于容器技术、工作流等概念完全不懂的情况下理解dflow的工作方式会很吃力,这里记录一下个人理解。 dflow涉及的基本概念 工作流的概念很好理解,即某个项目可以分为多个步骤,每个步骤可以实现独立运行,只保留输入输出接口&#x…

以科技创新引领短交通行业发展,九号公司重磅新品亮相巴塞罗那MWC

2月27日,以“时不我待(VELOCITY) - 明日科技,将至已至”为主题的2023世界移动通信大会(Mobile World Congress,以下简称MWC)在西班牙巴塞罗那举办,全球创新短交通领军企业九号公司参加了大会。现场&#xf…

学习记录——DSConv

Dynamic Snake Convolution based on Topological Geometric Constraints for Tubular Structure Segmentation ICCV 2023 用于管状结构分割的动态蛇形卷积 仍存在一些复杂的领域,大模型还未能够很好的覆盖(也许只是时间问题)。例如伪装目标…

【MySQL】模具更新方案

系列文章 C#底层库–MySQLBuilder脚本构建类(select、insert、update、in、带条件的SQL自动生成) 本文链接:https://blog.csdn.net/youcheng_ge/article/details/129179216 C#底层库–MySQL数据库操作辅助类(推荐阅读&#xff0…

接口测试用例设计:常见问题和风险

一、接口测试 接口测试,即对API进行测试。 接口测试过程容易出现的典型问题: (1) 传入参数处理不当,导致程序奔溃 (2) 类型溢出,导致数据读出和写入不一致 (3) 因对象权限未进行校验,可以访问其他用户的敏感信息 …

快速了解MyBatis---映射关系多对一

文章目录 映射关系多对一映射关系-官方文档映射关系多对1-基本介绍基本介绍注意细节 映射关系多对1-映射方式映射方式配置Mapper.xml 方式-应用实例注解实现多对1 映射-应用实例 映射关系多对一 映射关系-官方文档 文档地址: https://mybatis.org/mybatis-3/zh/sqlmap-xml.ht…

(树) 剑指 Offer 32 - I. 从上到下打印二叉树 ——【Leetcode每日一题】

❓剑指 Offer 32 - I. 从上到下打印二叉树 难度:中等 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3/ \9 20/ \15 7返回: [3,9,20,15,7]提示: 节…

软件测试——Postman Script脚本功能

Postman作为软件测试里一款非常流行的调试工具,给我们提供了一个执行JavaScript脚本的环境,所以我们可以使用js语言编写脚本来解决一些接口自动化的问题,比如接口依赖、接口断言等等。Postman有Pre-RequestScript和Tests两个编写js脚本的模块…

【LeetCode】最小路径和

最小路径和 题目描述算法流程编程代码 链接: 最小路径和 题目描述 算法流程 编程代码 class Solution { public:int minPathSum(vector<vector<int>>& grid) {int m grid.size();int n grid[0].size();vector<vector<int>> dp(m1,vector<in…

html5播放器视频切换和连续播放的实例

当前播放器实例可以使用changeVid接口切换正在播放的视频。当有多个视频&#xff0c;在上一个视频播放完毕时&#xff0c;自动播放下一个视频时也可采用该处理方式。 const option {vid: 88083abbf5bcf1356e05d39666be527a_8,//autoplay: true,//playsafe: , //PC端播放加密视…

ipad必须要配原装的电容笔吗?ipad可以用的手写笔

众所周知&#xff0c;苹果平板电脑的价格很贵&#xff0c;但只要你有充足的预算&#xff0c;是可以选择入手的。另外&#xff0c;iPad搭配上电容笔不但适用于专业画图&#xff0c;也适用于写字作笔记。苹果原装的电容笔&#xff0c;功能强大&#xff0c;但是价格昂贵&#xff0…

记录一个可支持 style 属性 HtmlTextView 控件

大家都知道可通过原生API Html.fromHtml(html) 在 TextView 上显示 html 文本&#xff0c;但显示效果有限。 对于复杂效果就不行了&#xff0c;费了点时间找了一些库验证&#xff0c;最终找到一个合适的&#xff0c;在此记录一下。 支持内容挺丰富的&#xff0c;包含很多 htm…