連載
» 2015年04月27日 05時00分 UPDATE

その知識、ホントに正しい? Windowsにまつわる都市伝説(30):Windows 8の初回ログオンは、なぜ、あんなに時間がかかるのか?――ローカルログオンとリモートログオンの微妙な関係

Windows 8/8.1にユーザーが始めてログオンすると、何やらアニメーションが表示され、長々と待たされます。これは、Windows 7までにはなかったこと。Windows 10の最新プレビュー版でも同じように待たされます。あれ、どうにかならないのでしょうか。

[山市良,テクニカルライター]
「Windowsにまつわる都市伝説」のインデックス

連載目次

Windowsログオンとターミナルサービスの切っても切れない縁

 「Windows NT Server 4.0, Terminal Server Edition」として登場した「ターミナルサービス」は、Windows 2000 Serverに標準機能として統合され、Windows XPからは「リモートデスクトップ接続」機能としてデスクトップOSにも組み込まれました。

 Windowsの家庭向けエディションにはリモートデスクトップ接続のサーバー機能は搭載されていませんが、その技術は「リモートアシスタンス」機能で利用されています。もっと言えば、Windows XP以降はターミナルサービス/リモートデスクトップサービス(RDS)が「Windowsログオンサービス」に完全に統合されており、ローカルログオンや「ユーザーの簡易切り替え」機能にも関わっているのです。

ログオン方法の違いはプロトコルの違い?

 ユーザーがWindowsにログオンすると、そのユーザー専用のデスクトップが準備されます。実は、このデスクトップ環境はログオン方法に関係がなく、ターミナルサービス/RDSの「セッション(Session)」が提供しているのです。

 以下の画面1は、Windows Server 2012 R2の「リモートデスクトップ(RD)セッションホスト」に、ローカルログオンまたはリモートデスクトップ接続でログオン中のユーザーの一覧を表示したものです。ログオン中のユーザーを表示するには、「query session」または「query user」または「qwinsta」コマンド(Windows XP/Server 2003以前からある「query session」相当のコマンド)を実行します。

画面1 画面1 「query session」コマンドでRDセッションホストにログオン中のユーザーを一覧表示してみた

 Windows Vista/Server 2008以降は、システムおよびサービスが常に「セッション0」を使用します。そして、Windowsに対話的にログオンするユーザーに1から順番にセッションIDが割り振られます。セッション名「console」はコンソール画面からログオンしたユーザー、セッション名「rdp-tcp#番号」はリモートデスクトッププトロコル(RDP、TCP/UDPポート3389を使用)を使用して、ネットワーク経由でログオンしているユーザーを示します。

 Windowsから見ると、ローカルログオンとリモートデスクトップ接続によるログオンの違いは、セッションのプロトコルが「Console」か「RDP-TCP」かの違いになります。

 この他の接続プロトコルとしては、Windows MultiPoint Serverが使用する「WMS-TCP」、Windows Media Center Extenderが使用する「EH-TCP」(TCPポート3390を使用)、シトリックス・システムズのXenAppやXenDesktopのICA(Independent Computing Architecture)が使用する「ICA-TCP」(TCPポート1494または2598を使用)があります。

 RDPプロトコルのバージョンアップに伴って、ネットワーク帯域の削減、デバイスリダイレクト、スマートカード対応、双方向オーディオなどの機能強化が行われ、RDP 7.1およびRDP 8ではエクスペリエンスに関わるRemoteFXテクノロジがさらに強化されました。今では、リモートデスクトップ接続でも、コンソールからのローカルログオンと変わらないデスクトップ環境を提供できるようになっています。それは、企業内のVDI(仮想デスクトップインフラストラクチャ)だけでなく、クラウドベースのDaaS(Desktop as a Service)を実現しました。

 ちなみに、Windows NT 4.0, Terminal Server EditionのRDP 4.0は、1モニター、最大表示色256色、最大解像度1024×768ピクセルまでに制限されていました。最新のRDP 8.1では、最大16モニター、最大表示色1677万色(32ビットカラー)、最大解像度4096×2048ピクセル(全モニター合計で)をサポートし、遅延の大きいWAN回線でも画質を落とさず、スムーズな表示が可能になっています。

Windows Vista/Server 2008以降のログオンセキュリティの強化

 先ほど、Windows Vista/Server 2008以降はシステムとサービスが常に「セッション0」を使用すると説明しました。これはWindows XP/Server 2003 R2も同じですが、これらの古いWindowsは“最初に対話的にログオンしたユーザー”にも「セッション0」が割り当てられ、システムやサービスと共用することになります(画面2)。

