none
如何透過 VB 啟動 mstsc.exe 連接到 Terminal Server RRS feed

  • 問題

  • 想透過執行 VB 的程式啟動 Terminal server 的連結程式 mstsc.exe , 讓使用者只要執行 VB 的程式就可以連線, 此應用可以限制機器必需安裝連結程式才可以上線, 避免 user 不當的使用 terminal server 的資源, 希望有高手能指點如何使用 VB 的程式碼設定參數並啟動連結 Windows Server 的 Terminal Server

    很感謝經由網友 Michael 細心的指導, 以下是我在 XP 及 Vista 測試的最佳解決方案,
    請先 download 外部應用程式
    http://www.remkoweijnen.nl/blog/download/launchrdp.zip
    我已經check  該程式好幾遍, 應該沒有毒

    可加入參數直接執行該程式,

    DOS command
    c:\LaunchRDP 192.168.1.1 3389 Username 192.168.1.1 Password 0 0 0

    或是經由 VB 執行該外掛程式, 以下是測試 OK 的副程式
    ================================================
       Public Sub ConnectTerminal(ByVal IP As String, ByVal Port As String, ByVal Username As String, ByVal Password As String)
            Dim Action As New Process
            Action.StartInfo.FileName = "d:\LaunchRDP.exe"
            Action.StartInfo.Arguments = IP & " " & Port & " " & Username & " " & IP & " " & Password & " 0 0 0"
            Action.Start()
            Action.WaitForExit() ' 指示 Process 元件無限期等候相關處理序的結束。
        End Sub
    ================================================================

    以上完全要感謝 Michael 的指導, 在此我表示十萬分感激及敬意,當然更要感謝無私提供 launchRDP.exe  的作者 !

    • 已編輯 Leemus 2009年2月13日 下午 03:01
    2009年1月22日 上午 09:11

解答

  •  很感謝經由網友 Michael 細心的指導, 以下是我在 XP 及 Vista 測試的最佳解決方案,
    請先 download 外部應用程式
    http://www.remkoweijnen.nl/blog/download/launchrdp.zip
    我已經check  該程式好幾遍, 應該沒有毒

    可加入參數直接執行該程式,

    DOS command
    c:\LaunchRDP 192.168.1.1 3389 Username 192.168.1.1 Password 0 0 0

    或是經由 VB 執行該外掛程式, 以下是測試 OK 的副程式
    ================================================
       Public Sub ConnectTerminal(ByVal IP As String, ByVal Port As String, ByVal Username As String, ByVal Password As String)
            Dim Action As New Process
            Action.StartInfo.FileName = "d:\LaunchRDP.exe"
            Action.StartInfo.Arguments = IP & " " & Port & " " & Username & " " & IP & " " & Password & " 0 0 0"
            Action.Start()
            Action.WaitForExit() ' 指示 Process 元件無限期等候相關處理序的結束。
        End Sub
    ================================================================

    以上完全要感謝 Michael 的指導, 在此我表示十萬分感激及敬意,當然更要感謝無私提供 launchRDP.exe  的作者 !
    • 已標示為解答 Leemus 2009年2月13日 下午 03:02
    2009年2月13日 下午 03:02

