Product Documentation

ターゲットデバイスのパーソナリティの管理

Mar 24, 2016

通常、同じvDiskを共有するすべてのターゲットデバイスを同じ構成にする必要があります。 ターゲットデバイスのパーソナリティ機能を使用すると、特定のターゲットデバイスのデータを定義し、起動時にターゲットデバイスでそのデータを利用することができます。 このデータは、さまざまな目的でカスタムアプリケーションやスクリプトで使用できます。

たとえば、Provisioning Servicesサーバーを使用して3つの教室のコンピューターをサポートするとします。 そして、コンピューターのデフォルトプリンターを、同じ教室に設置されているプリンターにしたいとします。 ターゲットデバイスのパーソナリティ機能を使用してデフォルトプリンターのフィールドを定義し、各ターゲットデバイスのプリンター名の値を入力することができます。 フィールドと値は[ターゲットデバイスプロパティ]ダイアログボックスで定義します。 この情報はデータベースに格納されます。 ターゲットデバイスが起動するとき、デバイス特有のプリンター情報がデータベースから取得され、vDisk上の.INIファイルに書き込まれます。 カスタムスクリプトやアプリケーションを内部で開発して、プリンター値を取得しレジストリに書き込むことができます。 この方法では、ターゲットデバイスが起動するたびに、教室の正しいデフォルトプリンターを使用するように設定されます。

各ターゲットデバイスに定義できるフィールドの数とデータ量は、ターゲットデバイスあたり64KBまたは65536バイトまでです。 各フィールドの長さは最大2047バイトです。

ターゲットデバイスのパーソナリティタスク
  • コンソールでの単一のターゲットデバイスのパーソナリティデータの定義
  • コンソールでの複数のターゲットデバイスのパーソナリティデータの定義
  • ターゲットデバイスのパーソナリティデータの使用

コンソールでの単一のターゲットデバイスのパーソナリティデータの定義

単一のターゲットデバイスのパーソナリティを定義するには

  1. コンソールでパーソナリティデータを定義するターゲットデバイスを右クリックし、[プロパティ]を選択します。
  2. [パーソナリティ]タブをクリックします。
  3. [追加]をクリックします。 [パーソナリティ文字列の追加/編集]ダイアログボックスが開きます。
    注:追加できるフィールド名とその文字列値の数に、定まった制限はありません。 ただし、単一文字列(名前とデータの組み合わせ)に割り当てられるパーソナリティデータの合計は、最大で約2047バイトです。 また、名前、文字列、および区切り文字の合計は、ターゲットデバイスあたり64KBまたは65536バイトまでです。 この制限は文字列を追加するときにチェックされます。 上限を超えると警告メッセージが表示され、無効な構成の作成を防ぎます。
    ターゲットデバイスのパーソナリティデータは、ほかのすべてのプロパティと同様に扱われます。 新しいターゲットデバイスがサイレントに、またはBIOSのプロンプト付きで自動的にデータベースに追加されるとき、このデータが継承されます。
  4. 名前と文字列値を入力します。
    注:[名前]ボックスには任意の名前を入力できますが、同じターゲットデバイスに重複するフィールド名を定義することはできません。 フィールド名は大文字と小文字が区別されません。 つまり、「FIELDNAME」と「fieldname」は同じ名前として扱われます。 フィールド名の前後に入力された空白文字は自動的に削除されます。 パーソナリティ名の冒頭に$を使用することはできません。 この記号は $DiskName および $WriteCacheType
  5. [OK]をクリックします。

さらにフィールドと値を追加するには、手順5.と6.を必要なだけ繰り返します。 データの追加が完了したら[OK]をクリックして、[ターゲットデバイスプロパティ]ダイアログボックスを閉じます。

コンソールでの複数のターゲットデバイスのパーソナリティデータの定義

複数のターゲットデバイスのパーソナリティの定義
  1. コンソールで、ほかのデバイスと共有したいパーソナリティ設定を持つターゲットデバイスを右クリックし、[デバイスプロパティのコピー]を選択します。 [ターゲットデバイスプロパティのコピー]ダイアログボックスが開きます。
  2. 詳細ペインでパーソナリティ設定を貼り付けるターゲットデバイスを右クリックし、[貼り付け]を選択します。
  3. パーソナリティ文字列のオプションをクリックして(このときほかのプロパティの貼り付けを選択することもできます)、[貼り付け]をクリックします。

