批處理實現自動遠程連接

1. 批處理實現自動遠程連接

@Echo off
Set SERVER=172.168.1.66
Set USERNAME=sunhaibo
Set PASSWORD=123456
Cmdkey /generic:TERMSRV/%SERVER% /user:%USERNAME% /pass:%PASSWORD%
Start mstsc /v:%SERVER%
Timeout 3
Cmdkey /delete:TERMSRV/%SERVER%

@Echo off
Set SERVER=172.168.1.55
Set USERNAME=sunming
Set PASSWORD=123asd
Cmdkey /generic:TERMSRV/%SERVER% /user:%USERNAME% /pass:%PASSWORD%
Start mstsc /v:%SERVER%
Timeout 3
Cmdkey /delete:TERMSRV/%SERVER%

 

2. 代碼實現(C#)

/// <summary>
        /// リモートデスクトップを接続する処理
        /// </summary>
        private static void RemoteConnect()
        {
            try {
                logger.Info("リモートデスクトップを接続する処理 開始");

                // リモートデスクトップが接続されていない場合
                if (remoteDesktopForm.axMsRdpClient9NotSafeForScripting.Connected == (int)CommonConst.RDP_Connect_Status.RDP_DISCONNECT) {
                    // リモートデスクトップ接続 
                    remoteDesktopForm.axMsRdpClient9NotSafeForScripting.Server = 172.16.11.22;
                    remoteDesktopForm.axMsRdpClient9NotSafeForScripting.UserName = rdpUserName;
                    remoteDesktopForm.axMsRdpClient9NotSafeForScripting.AdvancedSettings2.RDPPort = 3389;;
                    remoteDesktopForm.axMsRdpClient9NotSafeForScripting.AdvancedSettings2.ClearTextPassword = rdpPassword;
                    remoteDesktopForm.axMsRdpClient9NotSafeForScripting.AdvancedSettings7.EnableCredSspSupport = true;
                    remoteDesktopForm.axMsRdpClient9NotSafeForScripting.Connect();

                    logger.Info("リモート接続を実行する。(ユーザーID = " + rdpUserName + ")");
                }
            }
            catch (Exception ex) {
                // ログ出力
                logger.Error("リモート接続を実施する時、異常が発生する。(" + ex.Message + ")");
            }
            finally {
                logger.Info("リモートデスクトップを接続する処理 終了");
            }
        }

 

/// <summary>
        /// リモート接続を切斷する処理
        /// </summary>
        private void RemoteDisconnect()
        {
            logger.Info("リモート接続を切斷する処理 開始");

            // RDP コントロールコントロールが接続されていない場合
            if (remoteDesktopForm.axMsRdpClient9NotSafeForScripting.Connected == (int)CommonConst.RDP_Connect_Status.RDP_DISCONNECT) {
                return;
            }

            // RDP コントロールの接続を確立している場合
            while (remoteDesktopForm.axMsRdpClient9NotSafeForScripting.Connected == (int)CommonConst.RDP_Connect_Status.RDP_ESTABLISHING_CONNECT) {
                Thread.Sleep(100);
            }

            // コントロールが接続されている場合
            if (remoteDesktopForm.axMsRdpClient9NotSafeForScripting.Connected == (int)CommonConst.RDP_Connect_Status.RDP_CONNECTED) {
                // リモート接続を切斷する
                remoteDesktopForm.axMsRdpClient9NotSafeForScripting.Disconnect();
            }

            logger.Info("リモート接続を切斷する処理 終了");
        }

 

3. mstsc.exe

要事先獲取到加密後的登錄密碼進行配置 rdp 文件

 

mstsc.exe でにリモート デスクトップを自動的接続する方法:まずmstsc.exe にユーザー名とパスワードで一回に接続する。接続するとき、コンピューターとユーザー名を入力し、警告メッセージを表示しないで設定し、接続用の .RDP ファイルを保存する。パスワードが他のAPPで暗號化にし、接続ファイル .RDP に追加する。コマンドで「mstsc.exe [<接続ファイル>] [/v: サーバー[:ポート]]」を実行し、リモート デスクトップが自動的に接続することが実現できる。

自動連接登錄時,要先作成 mstsc.exe 登錄時保存的rdp文件,通過命令【mstsc.exe [<接續用的 .RDP 文件名>] [/v: 要連接的遠程PC]】可以實現遠程登錄。

 

 

 

 

 

 

在“詳細設定”這個項目中可以選擇,不顯示警告

 

 

密碼是後期手動補上的加密後的密碼。

full address:s:程桌面地址

username:s:

password 51:b:加密後的密

 

各方法優劣對比

 

發佈了12 篇原創文章 · 獲贊 8 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章