画面2 画面2 Windows XP/Server 2003では、コンソールまたはリモートデスクトップ接続で最初に対話的にログオンするユーザーがシステムやサービスと同じ「セッション0」を共有する

 システムやサービスとユーザーが同じセッションを共有するということは、重大なセキュリティの問題を引き起こす可能性があります。そこで、Windows Vista/Server 2008以降では、対話ログオンのユーザーには「セッション1」以降が割り当てられるようになりました。これは「セッション0の分離」と呼ばれる、新しいWindowsの重要なセキュリティ強化点です。

 リモートデスクトップ接続のセッションにおけるクライアントとサーバー間の通信トラフィックは、128ビットまたは56ビット強度のTLS(Transport Layer Security)1.0またはRDP暗号化によって保護されます。この通信の暗号化に加え、Windows VistaのRDP 6.0からはリモートデスクトップ接続のログオン認証に「ネットワークレベル認証(Network Level Authentication:NLA)」という新しいセキュリティ強化機能が追加されました。

 Windows XP/Server 2003 R2以前のリモートデスクトップ接続では、ユーザー認証より先にリモートデスクトップ接続のセッションを確立し、そのセッション中で通常のWindowsログオンと同じ方法(Windowsログオン画面)でログオンしていました(画面3)。

画面3 画面3 ネットワークレベル認証に対応していないWindows XP Professionalへのリモートデスクトップ接続。ユーザー認証の前にリモートのデスクトップ画面(Windowsログオン画面)が表示される

 Windows Vista/Server 2008以降ではネットワークレベル認証に対応したことで、セッションを確立する前にユーザー認証を行い、認証をパスして初めてセッションを確立するようになりました。これも、新しいWindowsの重要なセキュリティ強化点です(画面4)。

画面4 画面4 ネットワークレベル認証に対応したWindows Vista/Server 2008以降へのリモートデスクトップ接続では、ユーザー認証が成功しない限り、リモートのデスクトップ画面は表示されない

 Windows XPのサポート終了から1年以上経過し、あと数カ月でWindows Server 2003のサポートが終了します。Windowsログオンに関する部分だけを見ても、これらのOSのセキュリティは以降のWindowsに比べて明らかに劣っており、使い続けることにはリスクがあることが分かります。

Windows 8からはローカルとリモートで初回ログオン動作が大きく違う

 Windowsはローカルのコンソールからでも、リモートデスクトップ接続経由でも安全にログオンし、同じエクスペリエンスでデスクトップ環境を利用できます。しかし、これがWindows 8の登場でちょっと変わった部分があります。

 Windows 8やWindows 8.1に初めてローカルログオンすると、黒い背景に「こんにちは」から始まる全画面表示のアニメーションが表示され、背景色とメッセージが以下のように変化するのを目にすることになります(画面5)。タッチ対応デバイスがある場合は、さらにタッチ操作を説明するアニメーションが表示されます。

“こんにちは”

“PCのセットアップをしています”

“ストアから新しいアプリをさらに入手できます(アプリをインストールしています)”

“最後の処理をしています(PCの電源を切らないでください)”

“アプリの準備をしています(PCの電源を切らないでください)”

“あともう少しです(PCの電源を切らないでください)

“さあ始めましょう”


画面5 画面5 Windows 8.1に新しいユーザーが初めてログオンすると、このようなアニメーションが表示され、しばらく待たされる

 このアニメーションは、次期Windowsのプレビュー版である「Windows 10 Technical Preview」でも踏襲されています。

 ご存じのようにWindows 8では[スタート]メニューに代わる新しいUI(ユーザーインターフェース)と、Windowsストアアプリへの対応が行われました。Windowsに初めてログオンする際には、デスクトップ環境を準備する処理が行われるため、しばらく時間がかかります。

 Windows 8では、この処理の中で既定のストアアプリ(ストア、メール、カレンダー、天気など)のインストールが行われるようになりました。ハイスペックなPCを使用している場合は気にならないかもしれませんが、ロースペックのPCではデスクトップ(またはスタート画面)が表示されるまで数分間待たされることもあります。

 そこで同じプロセッサ数、同じメモリ容量のHyper-V仮想マシンにWindows 7とWindows 8.1をセットアップして、新しいユーザーの初回ログオンを同時に行ってみたところ、Windows 8.1はWindows 7の数倍の時間がかかりました(画面6)。明らかに初回ログオン時間は、Windows 8で長くなりました。それを少しでも感じさせないために、アニメーションが用意されたのでしょうか。しかし、このアニメーションを見るのが初めてなら時間をつぶせるのでしょうが、2度目以降はただイライラするだけというのは筆者だけではないと思います。

