Làm cách nào để tạo một lối tắt của kết nối máy tính từ xa và bao gồm mật khẩu?


13

Tôi muốn mở một kết nối máy tính từ xa trực tiếp từ một phím tắt và tôi muốn nhúng mật khẩu tên người dùng trong phím tắt.

Làm cách nào để có đường dẫn của máy tính để bàn từ xa từ phím tắt RDP và chúng tôi có thể đặt mật khẩu trong lối tắt RDP không?


câu trả lời có sẵn trong các bước tại: stackoverflow.com/a/40017890/4361073
ký sinh

Câu trả lời:


12

Khi lưu tệp RDP, hãy chọn hộp kiểm Lưu mật khẩu của tôi . Điều này sẽ lưu mật khẩu của bạn vào .RDPtập tin ở định dạng được mã hóa. Hãy cẩn thận, vì mọi người đã tìm ra cách giải mã nó :

văn bản thay thế


Cách thêm mật khẩu thủ công để mở tệp RDP trong bảng ghi chú
bánh răng kim loại rắn

Đây không còn là vấn đề nữa với MSTSC v6 - thông tin đăng nhập được lưu trữ ở nơi khác trên hệ thống (Cài đặt cục bộ \ Dữ liệu ứng dụng \ Microsoft \ Thông tin xác thực) và theo như tôi biết, chúng được mã hóa bằng mật khẩu đăng nhập của người dùng.
dùng1686

Tôi đã có tập tin RDP. Tôi muốn chỉnh sửa tệp và chèn mật khẩu
thiết bị kim loại solid

@Jitendra tệp lưu trữ mật khẩu ở định dạng được mã hóa, nó không đơn giản như mở và gõ password:abc123. Nếu bạn có thể tìm thấy một công cụ để mã hóa chúng thành định dạng đó thì bạn có thể, nhưng tôi nghi ngờ ai đó sẽ bận tâm tạo ra một công cụ như vậy.
John T

Không có tùy chọn để nhập / lưu mật khẩu trong Windows 7. Bạn có thể giúp gì không?
Digitguy

5

Hãy thử chỉnh sửa các tập tin .rdp trực tiếp. Tôi đã tìm thấy một bài viết, Làm thế nào mật khẩu ndp được mã hóa , nói như thế nào và sâu bên dưới, trong các bài đăng, có một số mã cho cách thực hiện điều này trong 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

Chà, đúng một phần, bạn thực sự không thể chỉnh sửa Thông tin xác thực của Microsoft một cách dễ dàng và lệnh thì không rdp, nhưng nếu bạn chạy lệnh, mstscnó sẽ sửa vấn đề 'lưu mật khẩu' trên WinXP.

Truy cập máy tính từ xa thông qua dòng lệnh

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

Chỉ cần mở cửa sổ CMD, nhập mstsc, đặt tên PC hoặc IP, nhấp Tùy chọn và tiếp tục theo cách vui vẻ của bạn, nhưng thực hiện Lưu dưới dạng ... để bạn có một lối tắt hoạt động cho lần sau.


0

Alternativly tạo một tập lệnh bó (.bat) với các dòng sau:

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

Lưu ý thay thế IP, tên người dùng và mật khẩu trong tập lệnh bằng thông tin xác thực hợp lệ.

Bây giờ chạy tập lệnh bằng cách nhấp đúp vào nó.

Những công việc này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.