원격 데스크톱 연결의 바로 가기를 만들고 암호를 어떻게 포함합니까?


답변:


12

RDP 파일을 저장할 때 암호 저장 확인란을 선택 해제 하십시오 . 암호가 .RDP파일에 암호화 된 형식으로 저장됩니다. 사람들이 해독하는 방법을 알았 으므로 조심 하십시오 .

대체 텍스트


노트 패드에서 RDP 파일을 열기 위해 수동으로 암호를 추가하는 방법
금속 기어 솔리드

MSTSC v6에서는 더 이상 문제가되지 않습니다. 자격 증명은 시스템의 다른 곳에 저장되어 있고 (Local Settings \ Application Data \ Microsoft \ Credentials), 아는 한 사용자의 로그인 암호로 암호화되어 있습니다.
user1686

이미 RDP 파일이 있습니다. 파일을 편집하고 비밀번호를 입력하고 싶습니다
금속 기어 솔리드

@Jitendra 파일은 암호를 암호화 된 형식으로 저장합니다. 암호를 열고 입력하는 것만 큼 간단하지 않습니다 password:abc123. 해당 형식으로 암호화하는 도구를 찾을 수 있다면 그렇게 할 수는 있지만 누군가 그런 도구를 만드는 것을 귀찮게 생각하지는 않습니다.
John T

Windows 7에는 암호를 입력 / 저장하는 옵션이 없습니다. 도와 드릴까요?
digitguy

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않지만 명령을 실행하면 mstscWinXP의 '암호 저장'문제가 해결됩니다.

명령 줄을 통해 원격 데스크톱에 액세스

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, 사용자 이름 및 비밀번호를 유효한 자격 증명으로 바꾸십시오.

이제 두 번 클릭하여 스크립트를 실행하십시오.

작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.