ユーザープロファイル管理

Profile management によるユーザープロファイル管理の第一回目として、まずは既存のユーザープロファイル管理について、少し復習していきましょう。

ユーザープロファイル

ユーザープロファイルとは、ユーザーごとのデスクトップ設定をローカルコンピュータ、もしくはリモートコンピュータに保存して、再利用する機能です。ユーザープロファイルは、ユーザーが初めてコンピュータにログオンした際に、ユーザーごとに作成され、ログオフ時にそのユーザーのデスクトップ設定が保存されます。保存されたデスクトップ設定は、そのユーザーの次回ログオン時に復元され、再利用されます。

ユーザープロファイルの内容

ユーザープロファイルはユーザーデータとアプリケーションデータを含むフォルダ階層(ユーザーフォルダの名前空間)とレジストリハイブから構成されています。ユーザープロファイルの内容などに関する詳細についてはマイクロソフト社による「移動ユーザーデータ管理の展開ガイド」をご参照頂ければと思いますが、「アドレス帳」や「ドキュメント」などがユーザーデータ、「AppData」などがアプリケーションデータのフォルダ階層となります。また、レジストリハイブは「NTUSER.DAT」として保存され、ユーザーセッション時には「HKEY_CURRENT_USER」として展開されます。また、ユーザープロファイルの内容は、Windows Vista、Windows Server 2008以前と以後では、フォルダ構造が異なり、Windows Vista、Windows Server 2008でのユーザープロファイルを「バージョン2プロファイル」、それ以前のWindows 2000、Windows XP、Windows Server 2003でのユーザープロファイルを「バージョン1プロファイル」とここでは区別して説明します。

