管理目标设备个性化设置
通常情况下,共享同一个虚拟磁盘的所有目标设备都必须具有完全相同的配置。通过目标设备个性化设置功能,可以为特定目标设备定义数据,并将这些数据设置为可供目标设备在引导时使用。此数据随后可由您的自定义应用程序和脚本用于各种目的。
例如,假设您要使用 Provisioning Server 向三间教室中的 PC 提供支持。每间教室都分别配有打印机,您希望每间教室中的 PC 默认使用正确的打印机。可以通过目标设备个性化设置功能定义一个默认打印机字段,然后为每个目标设备输入打印机名称值。在目标设备属性下定义该字段及相应的值。此信息存储在数据库中。当目标设备引导时,将从数据库中检索设备特定的打印机信息,并将其写入到虚拟磁盘上的 .INI 文件中。可以使用自行开发的自定义脚本或应用程序,检索打印机值并将其写入到注册表中。通过这种方法,每次目标设备引导时,都可以将其设置为使用教室中正确的默认打印机。
可以为每个目标设备定义的字段数和数据量不超过 64 KB(或 65536 字节)。每个字段最大可达 2047 字节。
目标设备个性化设置任务
- 使用控制台为单个目标设备定义个性化设置数据
- 使用控制台为多个目标设备定义个性化设置数据
- 使用目标设备个性化设置数据
使用控制台为单个目标设备定义个性化设置数据
为单个目标设备定义个性化设置数据:
- 在控制台中,在要定义个性化设置数据的目标设备上单击鼠标右键,然后选择属性菜单选项。
- 选择个性化设置选项卡。
- 单击添加按钮。此时将显示添加/编辑个性化设置字符串对话框。 注意:对于可以添加的字段名和相关字符串的数目没有固定限制,但分配给单个字符串的个性化设置数据总量(名称加数据)大致不应超过 2047 字节。此外,对于每个目标设备,名称、字符串和分隔符中包含的数据总量不超过大约 64 KB(或 65536 字节)。当您尝试添加字符串时,管理员会检查字符串是否符合此限制。如果超过此限制,系统将显示一条警告消息,禁止您创建无效配置。 对目标设备个性化设置数据的处理方式与所有其他属性类似。当使用 Add New Target Device Silently(无提示添加新目标设备)选项或 Add New Target Device with BIOS Prompts(添加新目标设备,显示 BIOS 提示)选项自动将新目标设备添加到数据库时,新添加的设备将继承这些数据。
- 输入名称和字符串值。 注意:可以使用任何名称作为字段 名,但同一个目标设备中不能重复使用某个字段名。字段名不区分大小写。换句话说,系统会将 FIELDNAME 和 fieldname 解释为相同的名称。在字段名之前或之后输入的空格将自动被删除。个性化设置的名称不能以 $ 开头。此符号用于指示保留值,例如 $DiskName 和 $WriteCacheType。
- 单击“确定”。
要添加更多字段和值,请根据需要重复步骤 5 和 6。数据添加完毕后,单击确定以退出目标设备属性对话框。
使用控制台为多个目标设备定义个性化设置数据
为多个设备定义目标设备个性化设置:
- 在控制台中,在要与其他设备共享的个性化设置所属的目标设备上单击鼠标右键,然后选择复制。此时将显示复制设备属性对话框。
- 在“详细信息”窗格中,突出显示要将个性化设置复制到的目标设备,然后单击鼠标右键,并选择粘贴设备属性菜单。
- 单击个性化设置字符串选项(此时也可以选择复制其他属性),然后单击粘贴。
使用目标设备个性化设置数据
文件系统可供目标设备使用后,个性化设置数据即会写入到标准 Windows .ini 文本文件 Personality.ini 中。该文件存储在虚拟磁盘文件系统的根目录中,便于供自定义脚本或应用程序进行访问。
此文件的格式如下:
[StringData]
FieldName1=Field data for first field
FieldName2=Field data for second field
<!--NeedCopy-->
此文件可供任何自定义脚本或应用程序访问。可以通过标准 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>
<!--NeedCopy-->
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.
<!--NeedCopy-->
$WriteCacheType
参数包括用于溢出至本地硬盘的 RAM 缓存模式的以下选项:
- private = 0
- serverCache = 1
- deviceRamCache = 3
- deviceDiskCache = 4
- deviceRamDisk = 6
- serverPersistent = 7
- deviceRamCacheWithDiskOverflow = 9 *
GetPersonality.exe
命令行实用程序 GetPersonality.exe 允许用户通过 Windows 批处理文件访问目标设备个性化设置。该程序在 INI 文件中查询用户,并将个性化设置字符串置于用户所选择的位置。GetPersonality.exe 支持以下命令行选项:
``` pre codeblock 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 命令将变量插入一个临时文件中。
1. 使用 set 命令设置该变量。例如,要为目标设备的环境变量 Path 语句设置一个个性化名称,可以使用以下字符串值定义 Pathname:
```
%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Microsoft Office\OFFICE11;C:\Program Files\Microsoft SQL Server\80\Tolls\Binn
<!--NeedCopy-->
/f 选项将创建一个临时文件(在本例中为 temp.txt 文件),用于分配名称。然后需要在批处理文件中包括以下命令行:
```
GetPersonality Pathname /f=temp.txt
set /p Path= <temp.txt
<!--NeedCopy--> ```
注意:如果 /f 选项指定的文件名已存在,
GetPersonality 不会将该命令行附加到批处理文件中,而是覆盖该文件中现有的命令行。