2014年4月16日水曜日

Windows7でリモートデスクトップ part1

たまに屋外から自宅のPCを操作したくなるときがある。
そんなときに、リモートデスクトップは最もお手軽な手段の一つであろう。

自宅と同じ環境で操作したいため、屋外からは以下のコマンドでリモートデスクトップに接続することにしている。

mstsc /admin

ただ、リモートデスクトップを切断して自宅に帰ってみると、ディスプレイが真っ黒のまま何の操作も受け付けなくなっていて途方に暮れることがある。

これはコンソールセッションがアクティブになっていないことが原因である。

試しに、自宅のPCでコマンドプロンプトを起動して以下のコマンドを打ってみよう。

query session

すると、こんな感じになるのではないだろうか。


セッション名ユーザ名ID状態種類デバイス
services0Disc
>consoleHoge1Active


コンソールセッションがアクティブになっているのが分かる。

次に、屋外からリモートデスクトップで接続して同じコマンドを打ってみよう。
こんな感じになるはずだ。


セッション名ユーザ名ID状態種類デバイス
services0Disc
>rdp-tcp#0Hoge1Activerdpwd
console13Conn
rdp-tcp65536Listen


コンソールセッションとは別のセッションがアクティブになっているのが分かる。

では、どうすれば良いか。切断時にコンソールセッションがアクティブになるようにすれば良い。

×ボタンでリモートデスクトップを閉じたり、スタートメニューからログオフや切断を選ぶ代わりに、コマンドプロンプトを管理者権限で起動し、以下のコマンドを実行する。

tscon 1 /DEST:console /PASSWORD:*****

現在アクティブなIDの1番をコンソールに接続するよ、と言う意味だ。そうすると自動的にリモートデスクトップは切断され、自宅のPCが操作可能な状態に戻る。
*****には実際のパスワードを入れよう。XPの時代は指定しなくても上手く行ったのだが、7になってからはこのオプションを指定しないと上手く行かなかった。

毎回管理者権限でコマンドプロンプトを起動してコマンドを叩くのは面倒なので、バッチファイルを作成し、そのバッチファイルのショートカットを作成し、そのショートカットのプロパティ画面の詳細設定から「管理者として実行」を有効にしておく。
あとはそのショートカットをスタートメニューなりに登録し、リモートデスクトップを切断する際にそのショートカットを実行するようにすれば良い。

実はもっと上手くやる方法があるのだが、長くなったのでその説明は次回に回そう。

0 件のコメント:

コメントを投稿