連載
» 2012年02月16日 00時00分 公開

Windows Thin PCで本格的なシンクライアントを実現する:第2回 Windows Thin PCを“本物の”シンクライアントに仕上げる (2/5)

[小川大地(Microsoft MVP for Virtual Machine),日本ヒューレット・パッカード株式会社]

 それでは、WinTPCに「自動化」と「ロックダウン」の設定を実施して、エンドユーザーと管理者双方の使い勝手を考えた本格的なシンクライアントを作り上げよう。

Windows Server Insider関連記事 Insider's Computer Dictionary「KIOSKモード

 Internet Explorerで[F11]キーを押すと「KIOSKモード」と呼ばれる全画面表示に切り替わる。KIOSKモードとは、あえて柔軟性を持たせず、特定用途に制限するモードのことだ。これと同様に、WinTPCもシンクライアント専用に“KIOSKモード”化していこう。柔軟性を制限するという違和感のある作業になるが、目の前にあるのはPCではなく「LAN経由でリモート画面を描画したり入力をリモートへ送信したりする“装置”」であることを意識していただきたい。

 KIOSKモード化のステップを以下に記す。

 (1) アカウントを2つに絞る
 (2) 接続ツールのセットアップと動作確認
 (3) ユーザー・アカウントによる自動ログオン
 (4) ログイン・シェルの適用範囲を変更
 (5) ユーザー・アカウントのシェルをロックダウン

(1) アカウントを2つに絞る

 まずは、WinTPCのアカウントを2つに絞ろう。Usersグループのアカウントを新たに1つ作成し、ビルトイン・アカウントである「Administrator」と合わせて2つに絞る。それぞれの役割は次の通りだ。

  • 管理者アカウント「Administrator」: 管理者のメンテナンス用アカウント
  • ユーザー・アカウント「User」: ユーザーが利用する通常アカウント

 Administratorアカウントはデフォルトで無効になっているため、アカウントの有効化とパスワードの変更、その有効期限の廃止をそれぞれ設定する。ユーザー・アカウントは、インストール時に作成したアカウントでもよいが、所属グループをAdministratorsからUsersに変更して権限を制限しよう。不特定多数が利用する場合は、ユーザーによるパスワード変更も禁止しておく。設定手順はWindows 7と同じである。

WinTPCのアカウントは2つに絞る
通常利用のためのユーザー・アカウントと保守用のAdministratorアカウントに絞る。各アカウント名は自由に変更してよい。なお、この画面のUserアカウントの画像はC:\ProgramData\Microsoft\User Account Pictures\guest.bmpに変更している。

(2) 接続ツールのセットアップと動作確認

 次に、管理者アカウントでログオンし、VDI環境へ接続するための各社クライアント・ソフトウェアをセットアップする。

 接続先がMicrosoft VDIであれば、必要となるInternet Explorerとリモート・デスクトップ接続クライアントはWinTPCにプレインストールされている。Citrix XenDesktopの場合は「Citrix Receiver」を、VMware Viewの場合は「VMware View Client」をそれぞれインストールしよう。また、SSL証明書のインストールが必要な場合は、この時点でインストールしておく。

 接続ツールのセットアップが完了したら、ユーザー・アカウントでログオンし、問題なく仮想PCに接続できるか確認しよう。うまく接続できない場合、VDIのシステムとの通信がWindowsファイアウォールにブロックされていないか確認するとよい。

(3) ユーザー・アカウントによる自動ログオン

 VDIとの接続動作を確認したら、KIOSKモード化を始めよう。

 まずは、エンドユーザーが2回もアカウント認証を要求されてしまう課題に対処する。その方法は単純で、WinTPCへのログオンを自動ログオンに設定するだけである。

 WinTPCの自動ログオン設定は、ベースOSであるWindows 7と同様に、主に次の3つの方法が考えられる。

 「netplwiz(control userpasswords2と同義)」による方法が最も簡単で、パスワードなしアカウントにも対応できる。ただし、最終的に1台のマスタOSイメージから大量展開(複製)を計画している場合は、コマンドラインからも実行できるWindows Sysinternalsの「Autologon」ツールを利用しよう。

Windows Sysinternalsの「Autologon」ツールによる自動ログオン設定
AutologonツールはGUIとCLIの両方に対応し、かつパスワードは暗号化されてレジストリに書き込まれる。
  (1)ワークグループ環境の場合、[Domain]欄には「.」(ピリオド)を入力すればよい。

 メンテナンスの際など、管理者アカウントでログオンしたい場合は、ログオン画面が表示される直前あたりで[Shift]キーを押し続けよう。自動ログオンがキャンセルされ、管理者アカウントでログオンできる。

(4) ログイン・シェルの適用範囲を変更

 次に、エンドユーザーがアクセス可能なアプリケーションを接続ツールだけに制限(ロックダウン)しよう。“接続ツールだけ”ということは、Windowsのログイン・シェル(ログオン時に起動されるUIのプログラム)としてデスクトップやタスク・バーを構成しているエクスプローラ(explorer.exe)自体も無効にするということだ。このカスタマイズがKIOSKモード化を実現するカラクリとなる。

 作業内容は、Windowsのログイン・シェルを「explorer.exe」から接続ツールに変更するだけであり、2カ所のレジストリ・エントリを変更する。

 1つ目は、ログイン・シェルの適用範囲をデフォルトの「全ユーザー共通設定」から「各ユーザー個別設定」に変更する。通常、Windowsのログイン・シェル設定は「HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell」というエントリを全ユーザーで共有しているが、このエントリは絶対に編集してはならない。ここにロックダウンを設定すると、ユーザー・アカウントだけでなく、管理者アカウントを含めた全員が制限されてしまい、誰もメンテナンスができなくなってしまうためだ。

 管理者アカウントでレジストリ・エディタを起動し、「HKLM\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping\system.ini\boot」キーを開く。編集する値はREG_SZ型である「Shell」だ。メンテナンスなどでいったん元に戻すこともあり得るため、編集前に「boot」キー以下をregファイルにバックアップしておくことをお勧めする。