所有回覆

  • 不確定您需要做到甚麼程度,如果只是要啟動 mstsc.exe,可以試試:

    System.Diagnostics.Process.Start("mstsc.exe") 



    http://huan-lin.blogspot.com/
    2009年1月29日 上午 07:17
  • Dear Michael,

    要連接 Terminal Server 時透過 mstsc.exe 設定連線參數連線,也可以製成 RDP 的檔案, 方便以後使用
    連線參數包括最基本的三個參數 "電腦"(我用 IP),"名稱"(登陸該Server 的UserName)及"密碼"( 登陸該Server的Password)
    如果我要在別台電腦使用 Terminal Server 時,上述的步驟都必須重複做一遍,因為做好的 RDP 檔在不同電腦不能使用
    所以我想用一個簡單的 VB程式,啟動 mstsc.exe 同時設定三個基本參數連接 Terminal Server.

    Process.Start 我已經試過,看起來他要求設定的參數, Username, Password, Domain 都是本機的, 不曉的這個command 的用途做甚麼? 還是我不會用 ?

    當然在該 PC 做好 RDP, 然後執行 Process.Start("mstsc.exe","C:\XX.RDP") 也可以, 如過有 40 台電腦 都要個別設定,我看都不必麻煩寫 VB了,直接點選RDP就可以,而且 MIS 也不用混了.

    透過 VB 程式安裝連線程式最大目的目的, 除了方便作業外,更重要的是 User 不必知道登陸密碼,所以把該程式解除安裝,也可收回登陸權限,而且只要 VB 程式做好辨識電腦的工作,使用者也無法將該程式移到他處使用,目的就是要保護 Terminal Server 的資源.
    如果有人能提供連線的 VB 程式碼,我願意花錢購買這個技巧
    2009年2月8日 上午 01:08
  • Dear Leemus,

    原來如此,這樣我大概了解您的問題了。別太早絕望,或許這問題並不需要花錢。

    請看看這篇文章:

    裡面提到如何加解密 rdp 檔案裡面的密碼,這樣你就可以用程式產生 rdp 檔案。

    我沒有實際試過,但如果該文所提供的方法可行,或許能解決您的問題。

    http://huan-lin.blogspot.com/
    2009年2月8日 上午 05:18
  • Dear Michael,

    你能找到這個資料實在令人意外,也非常感激你的協助,之前我曾經想解讀 RDP 的檔案,雖然看到 password的字串,我以為該 RDP移到其他電腦也應該可用,其實不然,原因可能是解譯時還需要加入該機的參數,甚至在 Windows Server 2003 作的 RDP看到沒有解譯的 password 和解譯過的password 同時存在一個 RDP檔案,如下

    password :oxoxoox
    disable wallpaper:i:1
    disable full window drag:i:1
    disable menu anims:i:1
    disable themes:i:0
    disable cursor setting:i:0
    bitmapcachepersistenable:i:1
    disable wallpaper:i:1
    password 51:b:01000000D08C9DDF0115D1118C7A00C04FC297EB01000000CC1BBDA23E20DE4880C54B82979FF28A0000000008000000700073007700000003660000A8000000100000005E63EFB16ED065611D7B8119711DB7340000000004800000A0000000100000009267B7575EC74B96F6395D766E41654C080200001E965CB3AD9FDC30D277022A89BBE95600D8889D2A99D0E6337AF116CDE0F13D869DCFD2BCDA29F5E1BCD8FF8FB1DC4BCCD45A724B52B1A79BA81E3733021013D2AF57AC4036A58061C08E7B5EE4D45EEBB25888A8633AE99195F47812A0089908B30DF5376795021F729C9A063637F1411E9CA5E4CB1F7F7A8D0E59EEC41231150FC2E35B20D9E49024AE976F25F9AFA43CCCB37A07F5D9D7510ED50C1E48A010ED13B9484E9E23FE89954ED81965164B4503254EF53FB4538E596432A1DC98BC2A1E4D5E60B5D786C32AB94AD9E4527116C4745BC661C1F5BB8D6E833FB600D472021E0C91FFADA99446C5791CACA969FDC12ADCBF30FD57CF1EA8B56758B0AB7232F5B6C6EB213B4EC6BADB6D7200DBFDA443F4A6D5AAE480FE01CF0D24FE6BCB2B452463716E31DEBAB71185A9137443BD6C84B161BF24A6C842941B6DE435AB5BF01A60FB47D6D60768E506ACE27E9CB93CEB3A0DF190E07AC8BF4EB300CE60C173BFAA93FD5A6302086A5B1E8E027E8BBDD22CC950B35FE1BA29B0C1D3833060366B7689148EE62DD66D1109110468A555DC194E39514BE23A7F1D1E0C88E0F68D9F4CB29EAB8E2D87380D8579F6319226FF7F4DB30AD9DD4A4E6D4F497D61A1BC258C8915040F1E676FB9A0C9B8FA3F885912ADBB0F311BE4E503A77DD05BE8C6CED9296F70274BF1ECC0562D99F24648DDD01B02418933A085D4A537689685D809EC85B514000000E586412FD67A940F3C3E8041B37A9CA0E0DE450D

    我看不懂C,所以也看不懂作者的範例在寫甚麼,至少在我的電腦轉換另一台電腦的作的RDP password字串時並不相同,這個工具可能可以解決 Windows XP 的連線問題, 讀  Vista 的RDP檔發現,Password 的字串不見了,我猜 Microsoft 也察覺這個漏洞, 看來他並不想開放這方面的資源,這個工作看起來很麻煩,至少已經有三種不同版本的 RDP, 單純解決一種系統的 RDP,也是一樣殘廢,我覺得應該不是一個很好的方向.
    我還是衷心的感激你這麼熱心的協助,

    2009年2月8日 下午 02:12
  • Dear Michael,

    When I read the article that response to writer. I am very sure the RDP decrypt shall include local SID (Security Identifier).
    That can explain why RDP can not run under non-local computer.
    Is it possible that you are able to create a VB.NET source code to encrypt the password in XP or Vista or both for me ? 
    Please, send me your offer. That would be great thanksful to let me share your expertise.
    I would recommend, we discuss this matter under my personal E-Mail windt.jonathan@gmail.com.

    TKS & VBR

    Jonathan
    2009年2月8日 下午 02:40
  •  很感謝經由網友 Michael 細心的指導, 以下是我在 XP 及 Vista 測試的最佳解決方案,
    請先 download 外部應用程式
    http://www.remkoweijnen.nl/blog/download/launchrdp.zip
    我已經check  該程式好幾遍, 應該沒有毒

    可加入參數直接執行該程式,

    DOS command
    c:\LaunchRDP 192.168.1.1 3389 Username 192.168.1.1 Password 0 0 0

    或是經由 VB 執行該外掛程式, 以下是測試 OK 的副程式
    ================================================
       Public Sub ConnectTerminal(ByVal IP As String, ByVal Port As String, ByVal Username As String, ByVal Password As String)
            Dim Action As New Process
            Action.StartInfo.FileName = "d:\LaunchRDP.exe"
            Action.StartInfo.Arguments = IP & " " & Port & " " & Username & " " & IP & " " & Password & " 0 0 0"
            Action.Start()
            Action.WaitForExit() ' 指示 Process 元件無限期等候相關處理序的結束。
        End Sub
    ================================================================

    以上完全要感謝 Michael 的指導, 在此我表示十萬分感激及敬意,當然更要感謝無私提供 launchRDP.exe  的作者 !
    • 已標示為解答 Leemus 2009年2月13日 下午 03:02
    2009年2月13日 下午 03:02