Product Documentation

管理目标设备个性化设置

Dec 20, 2016

通常情况下,共享同一个虚拟磁盘的所有目标设备必须具有完全相同的配置。 但通过目标设备个性化设置功能,可以为特定目标设备定义数据,并将这些数据设置为可供目标设备在引导时使用。 设置完成后,您的自定义应用程序和脚本可以将这些数据用于各种目的。

例如,假设您要使用 Provisioning Server 向三间教室中的 PC 提供支持。 每间教室都分别配有打印机,您希望每间教室中的 PC 默认使用正确的打印机。 可以通过目标设备个性化设置功能定义一个默认打印机字段,然后为每个目标设备输入打印机名称值。 可以在“目标设备属性”下定义该字段及相应的值。 此信息存储在数据库中。 当目标设备引导时,将从数据库中检索设备特定的打印机信息,并将其写入到虚拟磁盘上的 .INI 文件中。 可以使用自行开发的自定义脚本或应用程序,检索打印机值并将其写入到注册表中。 通过这种方法,每次目标设备引导时,都会设置为使用教室中正确的默认打印机。

可以为每个目标设备定义的字段数和数据量不超过 64 Kb(65536 字节)。 每个字段最大可达 2047 字节。

目标设备个性化设置任务
  • 使用控制台为单个目标设备定义个性化设置数据
  • 使用控制台为多个目标设备定义个性化设置数据
  • 使用目标设备个性化设置数据

使用控制台为单个目标设备定义个性化设置数据

为单个目标设备定义个性化设置数据:

  1. 在控制台中,在要定义个性化设置数据的目标设备上单击鼠标右键,然后选择属性菜单选项。
  2. 选择个性化设置选项卡。
  3. 单击添加按钮。 此时将显示“添加/编辑个性化设置字符串”对话框。
    注意:对于可以添加的字段名和相关字符串的数目没有固定限制, 但分配给单个字符串的个性化设置数据总量(名称加数据)大致不应超过 2047 字节。 此外,对于每个目标设备,名称、字符串和分隔符中包含的数据总量大致不应超过 64 Kb(65536 字节)。 当您尝试添加字符串时,管理员会检查字符串是否符合此限制。 如果超过此限制,系统将显示一条警告消息,禁止您创建无效配置。
    对目标设备个性化设置数据的处理方式与所有其他属性类似。 当使用 Add New Target Device Silently(无提示添加新目标设备)选项或 Add New Target Device with BIOS Prompts(添加新目标设备,显示 BIOS 提示)选项自动将新目标设备添加到数据库时,新添加的设备将继承这些数据。
  4. 输入名称和字符串值。
    注意:可以为字段名称使用任何名称,但同一个目标设备中不能重复使用某个字段名。 字段名不区分大小写。 换句话说,系统会将 FIELDNAME 和 fieldname 解释为相同的名称。 在字段名之前或之后输入的空格将自动被删除。 个性化设置的名称不能以 $ 开头。 此符号用于指示保留值,例如 $DiskName$WriteCacheType
  5. 单击确定

要添加更多字段和值,请根据需要重复步骤 5 和 6。 数据添加完毕后,单击确定退出“目标设备属性”对话框。

使用控制台为多个目标设备定义个性化设置数据

为多个设备定义目标设备个性化设置:
  1. 在控制台中,在要与其他设备共享的个性化设置所属的目标设备上单击鼠标右键,然后选择复制。 此时将显示“复制设备属性”对话框。
  2. 在“详细信息”窗格中,突出显示要将个性化设置复制到的目标设备,然后单击鼠标右键,并选择粘贴设备属性菜单。
  3. 单击个性化设置字符串选项(此时也可以选择复制其他属性),然后单击粘贴

使用目标设备个性化设置数据

文件系统可供目标设备使用后,个性化设置数据即会写入到标准 Windows .ini 文本文件 Personality.ini 中。 该文件存储在虚拟磁盘文件系统的根目录中,便于自定义脚本或应用程序访问。

此文件的格式如下:
[StringData] FieldName1=Field data for first field FieldName2=Field data for second field
此文件可供任何自定义脚本或应用程序访问。 可以通过标准 Windows .INI API 查询此文件。 此外,系统还提供了一个名为 GetPersonality.exe 的命令行应用程序,以便更轻松地通过批处理文件访问个性化设置。
可以使用 GetPersonality.exe 检索目标设备的虚拟磁盘名称和模式。 以下保留值包含在 Personality.ini 文件的 [StringData] 部分中:
$DiskName=<xx> $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 字段中检索目标设备个性化设置的数据值,并将其写入到目标设备的注册表中,以设置该设备的默认打印机。

“目标设备属性”中的“Target Device Personality String Set”(目标设备个性化设置字符串集)为:
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 为安装的每台打印机的唯一编号。

设置环境变量:

使用个性化设置数据来设置环境变量包括两个步骤:
  1. 使用带 /f 选项的 GetPersonality 命令将变量插入一个临时文件中。
  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= <temp.txt 
    注意:如果 /f 选项指定的文件名已存在,GetPersonality 不会将该命令行附加到批处理文件中, 而是覆盖该文件中现有的命令行。