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); |
基本的にはこんな感じ
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です。
Comments