Product Documentation

管理目标设备个性化设置

Jun 15, 2017

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

例如,假设您要使用 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=第一个字段的字段数据 FieldName2=第二个字段的字段数据
此文件可由任意自定义脚本或应用程序访问。可以通过标准 Windows .INI API 查询此文件。此外,系统还提供了一个名为 GetPersonality.exe 的命令行应用程序,以便更轻松地通过批处理文件访问个性化设置。
可以使用 GetPersonality.exe 检索目标设备的虚拟磁盘名称和模式。以下预留值包括在 Personality.ini 文件的 [StringData] 部分中:
$DiskName= $WriteCacheType=<0(专有映像)所有其他值为标准映像;1(服务器磁盘)、2(加密的服务器磁盘)、3 (RAM)、4(硬盘)、5(加密的硬盘)、6(RAM 磁盘)或 7(差异磁盘)。最小值=0,最大值=7,默认值=0>
xx 表示磁盘名称。虚拟磁盘名称不能以 $ 开头。此符号用于指示保留值,例如 $DiskName 和 $WriteCacheType。如果输入了以 $ 开头的名称,系统将显示以下消息:
名称不能以 $ 符号开头。该符号用于保留值中,例如 $DiskName 和 $WriteCacheType。可以使用 GetPersonality.exe 在目标设备上检索 $DiskName 和 $WriteCacheType 值。 

GetPersonality.exe

命令行实用程序 GetPersonality.exe 允许用户通过 Windows 批处理文件访问目标设备个性化设置。该程序在 INI 文件中查询用户,并将个性化设置字符串置于用户所选择的位置。GetPersonality.exe 支持以下命令行选项:
GetPersonality FieldName /r=RegistryKeyPath <- 将字段放置在注册表中 GetPersonality FieldName /f=FileName <- 将字段放置在文件中 GetPersonality FieldName /o <- 将字段输出到 STDOUT GetPersonality /? 或 /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 为安装的每台打印机的唯一编号。

设置环境变量:

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