Bagaimana cara membuat pintasan koneksi desktop jarak jauh dan memasukkan kata sandi?


Jawaban:


12

Saat menyimpan file RDP, centang kotak centang Simpan kata sandi saya . Ini akan menyimpan kata sandi Anda ke .RDPfile dalam format terenkripsi. Berhati-hatilah, karena orang telah menemukan cara mendekripsi :

teks alternatif


bagaimana cara menambahkan kata sandi secara manual untuk membuka file RDP di buku catatan
metal gear solid

Ini bukan masalah lagi dengan MSTSC v6 - kredensial disimpan di tempat lain pada sistem (Pengaturan Lokal \ Data Aplikasi \ Microsoft \ Kredensial), dan sejauh yang saya tahu, mereka dienkripsi dengan kata sandi login pengguna.
user1686

Saya sudah memiliki file RDP. Saya ingin mengedit file dan memasukkan kata sandi
metal gear solid

@Jitendra file menyimpan kata sandi dalam format terenkripsi, tidak semudah membuka dan mengetik password:abc123. Jika Anda dapat menemukan alat untuk mengenkripsi mereka ke dalam format itu maka Anda bisa, tetapi saya ragu seseorang akan repot membuat alat seperti itu.
John T

Tidak ada opsi untuk memasukkan / menyimpan kata sandi di Windows 7. Bisakah Anda membantu?
digitguy

5

Coba edit file .rdp secara langsung. Saya menemukan sebuah artikel, Bagaimana kata sandi rdp dienkripsi , mengatakan bagaimana, dan jauh di lubuk hati, di dalam tulisan, ada beberapa kode untuk bagaimana melakukan ini di C # juga:

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

Yah, sebagian benar, Anda tidak dapat benar-benar mengedit Kredensial Microsoft dengan mudah, dan perintahnya tidak rdp, tetapi jika Anda menjalankan perintah mstscitu akan memperbaiki masalah 'simpan kata sandi' di WinXP.

Akses Remote Desktop Melalui Commandline

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

Cukup buka jendela CMD, ketik mstsc, masukkan nama PC atau IP, klik Opsi, dan lanjutkan jalan Anda, tetapi lakukan Save As ... sehingga Anda memiliki jalan pintas yang berfungsi untuk nanti.


0

Secara alternatif, buat skrip kumpulan (.bat) dengan baris berikut:

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

Catatan ganti IP, nama pengguna dan kata sandi dalam skrip dengan kredensial yang valid.

Sekarang jalankan skrip dengan mengklik dua kali saja.

Ini bekerja.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.