Windows 7 では、同じホストに対して異なる資格情報を保存することはできないことを認識していますが、いくつかの回避策が必要です。
コードでユーザー名とパスワードを手動で指定できますか? それらを一時 .rdp ファイルに保存しますか?
Process rdcProcess = new Process();
rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\cmdkey.exe");
rdcProcess.StartInfo.Arguments = "/generic:TERMSRV/192.168.0.217 /user:" + "username" + " /pass:" + "password";
rdcProcess.Start();
rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\mstsc.exe");
rdcProcess.StartInfo.Arguments = "/v " + "192.168.0.217"; // ip or name of computer to connect
rdcProcess.Start();
上記のコードは .217 との接続を開始し、パスワードの入力を求められません。手伝ってくれてありがとう。
PowerShellを使用する場合は、次を使用して資格情報を追加できます
cmdkey /generic:DOMAIN/"computername or IP" /user:"username" /pass:"password"
次に、を使用してRDP接続を呼び出します
Start-Process -FilePath "$env:windir\system32\mstsc.exe" -ArgumentList "/v:computer name/IP" -Wait
クレデンシャルを削除する場合は、
cmdkey /delete:DOMAIN/"Computer name or IP"
「」を削除することを忘れないでください
これは、Krzysiek の投稿の更新版です。
var rdcProcess = new Process
{
StartInfo =
{
FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\cmdkey.exe"),
Arguments = String.Format(@"/generic:TERMSRV/{0} /user:{1} /pass:{2}",
fp.ipAddress,
(String.IsNullOrEmpty(fp.accountDomain)) ? fp.accountUserName : fp.accountDomain + "\\" + fp.accountUserName,
fp.accountPassword),
WindowStyle = ProcessWindowStyle.Hidden
}
};
rdcProcess.Start();
rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\mstsc.exe");
rdcProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
rdcProcess.StartInfo.Arguments = String.Format("/f /v {0}", fp.ipAddress); // ip or name of computer to connect
rdcProcess.Start();
ユーザーに城の鍵を渡さずにネットワークへのアクセスを許可する方法を見つけようとしている間、私はチームの数人のメンバーに対してリモート デスクトップ アクセスを有効にしました。これについてさらに考えてみると、国防総省で働いていた数年前のプロジェクトをすぐに思い出しました。そのプロジェクトでは、必要な人員のみにアクセスを「ロックダウン」し、サーバー上のプログラムへのアクセスを制限する必要がありました。Microsoft の KnowledgeBase に時間を費やした後、RDP 接続を確立し、ログインして、そのサーバー上の 1 つの特定のアプリケーションへのアクセスを制限した従業員用のデスクトップ「ショートカット」を作成できることに気付きました。