項目 内容
キー HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\
CurrentVersion\IniFileMapping\system.ini\boot
名前 Shell
種類 REG_SZ
(デフォルト値) SYS:Microsoft\Windows NT\CurrentVersion\Winlogon
設定値 USR:Software\Microsoft\Windows NT\CurrentVersion\Winlogon
ログイン・シェルの適用範囲を設定するレジストリ・エントリ
「Shell」値を“USR:”から始まる上記内容に変更すると、ユーザー個別の設定に切り替わる(マーカーの部分を修正する)。メンテナンスのことを考えて、事前に「boot」キー以下をregファイルにバックアップしておこう。

(5) ユーザー・アカウントのシェルをロックダウン

 2つ目のレジストリ・エントリが、実際にロックダウンを行うユーザー個別のログイン・シェル設定である。こちらは1つ目の設定からも分かるとおり、ユーザー個別のレジストリ・ハイブに格納されている。このため、管理者アカウントのレジストリ・エディタで対象ユーザーのハイブ・ファイルをロードする操作が必要だ。ハイブ・ファイルのパスは「C:\Users\<ユーザー名>\NTUSER.DAT」であるが、このファイルは隠しファイル属性とシステム・ファイル属性が付いているため、ファイル・オープン・ダイアログで直接ファイル名を入力するか、あるいはエクスプローラのフォルダ・オプションであらかじめシステム・ファイルの非表示設定を解除しておく。

 ハイブをロードしたら、「HKEY_USERS\<ロード時のサブ・キー名>\Software\Microsoft\Windows NT\CurrentVersion\Winlogon」キーを開き、「Shell」値の内容を、接続ツールを起動するコマンドラインに書き換える。設定後はロードしたハイブのアンロードを忘れずに実行すること。

項目 内容
キー HKEY_USERS\<ロード時のサブ・キー名>\Software\
Microsoft\Windows NT\CurrentVersion\Winlogon
名前 Shell
種類 REG_SZ
(デフォルト値) c:\windows\system32\account shell.exe
設定値 [MicrosoftVDIの例]
 "C:\Program Files\Internet Explorer\iexplore.exe"" <RD WebアクセスのURL>
[Citrix XenDesktopの例]
 "C:\Program Files\Internet Explorer\iexplore.exe"" <Web InterfaceのURL>
[VMware Viewの例]
 "C:\Program Files\VMware\VMware View\Client\bin\wswc.exe"
ユーザーのログイン・シェルを変更するレジストリ・エントリ
接続ツールを起動するためのコマンドラインを指定する。引数を付けて実行することも可能だ(上記の例に含まれるスペースはいずれも半角)。なお、ここでInternet Explorerのパスを引数なしで指定すれば「インターネット・ブラウザ専用機」になる。

レジストリ・エディタでユーザー個別のログイン・シェルを変更する
設定後はハイブのアンロードを忘れないようにしよう。
  (1)起動コマンドはフルパスで入力する。

 レジストリの設定が完了したら、いったんログオフしてから、ユーザー・アカウントでログオンしてみよう。すると、タスク・バーやデスクトップ・アイコンが一切なく、接続ツールのみが表示されるはずだ。デスクトップ上での右クリックも機能しない、KIOSKモードとして動作している。

 これを応用して「Shell」値にInternet Explorerを引数なしで入力しておけば、図書館に設置されているようなインターネット・ブラウザ専用機を作ることもできる。起動コマンドはフルパスで入力する。

ログイン・シェルの変更によってKIOSKモード化したWinTPC−Microsoft VDI専用ログイン・シェルの変更によってKIOSKモード化したWinTPC−Citrix XenDesktop専用
ログイン・シェルの変更によってKIOSKモード化したWinTPC−VMware View専用ログイン・シェルの変更によってKIOSKモード化したWinTPC−インターネット・ブラウザ専用 ログイン・シェルの変更によってKIOSKモード化したWinTPC
エクスプローラの代わりに、用途に応じたソフトウェアのみを起動するように設定してみた。
  (1)Microsoft VDI専用。
  (2)Citrix XenDesktop専用。
  (3)VMware View専用。
  (4)インターネット・ブラウザ専用。

 これでKIOSKモード化の手順はひとまず完了だ。各接続ツールはきちんと日本語表示されるため、エンドユーザーが英語に触れる機会をほぼゼロにできるというメリットも大きいだろう。

 ただ、細かくみると不満な点も少し残っている。例えば、接続ツールを終了すると黒い画面だけが表示され、そこで何もできなくなってしまう。[Ctrl]+[Alt]+[Del]キーを押せばシャットダウンができるが少し不親切だ。次ページでは、こうした課題もカスタマイズによって解消していく。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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