2017-06-02 35 views
1

我已經創建了一個小工具,我想通過mstsc.exe連接到遠程桌面。使用進程通過mstsc.exe失敗

我發現了很多樣品,顯然他們都工作。但對於一些重複我不是! :(

其實它是一個小的代碼

private void RunRDP(object sender, EventArgs e) 
{ 
    Process rdcProcess = new Process(); 
    //Add/Change Credentials 
    /** 
     rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\cmdkey.exe"); 
     rdcProcess.StartInfo.Arguments = String.Format(@"/generic:TERMSRV/{0} /user:{1} /pass:{2}", tbServer.Text, tbUsername.Text, tbPassword.Text); 
     rdcProcess.Start(); 
    */ 

    //Perform mstsc 
    rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\mstsc.exe"); 
    rdcProcess.StartInfo.Arguments = string.Format(@"/v {0}", tbServer.Text); 
    rdcProcess.Start(); 
} 

我拿出添加憑據只是爲了測試連接...仍然失敗。

當我發表意見線

rdcProcess.StartInfo.Arguments = string.Format(@"/v {0}", tbServer.Text); 

它至少打開mstsc.exe

在任何其他情況下,我收到錯誤

無效的連接文件

錯誤必須有一些這樣的。將此從德語翻譯爲英語不會帶來任何類似的錯誤說明:D

爲什麼我的程序失敗?

+0

請告訴我'tbServer'的價值? –

+0

服務器名稱例如'myCustomerNumber.myHoster.xyz'...但我刪除了很多...讓我糾正這一點... – Dwza

回答

2

運行'mstsc /?'給我:

/v:<server[:port]> -- Specifies the remote computer to which you want to connect. 

所以我想你應該把它改爲:

rdcProcess.StartInfo.Arguments = string.Format(@"/v:{0}", tbServer.Text); 
+0

從命令行,它完美的作品沒有: –

+0

很奇怪...我改變了這個..現在它作品。我再次刪除它,突然我的發佈代碼工作以及...嘗試左右,因爲1 houre和.... wtf? :無論如何......它顯然現在工作.... – Dwza

+0

確實很奇怪。出於好奇,什麼是'mstsc /?'給你的系統? – Johan