[参考] 移動ユーザーデータ管理の展開ガイド(http://www.microsoft.com/japan/technet/windowsvista/library/fb3681b2-da39-4944-93ad-dd3b6e8ca4dc.mspx)

ユーザープロファイルの種類

ユーザープロファイルにもいくつか種類があります。ここでは基本となる4つのユーザープロファイルと2つの特別なユーザープロファイルについて見ていきます。

ローカルユーザープロファイル: ユーザーが最初にコンピュータにログオンした際に、デフォルトのローカルユーザープロファイルから作成され、そのコンピュータのローカルハードディスクに保存されるプロファイルです。ローカルユーザープロファイルに対する変更内容は、変更を行ったコンピュータにのみ反映されます。

ローカルユーザープロファイルの保存先

%SystemDrive%\Documents and Settings

  • Windows 2000
  • Windows XP
  • Windows Server 2003

%SystemDrive%\Users

  • Windows Vista
  • Windows Server 2008

移動ユーザープロファイル: 管理者により作成され、ユーザーのログオン時にネットワーク上の任意のファイルシェアからロードされ、ユーザーのログオフ時にネットワーク上の任意のファイルシェアに保存されるプロファイルです。移動ユーザープロファイルに対する変更内容は、ユーザーセッション中は、ユーザーがログオンしたコンピュータ上にキャッシュされ、ユーザーのログオフ時にネットワーク上のファイルシェア上に保存されているユーザープロファイルに反映されます。移動ユーザープロファイルでは、ユーザーのログオフ時に、フォルダ階層内に含まれる各ファイル・フォルダの更新日時をもとに、変更があったファイル・フォルダ単位で更新が行われます。また、レジストリに対する更新については、レジストリハイブ全体として更新されます。このレジストリハイブ全体として更新するというところが、後述する移動ユーザープロファイルに対するProfile managementを利用する利点となる部分ですので覚えておきましょう。

固定ユーザープロファイル: 個々のユーザー、ユーザーグループ全体に特定の設定を指定するために使用することが可能な移動ユーザープロファイルです。固定ユーザープロファイルの動作と移動ユーザープロファイルの動作の違いは、ユーザーがログオンしたコンピュータ上にキャッシュされたユーザーセッションでの変更内容が、ユーザーのログオフ時に破棄されることです。

一時ユーザープロファイル: 移動ユーザープロファイル利用時など、何らかのエラーにより、ユーザープロファイルを読み込めない場合に作成される一時的なユーザープロファイルです。一時ユーザープロファイルもユーザーのログオフ時には、ユーザーがログオンしたコンピュータ上にキャッシュされたユーザーセッションでの変更内容は破棄されます。

All Users: 全ユーザープロファイルで使用される共通のユーザーデータを含む特別なユーザープロファイルです。

Default User: 新規にユーザープロファイルが作成される際のデフォルトとなるユーザープロファイルです。

ユーザープロファイル管理での課題

既存のユーザープロファイル管理を行う上で、みなさまもご存じのように、いくつかの課題があります。ここではユーザープロファイル管理での代表的な課題をいくつか取り上げ、それらの課題について見ていきたいと思います。

最後の書き込みが優先される (Last Writer Wins Problem): 移動ユーザープロファイルでは、ユーザーセッションの終了時に、ファイルシェア上に保存されたユーザープロファイル (フォルダ、ファイル、レジストリハイブ) に対して、ユーザーセッションでの変更内容を更新することは先に説明した通りですが、同一のユーザープロファイルを使用した状況で、複数のセッションへ接続した場合にはどうなるでしょうか? この問題を簡易に説明するため、任意のユーザーが1つのコンピュータから別サイロで構成される2つのCitrix XenAppセッション(ターミナルサービスセッション)に接続している状況を仮定します。1つ目のセッションをユーザーが終了した際にそのセッションでのユーザープロファイルに対する変更内容に基づき、ファイルシェア上のユーザープロファイルは更新されます。次に、2つ目のセッションをユーザーが終了した際にも同様にそのセッションでのユーザープロファイルの変更内容に基づき、ファイルシェア上のユーザープロファイルは更新されます。通常、異なるアプリケーションを利用している場合は、ユーザープロファイルの更新により変更されるファイル、フォルダの重複は、あまり発生しないものと想定されます。そのため、2つのセッションを別々に閉じた際も、あまり問題は発生しないものと考えられます。しかしながら、レジストリはどうでしょう。レジストリもファイル、フォルダの更新と同様、異なるアプリケーションを利用している場合は、変更されるレジストリキーの重複は、あまり発生しないものと想定されますが、移動ユーザープロファイルではレジストリハイブ全体として更新されてしまうため、先に終了したセッションでのレジストリの変更内容が後続のユーザーセッションの終了により、レジストリハイブごと上書きされてしまうといった現象が発生します。これがユーザープロファイル管理での課題の一つである、最後の書き込みが優先される問題 (Last Writer Wins Problem) です。

ユーザープロファイルの肥大化とログオン・ログオフ時間への影響: ユーザープロファイルの肥大化もユーザープロファイル管理での課題の一つです。ユーザーがユーザーセッション中でユーザープロファイル内に任意のファイルを保存するような場合や任意のアプリケーションがユーザープロファイル内に一時ファイルを作るなどによりユーザープロファイルは肥大化していきます。当然ですがユーザープロファイルの肥大化により、ユーザープロファイルのデータ転送量も増大して、それにともない、ユーザーのログオン・ログオフ時間へも影響がでます。また、Citrix XenApp (ターミナルサービス) 環境では、「一時記憶された移動プロファイルのコピーを削除する」グループポリシー設定の適用を行う場合が多く、ユーザーのログオン時に、ファイルサーバーからユーザープロファイル全体のコピーが都度発生することにより、ユーザープロファイルの肥大化時の、ログオン・ログオフ時間への影響も問題となります。

ユーザープロファイルの不整合: ユーザープロファイルの不整合もユーザープロファイル管理での課題の一つです。例えば、ネットワーク上でのユーザープロファイルデータの転送エラーや不正な処理を行うアプリケーションの影響により、ユーザープロファイルに不整合が発生する場合があります。最近では、このような例であげた状態があまり発生しないように思われがちですが、実際問題として、ユーザープロファイルの不整合が発生するといった状況は、未だ比較的多く発生しているのではといった所感があります。

モバイルユーザーの管理: モバイルコンピュータに対するユーザープロファイルの管理、バックアップもユーザープロファイル管理での課題の一つです。モバイルコンピュータの利用が増加していますが、一元的に、モバイルコンピュータのユーザープロファイル管理をすることはなかなか難しいのが現状です。

異種プラットフォーム間での相互運用性: 異種プラットフォーム間でのユーザープロファイルの相互運用性もユーザープロファイル管理での課題の一つです。バージョン1プロファイルとバージョン2プロファイルではフォルダ階層が異なるため、同一のユーザープロファイルを使用した場合にはプラットフォーム固有の設定による影響が出てきます。異種プラットフォーム間でのユーザープロファイルの相互運用性に関する詳細については、マイクロソフト社による「移動ユーザーデータ管理の展開ガイド」をご参照頂ければと思いますが、プラットフォーム固有の設定による影響の一例として、Windows XP上のデスクトップ上に作成されたショートカットがWindows Vistaへログオンした場合に無効となっているといった状況が発生するなどの事象の発生が予想されます。

[参考] 移動ユーザーデータ管理の展開ガイド(http://www.microsoft.com/japan/technet/windowsvista/library/fb3681b2-da39-4944-93ad-dd3b6e8ca4dc.mspx)

ユーザープロファイルのアンロード: ユーザーのログオフ時に、ユーザープロファイルのアンロード処理に関する問題が発生する場合があり、ユーザープロファイル管理での課題の一つとなっています。例えば、ユーザーセッション中で任意のプロセスが、ある任意のファイルやレジストリに対するハンドルをリリースしないことにより、ユーザープロファイルのアンロード処理に失敗して、ユーザーセッションの終了処理の途中で止まった状態になってしまうなどの状況が発生します。

不正な処理を行うアプリケーションによる影響: ユーザー固有の構成データなどをユーザープロファイルの外部に保存するアプリケーションの設計により問題が発生する場合があります。

ユーザープロファイル管理に対する施策

上述したように既存のユーザープロファイル管理を行う上でいくつかの課題があります。ここではこれらの課題に対する代表的な施策についていくつか見ていきたいと思います。

複数のユーザープロファイルの利用: 言語環境やバージョンの異なる複数プラットフォームへの接続や複数の異なるサイロへの接続の際に、複数のユーザープロファイルを利用する方法があります。これにより、異種プラットフォーム間での相互運用性について、対処することは可能となりますが、当然、個々のユーザーが複数のユーザープロファイルを利用することにより、管理性が煩雑になるといった問題が発生します。

フォルダリダイレクションの利用、特定フォルダの除外: ユーザープロファイル内の特定のフォルダの保存場所を任意の場所 (ローカルコンピュータ、ネットワーク上のファイルシェア) にリダイレクトすることで、これら特定のフォルダをユーザープロファイルと分離します。また、「特定のディレクトリを移動プロファイルから除外する」グループポリシー設定の適用により、移動ユーザープロファイルに含まれている特定のフォルダがファイルシェアにコピーされないように設定する方法などがあります。

ユーザープロファイルのサイズの制限: ユーザープロファイルの肥大化を防ぐ目的のため「プロファイルのサイズを制限する」グループポリシーの設定により個々のユーザーのプロファイルサイズの上限とユーザープロファイルサイズが上限に達した場合のシステムの応答を設定することができます。

User Profile Service: ユーザーのログオフ時にレジストリハイブがロードされたままになっているユーザーを監視、レジストリハイブを開いたアプリケーションを特定して、そのレジストリハイブに対するハンドルを強制的に開放します。Windows Vista, Windows Server 2008ではWindowsサービスとしてこのサービスが動作しています。また、Windows 2000, Windows Server 2003, Windows XPでは「User Profile Hive Cleanup Service」のインストールにより利用が可能となります。

グループポリシーによる制御: ユーザープロファイルの管理に関するグループポリシーの適用により、柔軟にユーザープロファイルの管理を行うことが可能です。

ユーザープロファイルの再作成: ユーザープロファイルに関する問題解決にユーザープロファイルの再作成を利用している場合もあります。

それでは次回は、Profile management を利用するとで、これらユーザープロファイル管理での課題に対して、どう対応することが可能かも含めて見ていきたいと思います。