如何制作远程桌面连接的快捷方式并包含密码?


Answers:


12

保存RDP文件时,请选中“ 保存我的密码”复选框。这会将您的密码以.RDP加密格式保存到文件中。但是要小心,因为人们发现了如何解密它

替代文字


如何手动添加密码以在记事本中打开RDP文件
金属齿轮固体,2010年

对于MSTSC v6而言,这不再是问题-凭据存储在系统上的其他位置(本地设置\应用程序数据\ Microsoft \凭据),据我所知,它们已使用用户的登录密码进行了加密。
user1686'2

我已经有RDP文件。我想编辑的文件,插入密码
潜龙谍影

@Jitendra该文件以加密格式存储密码,它不像打开并键入那样简单password:abc123。如果可以找到一种工具将其加密为该格式,则可以,但是我怀疑有人会费心制作这样的工具。
约翰·T

Windows 7中没有输入/保存密码的选项。您能帮忙吗?
digitguy 2014年

5

尝试直接编辑.rdp文件。我在文章中找到了一篇文章如何对rdp密码进行加密,并在帖子中说出了如何进行深入的介绍,在C#中也有一些有关如何执行此操作的代码:

using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.ComponentModel;
using System.Security.Cryptography;
using System.Linq;
using System.Text;

class Mstscpw
{
    private const int CRYPTPROTECT_UI_FORBIDDEN = 0x1;
    // Wrapper for the NULL handle or pointer.
    static private IntPtr NullPtr = ((IntPtr)((int)(0)));
    // Wrapper for DPAPI CryptProtectData function.
    [DllImport("crypt32.dll", SetLastError = true,
    CharSet = System.Runtime.InteropServices.CharSet.Auto)]
    private static extern bool CryptProtectData(
    ref DATA_BLOB pPlainText,
    [MarshalAs(UnmanagedType.LPWStr)]string szDescription,
    IntPtr pEntroy,
    IntPtr pReserved,
    IntPtr pPrompt,
    int dwFlags,
    ref DATA_BLOB pCipherText);
    // BLOB structure used to pass data to DPAPI functions.
    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
    internal struct DATA_BLOB
    {
        public int cbData;
        public IntPtr pbData;
    }

    private static void InitBLOB(byte[] data, ref DATA_BLOB blob)
    {
        blob.pbData = Marshal.AllocHGlobal(data.Length);
        if (blob.pbData == IntPtr.Zero)
            throw new Exception("Unable to allocate buffer for BLOB data.");

        blob.cbData = data.Length;
        Marshal.Copy(data, 0, blob.pbData, data.Length);
    }

    public string encryptpw(string pw)
    {
        byte[] pwba = Encoding.Unicode.GetBytes(pw);
        DATA_BLOB dataIn = new DATA_BLOB();
        DATA_BLOB dataOut = new DATA_BLOB();
        StringBuilder epwsb = new StringBuilder();
        try
        {
            try
            {
                InitBLOB(pwba, ref dataIn);
            }
            catch (Exception ex)
            {
                throw new Exception("Cannot initialize dataIn BLOB.", ex);
            }

            bool success = CryptProtectData(
            ref dataIn,
            "psw",
            NullPtr,
            NullPtr,
            NullPtr,
            CRYPTPROTECT_UI_FORBIDDEN,
            ref dataOut);

            if (!success)
            {
                int errCode = Marshal.GetLastWin32Error();
                throw new Exception("CryptProtectData failed.", new Win32Exception(errCode));
            }

            byte[] epwba = new byte[dataOut.cbData];
            Marshal.Copy(dataOut.pbData, epwba, 0, dataOut.cbData);
            // Convert hex data to hex characters (suitable for a string)
            for (int i = 0; i < dataOut.cbData; i++)
                epwsb.Append(Convert.ToString(epwba[i], 16).PadLeft(2, '0').ToUpper());
        }
        catch (Exception ex)
        {
            throw new Exception("unable to encrypt data.", ex);
        }
        finally
        {
            if (dataIn.pbData != IntPtr.Zero)
                Marshal.FreeHGlobal(dataIn.pbData);

            if (dataOut.pbData != IntPtr.Zero)
                Marshal.FreeHGlobal(dataOut.pbData);
        }
        return epwsb.ToString();
    }
}
// Test code:
class program
{
    static void Main(string[] args)
    {
        Mstscpw mstscpw = new Mstscpw();
        string epw = mstscpw.encryptpw("password");
        Console.WriteLine("Encrypted password for \"password\" {0} characters: \r\n{1}", epw.Length, epw);
        Console.ReadLine();
    }
}


0

嗯,部分正确,您不能真正轻松地编辑Microsoft凭据,而命令不是rdp,但是如果运行该命令mstsc,它将纠正WinXP上的“保存密码”问题。

通过命令行访问远程桌面

mstsc [<connection file>] [/v:<server[:port]>] [/admin] [/f[ullscreen]] [/w:<width>] [/h:<height>] [/public] | [/span] [/edit "connection file"] [/migrate] [/?]

只需打开CMD窗口,键入mstsc,输入PC名称或IP,单击“选项”,然后继续进行即可,但是执行“另存为...”,这样您就可以使用快捷方式供以后使用。


0

或者用以下几行创建一个批处理脚本(.bat):

cmdkey /generic:"computername or IP" /user:"username" /pass:"password" mstsc /v:"computer name or IP"

注意,请使用有效的凭据替换脚本中的IP,用户名和密码。

现在,只需双击该脚本即可运行该脚本。

这可行。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.