問題タブ [mstsc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ネットワーク レベル認証を使用してリモート デスクトップ サーバーに適切な資格情報を提供できなかった場合にログオン試行ウィンドウが失敗するのを防ぐ
「Microsoft Terminal Services Control Type Library」を使用して、リモート デスクトップ サーバーへの接続を確立しています。ネットワーク レベル認証 (NLA) を使用するリモート デスクトップ サーバーに接続するときに、適切なユーザー名とパスワードの組み合わせを提供できない場合に表示される「Windows セキュリティ」プロンプトを防止または抑制する方法を探しています。ウィンドウは次のようになります。
現時点でオンラインで見つけることができるすべての設定の組み合わせについて読んで試しましたが、どれも成功していません。これは私がstackoverlowで見つけたいくつかの質問で、この正確な問題について話し、おそらく解決されたと思われますが、答えは私にとってはうまくいきません:
AxMsRdpClient6NotSafeForScripting AllowPromptingForCredentials
ばかげているように聞こえるかもしれませんが、私の最終的な目標は、rdp サーバーへの接続を試み、意図的に無効なユーザー名/パスワードを入力し、失敗したときに切断することです。実際に何かを接続したり表示したりすることは気にしません。問題がある場合は、別のアプリが後で使用するリモート サーバーのイベント ログで失敗したログオン試行をトリガーするためにこれを行っています。
以下のコードは、すでにイベント ログでログオン試行の失敗をトリガーしていますが、この失敗したログオン ボックスがクライアント マシンに表示されるのを止める方法が見つかりません。開いた。リモート デスクトップ サーバーが任意のバージョンのリモート デスクトップを実行しているコンピューターからの接続を許可するように構成されている場合 (安全性の低いオプション)、ポップアップ プロンプトは明らかに NLA が提供する追加のセキュリティの一部であるため、同じ問題は発生しません。
このコントロールのさまざまな設定の組み合わせをすでに試したので、頭が回転します。上記の他のスタックオーバーフローの質問の1つをモデルにした1つの例を次に示します。
おそらく、このポップアップを防ぐべき行ですが、その値がまたはocx.PromptForCredentials = False
に設定されている場合、違いはないようです。実際に機能する可能性のあるプロパティ名からほぼ推測できますが、繰り返しますが、その値を何に設定しても違いはありません。いつも同じポップアップが表示されます。True
False
ocx.PromptForCredsOnClient
この時点で、何が間違っているのかわかりませんが、これを機能させるには、ベースAxMsRdpClient6NotSafeForScripting
オブジェクトを別のものとしてインスタンス化する必要があるか、フォームにドロップしたときにコントロールが使用するデフォルトのタイプでAxMsRdpClient9NotSafeForScripting
さえあると直感的にわかりますAxMsTscAxNotSafeForScripting
. しかし、私はすでにこれらの設定の組み合わせをたくさん試しましたが、誰かが状況に光を当てることができることを望んでいます.
また、.Net を使用してリモート デスクトップ サーバーに接続する別の方法がMicrosoft Terminal Services Control Type Library
あれば、それを使用する必要がないことにも言及する必要があります。それらが存在する場合、それらを見つけるのはあまり運がありませんでしたが、検索で何かを見逃した場合はお知らせください.
編集:自分のサーバーが私のサーバーと同じか似たように設定されていることを確認するには、満たす必要がある要件が 2 つだけあります。
- リモート デスクトップは、Vista 以降のバージョンの Windows で実行する必要があります
- NLA を使用するには、リモート デスクトップを設定する必要があります。Win7 では、正確なオプション テキストは次のとおりです。
その時点で、接続しようとしたときにサーバーがログインの失敗をログに記録し、資格情報ボックス (またはその他のポップアップ) がクライアント側に表示されない限り、コードでどのオプションを変更してもかまいません。
このコードが必要とする適切な参照を追加する最も簡単な方法は、COM タブから「Microsoft ターミナル サービス コントロール」をツールボックスに追加し、「Microsoft RDP クライアント コントロール」をフォームにドロップすることです。詳細はこちら: http://s.codeproject.com/Articles/43705/Remote-Desktop-using-C-NET
この質問をより一般的にする場合に備えて、C#の同じコードを次に示します。
windows - Windows リモート接続ループ MSTSC
Windows を介してリモート マシンのリストに接続するプログラムを作成しました。私が抱えている唯一の問題は、リモートデスクトップに接続した後、リモートから切断するまでWindowsコマンドプロンプトが「フリーズ状態」になることです。その時点で、別のマシンを選択できる場所にコードをループバックします。
複数のマシンに接続できるように、切断せずにループバックできるようにしたい。
これが私のコードです:
goto :machinelist
接続先のサーバーを閉じるまで、cls clear コマンドを実行してマシン リスト ( ) に戻ることはありません。
「&」を使用して 2 つのコマンドを結合しようとしましたが、うまくいきませんでした。
すなわちmstsc /v:"SERVERNAME" & goto :machinelist
mstsc の後で切断せずに cls に移動して :machinelist に移動するにはどうすればよいですか?
windows - HTA から実行した場合、bWaitOnReturn は mstsc.exe に影響を与えません
VBScript では、このWScript.Shell.Run
メソッドには3 つの引数があり、その 3 番目の引数は、処理を続行する前にプログラムが新しく生成されたプロセスの終了を待機する必要があるかどうかを指定するブール値です。
この動作をmstsc.exe
(Windows のリモート デスクトップ接続プログラム) で正しく動作させるのに問題があります。
以下のファイルを として保存してtest.vbs
実行するとcscript test.vbs
、期待どおりに動作します。
しかし、HTA ファイルから同じコードを実行しようとすると、正しく動作せず、実行後のメッセージ ボックスmstsc.exe
が待機せずにすぐに表示されます。
なぜこれが起こるのか、それを修正する方法はありますか?
編集: Windows 10 および 7 でこれをテストしました。
c# - AxMSTSCLib からの AxMsRdpClient9 の MsRdpClient_OnDisconnected イベントで「内部エラーが発生しました」の原因は何ですか?
単一の ActiveX コントロールを含む単純な Windows フォーム アプリケーションがあります。これは Microsoft RDP Client Control - バージョン 10 です。フォームのコンストラクターは次のとおりです。
これから得られるのは、MsRdpClient_OnDisconnected イベントをサブスクライブするときに切断された引数からの「内部エラーが発生しました」だけです。
コントロール内のほとんどのイベントをサブスクライブしようとしましたが、他に取得できるのは MsRdpClient_OnAuthenticationWarningDisplayed イベントの呼び出しだけですが、情報は得られません。
PSコントロール自体は空白のビューを提供します。mstsc 経由で remtoe pc に接続すると、すべて問題なく、資格情報が適合します。誰でもこれについて何か考えがありますか?