説明
Windowsのリモートデスクトップ接続(mstsc.exe)を使用して、サーバーやリモートPCにリモートデスクトップ接続する際に、初回接続時にユーザー名とパスワードを要求されて認証が必要になってしまいますが、資格情報を事前に指定することで、資格情報の要求なしに接続することが出来ます。
システム管理をしていると、GUIで操作をしていると何かと煩雑になることがあるので、これをバッチにしておき、毎回認証要求なしにリモートデスクトップ接続をできるようにしました。
また、初めてリモートデスクトップ接続先サーバーに接続した際に「このリモートコンピュータの IDを識別できません。」のメッセージが出ることがあるので、あらかじめレジストリにキーを追加しておき、メッセージの表示を回避します。(ポリシーの設定により出ない場合もあります)
なお、バッチファイルではリモートデスクトップ接続後に、追加した資格情報及びレジストリの削除しています。
使い方
1.下記をコピーして、ファイル名を「mstsc.bat」 で保存します。
- mstsc.bat
@Echo off REM ############################ REM #接続先情報 REM ############################ Set SERVERNAME=%1 Set PORT=3389 Set USERNAME=%2 Set PASSWORD=%3 if ""%1""=="""" goto error if ""%2""=="""" goto error if ""%3""=="""" goto error REM ############################ REM #このリモートコンピュータの REM #IDを識別できません。を回避 REM #レジストリ追加 REM ############################ reg add "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client" /v AuthenticationLevelOverride /t REG_DWORD /d 0 /f REM ############################ REM #資格情報の設定 REM ############################ Cmdkey /generic:TERMSRV/%SERVERNAME% /user:%USERNAME% /pass:%PASSWORD% Timeout 1 REM ############################ REM #リモートデスクトップ接続 REM ############################ Start mstsc /v:%SERVERNAME%:%PORT% Timeout 5 REM ############################ REM #設定した資格情報を削除する REM ############################ Cmdkey /delete:TERMSRV/%SERVERNAME% REM ############################ REM #このリモートコンピュータの REM #IDを識別できません。を回避 REM #レジストリ削除 REM ############################ reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client" /v AuthenticationLevelOverride /f goto end :error ECHO 【使い方】mstsc.bat <接続先コンピュータ名> <接続ユーザーアカウント> <接続ユーザーパスワード> ECHO. :end
※うまく動かない場合、バッチファイル内の「Timeout」コマンドのスリープ時間を調整してください。
2.コマンドプロンプトを開き、下記のコマンドを実行します。
バッチ保存先パス\mstsc.bat <接続先コンピュータ名> <接続ユーザーアカウント> <接続ユーザーパスワード>
- 実行結果例
C:\Users\xxxxx>C:\Users\xxxxx\デスクトップ\mstsc.bat pcname admin adminpw この操作を正しく終了しました。 CMDKEY: 資格情報を正しく追加しました。 0 秒待っています。続行するには何かキーを押してください ... 0 秒待っています。続行するには何かキーを押してください ... CMDKEY: 資格情報を正しく削除しました。 この操作を正しく終了しました。 C:\Users\xxxxx>