2016-06-30 10 views
0

rdpを使用してサーバーにログインしようとしています。私は、rdpを使ってサーバに自動的にログインするwindows procesを持っています。これは動作していません。私は、サーバーを監視する場合、私は、ユーザーがログインしている表示されていない。これは私のコードです:。Windowsサービスでrdpに接続できません

public static void ConnectToRDP(string server, string user, string password) 
    { 
     Process rdcProcess = new Process(); 
     rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\cmdkey.exe"); 
     rdcProcess.StartInfo.Arguments = string.Format("/generic:TERMSRV/{0} /user:", server) + string.Format(@"TEST\{0} /pass:{1}", user, password); 
     rdcProcess.Start(); 

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

私は私のローカルマシンからではなく、サーバーにデプロイした後、それを起動したときにコードがうまく実行され、そうでありません走る何か案は?

+0

おそらく、これはデプロイメントサーバーのアクセス許可の問題です。あなたの場所にネットワークまたはサーバーの管理者がいますか? – MethodMan

+0

あなたの答えをありがとう。展開サーバーは確実に保護されています。私はパーミッションをチェックするつもりです。私はあなたに連絡します。 – Yaza

+0

こんにちは私はまた戻ってきました。私はチェックしたが、すべての権限はシステム管理者に応じて正しく設定されている。どのアクセス許可を設定する必要がありますか?もっと説明をくれますか? – Yaza

答えて

0

私のコードにバグがありました。私はTEST上のドメインを、プロダクションドメインに変更するのではなく、ハードコードしました。コードは正常に動作し、リモートデスクトップに接続します。私はコードを変更しました:

public static void ConnectToRDP(string domain, string server, string user, string password) 
    { 
     Process rdcProcess = new Process(); 
     rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\cmdkey.exe"); 
     rdcProcess.StartInfo.Arguments = string.Format("/generic:TERMSRV/{0} /user:", server) + string.Format(@"{0}\{1} /pass:{2}", domain, user, password); 
     rdcProcess.Start(); 

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

ありがとうございます。

関連する問題