「コンソール・セッション」と「リモート・セッション」の違い

【この記事の所要時間 : 約 6 分

console_remote_session.gif
先日、Windowsサーバではまった事象があったので備忘録のためエントリーをおこしておく。
はまった原因は、Windowsサーバにおけるコンソール・セッションとリモート・セッションの違いである。サーバでも普通のクライアントPCでも、物理的な入出力装置をコンソールという。物理コンソールともいう。簡単に言えば、サーバやパソコンに直接つながっているキーボードなどのことである。
一般の人は基本的には物理コンソールからしか作業しないはずであるが、開発や運用などでサーバを利用している場合は、リモートでアクセスする必要性がでてくる。Windows でも Pro版にはついてくる「リモート・デスクトップ」などがその機能を実現するものである。
コンソール(物理コンソール)からの接続を「コンソール・セッション」と呼び、リモートからの接続を「リモート・セッション」という。ここまでが基本である。
コンソール・セッションでもリモート・セッションでもできることは基本的には同じなのだが、違いもある。以下のように、コンソール・セッションからではできることが、リモート・セッションからはできないということがある。以下のような例がある。
リモートセッションとコンソールセッション – ファンタジー思想(einherjarの日記)

以前、lenovoの PCが故障した原因はリモートセッションによるsystem updateが原因のような気がしてきた。
当該のPCはモニタをつけておらず、リモートからの操作で運用していたんだけど、リモートからリモートデスクトップを用いて操作をする場合、リモートセッションという形態になるみたい。
(タスクマネジャの接続タブを参照)
リモートセッションだと、同一のアカウントでも挙動が異なるみたい・・・・
たとえば、リモートデスクトップで接続して、rescure and recoveryがハングするなど。
サーバ系のwindowsを使用していれば、リモートデスクトップでもコンソールセッションに入れるみたいだけど、
うちのPCはXPなので、ムリ。
で、昔ながらのVNCはどっちのセッションになるかと試してみたら、コンソールセッションの扱いなので、インストール作業などのシステム的な作業が必要なときはVNC、アプリケーションの利用はリモートデスクトップといった感じで使い分けてみようかと。

「人力検索はてな」でのある質問

Windowsのリモートデスクトップと、VNCでは同じように使えますが実は結構違いがあります。
特に遠隔操作される側のアプリケーションが、描画APIを直接叩いていたり .NETを利用しようとしていると、リモートデスクトップ経由では動かない旨のメッセージを出してとまることがあります。DirectXを使っているときもそうですね。(その場合、タスクマネージャのプロセスに表示されないこともあります)場合によっては、クライアント側が青画面で落ちることもあります。

コンソール・セッションからではできるが、リモート・セッションからはできない。しかしリモートから管理したい。そういった場合に有効なのが、「VNC」である。
Wikipedia – VNC

Virtual Network Computing(ヴァーチャル・ネットワーク・コンピューティング、略称VNC)は、ネットワーク上の離れたコンピュータを遠隔操作するためのRFBプロトコルを利用する、リモートデスクトップソフトである。VNCはクロスプラットフォームなソフトウェアとして開発されているため、インストールされているマシン同士はOSなどのプラットフォームの種類に依存することなく通信する事が出来る。

Windowsについている「リモート・デスクトップ」で該当ホストへアクセスすると、「リモート・セッション」となるが、「VNC」で該当ホストへアクセスすると、擬似的に「コンソール・セッション」として接続することができる。これによってリモートからコンソールとまったく同じ操作が可能になる。
VNCは様々な派生ソフトがあるが、Windowsの場合、お勧めなのが、「UltraVNC」である。
UltraVNCでコンピュータをリモート制御する(サーバ編)

リモート・デスクトップ(ターミナル・サービス技術をベースにしている)と違い、Windows OSのセッション(ユーザー環境)を作成してその仮想画面への描画結果を転送しているわけではない。サーバ側の画面に描画されたデータをキャプチャして、そのままクライアント側(VNCでは「ビューア」という)へ転送して操作している。そのため、操作される側のコンソール画面と同じものが、クライアント側に再現される。

Window2003以降のサーバOSの場合、「リモートデスクトップ」からでも「コンソール・セッション」で接続できるようになっている。ちなみに、Windows 2003の場合、コンソールセッション×1、リモートセッション×2の合計 3接続が可能となっている。
リモート・デスクトップでコンソール・セッションに接続する

Windows Server 2003では、リモート・デスクトップ接続でコンソール・セッションへの接続を明示的に指定すればよい。通常のリモート・デスクトップ接続でサーバに接続すると、新しいセッションが自動的に作成されるが、特別なオプションを利用すると、コンソール・セッションへ強制的に接続させることができる。

Windows Server 2008では、コンソール・セッションとリモート・セッションが同等に扱われるようになり、各セッションと物理コンソールまたはリモート・デスクトップとの接続が自由に切り替えられるようになった。強いていえば「コンソール・セッション」とは、その時点で物理コンソールに接続されているセッションであり、リモート・デスクトップに切り替わると、それは「リモート・セッション」になる。このようにWindows Server 2003とはセッションの取り扱いが変わったことから、Windows Server 2008では物理コンソールのセッションをリモート・デスクトップに切り替える方法も変わっている。

コンソール・セッションで接続したいOSのバージョンによって実現方法が違ったりするので注意してほしい。もし、コンソール・セッションではうまくいくのに、リモート・セッションだとうまくいかないのはなぜだ?と思っている人は参考にしてほしい。
ただ・・・うまくいかない原因が、コンソール・セッションとリモート・セッションの違いというところまで切り分けられていればだが。
より詳しく知りたい方はこちらへ
リモートデスクトップの隠れた接続『コンソールセッション』
リモートデスクトップ接続で「物理デスクトップ」を操作するには

スポンサーリンク
レクタングル(大)広告
  • このエントリーをはてなブックマークに追加
スポンサーリンク
レクタングル(大)広告

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です