Wie erstelle ich eine Verknüpfung zu einer Remotedesktopverbindung und gebe das Kennwort ein?

13

Ich möchte eine Remotedesktopverbindung direkt über eine Verknüpfung öffnen und das Benutzername-Kennwort in die Verknüpfung einbetten.

Wie erhalte ich den Pfad eines Remotedesktops über eine RDP-Verknüpfung und können wir in einer RDP-Verknüpfung ein Kennwort festlegen?

Metallgetriebe massiv
quelle
Antwort in Schritten verfügbar unter: stackoverflow.com/a/40017890/4361073
parasrish

Antworten:

12

Deaktivieren Sie beim Speichern der RDP-Datei das Kontrollkästchen Kennwort speichern . Dadurch wird Ihr Kennwort .RDPin einem verschlüsselten Format in der Datei gespeichert. Seien Sie jedoch vorsichtig, da die Leute herausgefunden haben, wie man es entschlüsselt :

Alt-Text

John T
quelle
Wie man manuell ein Passwort hinzufügt, um die RDP-Datei im Notizbuch zu öffnen
Metal Gear Solid
Dies ist mit MSTSC v6 kein Problem mehr - die Anmeldeinformationen werden an anderer Stelle im System gespeichert (Lokale Einstellungen \ Anwendungsdaten \ Microsoft \ Anmeldeinformationen) und meines Wissens mit dem Anmeldekennwort des Benutzers verschlüsselt.
user1686
Ich habe bereits eine RDP-Datei. Ich möchte die Datei bearbeiten und ein Passwort einfügen
Metal Gear Solid
@Jitendra die Datei speichert das Passwort in einem verschlüsselten Format, es ist nicht so einfach, wie es zu öffnen und zu tippen password:abc123. Wenn Sie ein Werkzeug finden, um sie in dieses Format zu verschlüsseln, können Sie das, aber ich bezweifle, dass sich jemand die Mühe machen würde, ein solches Werkzeug herzustellen.
John T
In Windows 7 gibt es keine Möglichkeit, ein Kennwort einzugeben oder zu speichern. Können Sie uns helfen?
Digitguy
5

Versuchen Sie, die RDP-Dateien direkt zu bearbeiten. Ich habe einen Artikel gefunden: Wie RDP-Passwörter verschlüsselt werden und wie, und tief in den Posts, gibt es Code, um dies auch in C # zu tun:

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();
    }
}
Tipx
quelle
2

Remote Desktop Plus von Donkz.nl.

Merkmal 1:

Melden Sie sich automatisch über die Befehlszeile an.

Beispiel:

rdp /v:nlmail01 /u:administrator /p:P@ssw0rd! /max
abstrask
quelle
0

Nun, teilweise richtig, Sie können die Microsoft-Anmeldeinformationen nicht einfach bearbeiten, und der Befehl ist es nicht rdp. Wenn Sie den Befehl ausführen mstsc, wird das Problem mit dem Speichern des Kennworts unter WinXP behoben.

Greifen Sie über die Befehlszeile auf Remotedesktop zu

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

Öffnen Sie einfach ein CMD-Fenster, geben Sie mstscden PC-Namen oder die IP-Adresse ein, klicken Sie auf "Optionen" und begeben Sie sich auf eine fröhliche Art und Weise.

Ader
quelle
0

Alternativ können Sie ein Stapelskript (.bat) mit den folgenden Zeilen erstellen:

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

Hinweis: Ersetzen Sie die IP-Adresse, den Benutzernamen und das Kennwort im Skript durch die gültigen Anmeldeinformationen.

Führen Sie nun das Skript aus, indem Sie darauf doppelklicken.

Das funktioniert.

user427276
quelle