Comment créer un raccourci vers une connexion de bureau à distance et inclure le mot de passe?

13

Je souhaite ouvrir une connexion de bureau à distance directement à partir d'un raccourci et je veux intégrer le mot de passe du nom d'utilisateur dans le raccourci.

Comment puis-je obtenir le chemin d'un bureau distant à partir d'un raccourci RDP, et pouvons-nous définir un mot de passe dans un raccourci RDP?

engrenage en métal solide
la source
réponse disponible par étapes sur: stackoverflow.com/a/40017890/4361073
parasr

Réponses:

12

Lors de l'enregistrement du fichier RDP, décochez la case Enregistrer mon mot de passe . Cela enregistrera votre mot de passe dans le .RDPfichier dans un format crypté. Attention cependant, car les gens ont découvert comment le décrypter :

texte alternatif

John T
la source
comment ajouter un mot de passe manuellement pour ouvrir le fichier RDP dans le bloc
engrenage métallique solide
Ce n'est plus un problème avec MSTSC v6 - les informations d'identification sont stockées ailleurs sur le système (Paramètres locaux \ Données d'application \ Microsoft \ Credentials), et pour autant que je sache, elles sont cryptées avec le mot de passe de connexion de l'utilisateur.
user1686
J'ai déjà un fichier RDP. Je veux éditer le fichier et insérer le mot de passe
Metal Gear
@Jitendra le fichier stocke le mot de passe dans un format crypté, ce n'est pas aussi simple que de l'ouvrir et de le taper password:abc123. Si vous pouvez trouver un outil pour les crypter dans ce format, vous le pouvez, mais je doute que quelqu'un prenne la peine de créer un tel outil.
John T
Il n'y a pas d'option pour entrer / enregistrer le mot de passe dans Windows 7. Pouvez-vous aider?
digitguy
5

Essayez de modifier directement les fichiers .rdp. J'ai trouvé un article, Comment les mots de passe rdp sont cryptés , expliquant comment, et au fond, dans les messages, il y a aussi du code pour faire cela en 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();
    }
}
Tipx
la source
2

Remote Desktop Plus de Donkz.nl.

Caractéristique # 1:

Connectez-vous automatiquement depuis la ligne de commande.

Exemple:

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

Eh bien, partiellement correct, vous ne pouvez pas vraiment modifier facilement les informations d'identification Microsoft, et la commande ne l'est pas rdp, mais si vous exécutez la commande, mstscelle corrigera le problème de «sauvegarde du mot de passe» sur WinXP.

Accéder au bureau à distance via la ligne de commande

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

Il vous suffit d'ouvrir une fenêtre CMD, de taper, de saisir mstscle nom du PC ou l'IP, de cliquer sur Options et de poursuivre votre joyeux chemin, mais effectuez un enregistrement sous ... afin d'avoir un raccourci fonctionnel pour plus tard.

Coeur
la source
0

Alternativement, créez un script batch (.bat) avec les lignes suivantes:

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

Remarque remplacez l'adresse IP, le nom d'utilisateur et le mot de passe dans le script par les informations d'identification valides.

Exécutez maintenant le script en double-cliquant simplement dessus.

Cela marche.

user427276
la source