web-dev-qa-db-ja.com

リモートデスクトップセッションをローカルコンソールに復元するにはどうすればよいですか?

リモートデスクトップ接続が完了したら、ユーザーがパスワードを再入力してログインし直す必要がないように、リモートデスクトップをローカルコンソールに復元できるようにしたいと考えています。

これを行うためのデスクトップショートカットを作成するにはどうすればよいですか?

15
glenviewjeff
  1. デスクトップを右クリックして[新規]を選択し、ショートカットを選択して、デスクトップショートカットを作成します。
  2. テキストフィールドに次のように入力します。

    %windir%\System32\tscon.exe 0 /dest:console(下記参照)

  3. 新しく作成したショートカットを右クリックし、[プロパティ]をクリックします。
  4. ショートカットタブをクリックし、[詳細設定]ボタンをクリックします。
  5. [管理者として実行]チェックボックスをオンにして、[OK]をクリックします。

これが機能しない場合は、手順2で数字のゼロ(tscon.exe 0 /dest...)を数字の1に変更してみてください。機能しない場合は、リモートデスクトップがリリースされるまで増分を続けてください。

または、スタートメニューでシェルを開き、cmdを実行します。 qwinstaと入力します Enter、アクティブ状態のセッションのIDを探します(セッション名の先頭に>文字が付きます)。これは、手順2で使用する必要がある数です。

コンソールデスクトップを復元する場合は、ショートカットをダブルクリックして、管理者アクセスを許可します。

15
glenviewjeff

GNU toolsへの依存を回避するバージョンです。Windowsに同梱されているfindstrを使用しています。

for /f %%i in ('qwinsta ^| findstr /C:">rdp-tcp#"') do set RDP_SESSION=%%i
:: Strip the >
set RDP_SESSION=%RDP_SESSION:>=%
tscon %RDP_SESSION% /dest:console
8
Kim

glenviewjeffの回答でほとんどの方法が得られましたが、セッションIDが常に1であるとは限りません。このようにリスニングセッションまたはコンソールセッションを切断しようとすると、「エラー7045」が返されます-要求されたセッションアクセスが拒否されたか、セッションIDが存在しませんSessionID not foundエラー。

現在のセッションを引き出すために小さなバッチファイルを作成しました。 Windowsでこれを行ったときXP現在のIDを把握するために、クエリセッションではなくqwinstaを使用する必要がありました。このバッチファイルはUNIXコマンドラインユーティリティを使用しているため、WindowsでGnuを使用します( https://github.com/bmatzelle/gow/downloads )これらにアクセスするには、「>」記号を検索して現在のセッションをプルし、コンソールセッションに再度割り当てます。

for /f %%i in ('qwinsta ^| grep "^>" ^| awk "{print $4}"') do set VAR=%%i
tscon %var% /dest:console

Fujitsu IX500スキャナーに接続されているマシンにこれが必要でした。スキャナーがスキャンするのは、画面がWindowsのユーザー名/サインオン選択画面にない場合のみです。これは、通常ログオフまたはセッションの切断時に表示される画面です。マシンが画面なしで実行されるので、rdp経由で接続できるようにしたいのですが、そうすると、手動でログインするか再起動するまでハードウェアスキャンボタンを使用できませんでした。上記のバッチファイルはこの問題を解決します。

2
Simon D

Simon Dのバッチファイルコマンドを機能させることができませんでした。これは私にとってWindows 7 x64で機能したものです。

for /f %%i in ('qwinsta ^| grep "^>" ^| awk "{print $3}"') do tscon %%i /dest:console
0
dralthiace