ターゲットデバイスのパーソナリティデータの使用

ターゲットデバイスでファイルシステムを使用できるようになると、パーソナリティデータがWindows標準の.INIテキストファイルに書き込まれます。このファイルの名前はPersonality.iniです。 カスタムスクリプトやアプリケーションから簡単にアクセスできるように、このファイルはvDiskファイルシステムのルートディレクトリに格納されます。

ファイルの書式は次のとおりです。
[StringData] FieldName1=Field data for first field FieldName2=Field data for second field
このファイルにはカスタムスクリプトやアプリケーションからアクセスできます。 Windowsの標準的な.INI APIによってクエリできます。 さらに、バッチファイルからパーソナリティ設定に簡単にアクセスするために、コマンドラインアプリケーションのGetPersonality.exeが用意されています。
ターゲットデバイスのvDisk名とモードは、GetPersonality.exeを使用して取得できます。 Personality.iniファイルの[StringData]セクションには、次の予約値が含まれています。
$DiskName= $WriteCacheType=<0 (Private image) All other values are standard image; 1 (Server Disk), 2 (Server Disk Encrypted), 3 (RAM), 4 (Hard Disk), 5 (Hard Disk Encrypted), 6 (RAM Disk), or 7 (Difference Disk). Min=0, Max=7, Default=0>
xxはディスク名です。 ディスク名の冒頭に$を使用することはできません。 この記号は$DiskNameや$WriteCacheTypeなどの予約された値に使用されます。 $で始まる名前を入力すると、次のメッセージが表示されます。
A name cannot start with a $. This is used for reserve values like $DiskName and $WriteCacheType. The $DiskName and $WriteCacheType values can be retrieved on the target device using GetPersonality.exe. 

GetPersonality.exe

コマンドラインユーティリティのGetPersonality.exeを使用すると、Windowsのバッチファイルからターゲットデバイスのパーソナリティ設定にアクセスできます。 このプログラムはユーザーの代わりに.INIファイルをクエリし、ユーザーが指定する場所にパーソナリティ文字列を書きだします。 GetPersonality.exeでは次のコマンドラインオプションがサポートされます。
GetPersonality FieldName /r=RegistryKeyPath <- Place field in registry GetPersonality FieldName /f=FileName <- Place field in file GetPersonality FieldName /o <- Output field to STDOUT GetPersonality /? or /help <- Display help

レジストリキー値の設定

次の例では、DefaultPrinterフィールドからターゲットデバイスのパーソナリティデータ値を取得しターゲットデバイスのレジストリに書き込んで、デバイスのデフォルトプリンターを設定します。

ターゲットデバイスプロパティに設定されているパーソナリティ文字列は次のとおりです。
DefaultPrinter= \\CHESBAY01\SAVIN 9935DPE/2035DPE PCL 5e,winspool,Ne03:
ターゲットデバイスで実行するバッチファイルに次の行を含めます。
GetPersonality DefaultPrinter /r=HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Device
注:実際のキー名はネットワークプリンターのUNC名(\\dc1\Mainなど)である必要があります。そして、キーの値はwinspool,Ne01:のようになります。ここで、Ne01はインストールされている各プリンターの固有の番号です。

環境変数の設定

パーソナリティデータで環境変数を設定するには、2段階で処理を行います。
  1. GetPersonality /fコマンドを使用して変数を一時ファイルに挿入します。
  2. setコマンドを使用して変数を設定します。 たとえば、ターゲットデバイスにパーソナリティ名として環境変数Pathを設定するため、Pathnameを次の文字列値で定義できます。
    %SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Microsoft Office\OFFICE11\;C:\Program Files\Microsoft SQL Server\80\Tolls\Binn
    /fオプションを使用して、任意の名前の、ここではtemp.txtという一時ファイルを作成します。 バッチファイルには次の行を含める必要があります。
    GetPersonality Pathname /f=temp.txt set /p Path= 
    注:/fオプションを使用して指定したファイル名が既に存在する場合は、GetPersonalityでファイルに行が付加されることはありません。 その代わりに、ファイル内の既存の行が上書きされます。