画面6 画面6 同じスペックの仮想マシンで初回ログオン時間を比較してみると、Windows 8.1はWindows 7の数倍の時間がかかった

 この初回ログオンのアニメーションですが、表示されるのはWindows 8とWindows 8.1にローカルログオンした場合だけになります。これらのOSにリモートデスクトップ接続したときには表示されず、青い背景に「ようこそ」と表示されている間にデスクトップ環境が準備されます。きちんと計測したわけではありませんが、ローカルログオンよりも短時間でデスクトップ画面が表示されます。それでも、Windows 7よりは時間がかかる気はします。

 このアニメーション、Windows Server 2012/2012 R2のRDセッションホストに対するログオンでは、ローカルログオンでも表示されません。既定のアプリが少ないから(ストアのみ)だと思いますが、Windows 8やWindows 8.1よりも圧倒的に短時間でログオンが完了するため、RDセッションホストベースの環境であれば、ログオンのパフォーマンスが問題になることはないでしょう。

RemoteFX仮想GPUが有効なリモートデスクトップ接続はローカルログオンと同じ動作

 マイクロソフトのVDIでは、サーバーに接続されたグラフィックスカードのGPUおよびVRAMを仮想化して、仮想マシンに「RemoteFX仮想GPU(RemoteFX 3Dビデオアダプター)」として割り当て、リモートデスクトップ接続のセッションに対して高度なグラフィックス機能を提供することができます。

 実は、RemoteFX仮想GPUが割り当てられたWindows 8 EnterpriseおよびWindows 8.1 Enterprise仮想デスクトップでは、リモートデスクトップ接続でも“初回ログオン時のアニメーション”が表示されます(画面7)。

画面7 画面7 RemoteFX仮想GPUが割り当てられた仮想マシンへのリモートデスクトップ接続は、ローカルログオンと同じように初回ログオン時にアニメーションが表示される

 ログオンに使用されるプロトコルは「RDP-TCP」ですが、RemoteFX仮想GPUのディスプレーアダプターによる表示が、ローカルのディスプレーアダプターを使用したローカルログオンとして扱われるようです。例えば、通常のリモートデスクトップ接続で表示されるスタート画面の電源オプションの「切断」メニューが、RemoteFX仮想GPUを使用した接続では表示されません(画面8)。

画面8 画面8 RemoteFX仮想GPUを使用するセッションの電源オプションに「切断」はなく、ローカルログオンと同じく「シャットダウン」や「再起動」がある

 これの何が問題なのかというと、新しいユーザーの初回ログオン時にデスクトップが表示されるまでに時間がかかるのです。

「アニメーションの非表示」はログオン時間の短縮に効果なし

 ローカルログオンおよびRemoteFX仮想GPUのリモートデスクトップ接続での“初回ログオン時のアニメーション”は、グループポリシーの「初回サインインのアニメーションを表示する」ポリシーを無効にすることで非表示にすることができます(画面9)。

画面9 画面9 ローカルログオンの初回ログオン時のアニメーションは、グループポリシーで非表示にすることが可能

 しかし、「初回サインインのアニメーションを表示する」ポリシーを無効にしたとしても、ローカルログオンの初回ログオン時の時間が短縮されるわけではありません。アニメーションが表示されなくなる代わりに、青い背景に「Windowsの準備をしています」と表示されるようになるだけです(画面10)。

画面10 画面10 初回ログオン時のアニメーションを非表示にしてもログオンにかかる時間が短縮されるわけではなく、この画面で同じ時間待たされる

ログオン時間を劇的に短縮する救世主は……「RemoteApp」?

 Windows 8以降の初回ログオンにかかる時間はしょうがないと、あきらめるしかないのでしょうか。

 通常は、ユーザー1人にユーザーアカウントを一つ用意するでしょうから、長く待たされるのはアカウントの一生に一度、初回ログオンだけですので、それでもよいのかもしれません。しかし、新しいユーザーに初回ログオン時にパフォーマンスが悪いという印象を与えてしまうのは、管理者にとっては心苦しいところでしょう。

 本連載でも何度か取り上げましたが、「RemoteAppテクノロジ」はログオン時間の短縮に劇的に効果があるかもしれません。詳しくは、次回で。

「その知識、ホントに正しい? Windowsにまつわる都市伝説」バックナンバー

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP:Hyper-V(Oct 2008 - Sep 2015)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。マイクロソフト製品、テクノロジを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。