ฉันต้องการเปิดการเชื่อมต่อเดสก์ท็อประยะไกลโดยตรงจากทางลัดและฉันต้องการฝังรหัสผ่านชื่อผู้ใช้ภายในทางลัด
ฉันจะรับเส้นทางของเดสก์ท็อประยะไกลจากทางลัด RDP และเราสามารถตั้งรหัสผ่านในทางลัด RDP ได้อย่างไร
ฉันต้องการเปิดการเชื่อมต่อเดสก์ท็อประยะไกลโดยตรงจากทางลัดและฉันต้องการฝังรหัสผ่านชื่อผู้ใช้ภายในทางลัด
ฉันจะรับเส้นทางของเดสก์ท็อประยะไกลจากทางลัด RDP และเราสามารถตั้งรหัสผ่านในทางลัด RDP ได้อย่างไร
คำตอบ:
เมื่อบันทึกไฟล์ RDP ให้เลือกช่องทำเครื่องหมายบันทึกรหัสผ่านของฉัน นี่จะบันทึกรหัสผ่านของคุณไปยัง.RDP
ไฟล์ในรูปแบบที่เข้ารหัส ระวังให้ดีเพราะคนรู้วิธีถอดรหัส :
password:abc123
ร้านค้าไฟล์รหัสผ่านในรูปแบบเข้ารหัสก็ไม่ง่ายเหมือนการเปิดและการพิมพ์ หากคุณสามารถหาเครื่องมือในการเข้ารหัสให้เป็นรูปแบบนั้นคุณก็สามารถทำได้ แต่ฉันสงสัยว่าบางคนจะรบกวนการสร้างเครื่องมือดังกล่าว
ลองแก้ไขไฟล์. 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();
}
}
Remote Desktop Plusจาก Donkz.nl
คุณสมบัติ # 1:
เข้าสู่ระบบโดยอัตโนมัติจากบรรทัดคำสั่ง
ตัวอย่าง:
rdp /v:nlmail01 /u:administrator /p:P@ssw0rd! /max
ถูกต้องบางส่วนคุณไม่สามารถแก้ไขข้อมูลประจำตัวของ Microsoft ได้อย่างง่ายดายและคำสั่งนั้นไม่ได้rdp
แต่ถ้าคุณเรียกใช้คำสั่งmstsc
มันจะแก้ไขปัญหา 'บันทึกรหัสผ่าน' ใน WinXP
เข้าถึง Remote Desktop ผ่าน Commandline
mstsc [<connection file>] [/v:<server[:port]>] [/admin] [/f[ullscreen]] [/w:<width>] [/h:<height>] [/public] | [/span] [/edit "connection file"] [/migrate] [/?]
เพียงเปิดหน้าต่าง CMD พิมพ์mstsc
ใส่ชื่อ PC หรือ IP คลิกตัวเลือกและดำเนินการอย่างสนุกสนาน แต่ทำ Save As ... เพื่อให้คุณมีทางลัดที่ใช้งานได้ในภายหลัง
อีกวิธีหนึ่งคือสร้างแบทช์สคริปต์ (.bat) ด้วยบรรทัดต่อไปนี้:
cmdkey /generic:"computername or IP" /user:"username" /pass:"password"
mstsc /v:"computer name or IP"
หมายเหตุแทนที่ IP ชื่อผู้ใช้และรหัสผ่านในสคริปต์ด้วยข้อมูลประจำตัวที่ถูกต้อง
ตอนนี้รันสคริปต์โดยเพียงแค่ดับเบิลคลิกที่มัน
วิธีนี้ใช้ได้ผล