RDP ファイルのパスワード欄に入れる文字列について

リモートデスクトップ用のスクリプトファイルで見られる RDP ファイルにはパスワードを保存する項目がありませんが、実は、 password 51 という、パスワードを設定する項目があります。

リモートデスクトップ接続で、rdp - マイクロソフト コミュニティ

|・ω・) 。o (資格情報とかいじれば保存すること自体はできるけど、RDPファイルに入れて持ち歩くのはできないはず )

しかし、これ、BIG BLOB形式で入力しなくてはならず、手で入力するのは不可能です。

というわけでプログラムを作ってみた

    DataIn.cbData = lstrlenW(psx)*2;
    DataIn.pbData = (BYTE*)psx;
    CryptProtectData(&DataIn, L"psw",NULL, NULL, NULL, CRYPTPROTECT_UI_FORBIDDEN, &pDataEncrypted);
    while ( count <= (int)pDataEncrypted.cbData ){
            wsprintfA(tmp,"%02X",pDataEncrypted.pbData[count]);
            lstrcatA(outstr,tmp);
            count++;
    }
    LocalFree(pDataEncrypted.pbData);
    printf("password 51:b:%s\015\012", outstr);

基本的にはこんな感じ

RDPPS100.cab

Delphi とかで書いてる人はたくさんいたんだけど、なぜかCで書いてる人がいなかった・・・

注:保存した情報はマシンごとに違うので毎回生成する必要がある

USBなどに入れて使いたい場合は次のようなバッチファイルを書けばOK

@echo off
REM まず ANSI.RDPという に ANSI形式で保存した RDP ファイルを用意します
copy ANSI.rdp def.rdp
REM password は接続パスワードを設定
RDPPSTR.exe password >> def.rdp
mstsc def.rdp
del def.rdp

通常 RDPファイルはUNICODEで保存されてるので、メモ帳なのでANSIで保存しなおせばOKです。

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です