关于任务序列变量

应用到: System Center Configuration Manager 2007, System Center Configuration Manager 2007 R2, System Center Configuration Manager 2007 R3, System Center Configuration Manager 2007 SP1, System Center Configuration Manager 2007 SP2

Configuration Manager 2007 任务序列环境变量是一组名称和值对,它们为计算机、操作系统和 Configuration Manager 2007 客户端计算机上的用户状态配置任务提供配置和操作系统的部署设置。任务序列变量提供了配置和自定义任务序列中的步骤的机制。

在 Configuration Manager 2007 管理员控制台中创建任务序列时,系统将任务序列保存为步骤的序列。您可以使用任务序列编辑器编辑任务序列中的任务序列步骤及其关联设置。运行任务序列时,许多任务序列设置保存为环境变量。您可以访问或更改内置任务序列变量的值,也可以创建新的任务序列变量以便自定义任务序列在目标计算机上的运行方式。

您可以使用任务序列环境中的任务序列变量执行以下操作:

  • 为任务序列操作配置设置

  • 为任务序列步骤提供命令行参数

  • 评估决定任务序列步骤或组是否应该运行的条件

  • 为任务序列中使用的自定义脚本提供值

例如,您可能拥有一个包含加入域或工作组任务序列步骤的任务序列。该任务序列可能播发至不同的集合,这些集合中的集合成员身份由域成员身份决定。在这种情况下,您可以在任务序列中为每个集合的域名指定各集合任务序列变量,然后使用该任务序列变量提供合适的域名。

创建任务序列变量

您可以添加新的任务序列变量以自定义并控制任务序列中的步骤。例如,您可以创建任务序列变量以替代内置任务序列步骤的设置。您还可以创建自定义任务序列变量以与任务序列中的条件、命令行或自定义步骤一起使用。创建任务序列变量时,任务序列变量和关联值将保留在任务序列环境内,即使在序列重新启动目标计算机时也是如此。可以在不同环境中的任务序列内使用变量及其值。例如,它可以用在完整的 Windows 操作系统以及 Windows 预安装环境中。

下表描述了创建任务序列环境变量的方法以及每种方法的使用含义。

创建方法 使用概述

使用任务序列编辑器设置任务序列步骤中的字段

指定任务序列步骤的设置默认值。只有当步骤在任务序列中运行时才可以访问变量和值。变量和值不是整体序列环境的一部分,任务序列中的其他任务序列步骤不可以访问它们。

有关内置变量及其关联操作的列表,请参阅操作系统部署任务序列变量

在任务序列中添加设置任务序列变量步骤

指定任务序列步骤作为任务序列的一部分运行时,任务序列环境中的任务序列变量和值。所有后续任务序列步骤均可以访问环境变量及其值。

定义每个集合变量

指定计算机集合的任务序列和值。所有以集合为目标的任务序列都可以访问任务序列变量及其值。

定义每个计算机变量

指定特殊计算机的任务序列变量和值。所有以计算机为目标的任务序列都可以访问任务序列变量及其值。

在任务序列媒体向导的“变量”页面上添加任务序列变量

为从可访问任务序列变量及其值的媒体运行的任务序列指定任务序列变量及其值。

要替代内置任务序列变量的默认值,您必须将任务序列变量的名称定义成与内置任务序列变量的名称相同。有关带关联操作和使用的内置任务序列变量的列表,请参阅操作系统部署任务序列变量

您可以使用与创建任务序列变量相同的方法从任务序列环境中删除任务序列变量。要从任务序列环境中删除变量,请将任务序列变量值设为空字符串。

您可以结合几种方法将环境任务序列变量设置成相同序列的不同值。在高级方案中,您可以使用任务序列编辑器为序列中的步骤设置默认值,然后使用每种创建方法设置自定义变量值。下表描述了使用多种方法创建任务序列变量时决定使用哪一个值的规则:

  1. 设置任务序列变量替代其他所有创建方法。

  2. 每个计算机变量优先于每个集合变量。如果为每个计算机变量和每个集合变量指定相同的任务序列变量名称,则在目标计算机运行播发任务序列时使用每个计算机变量值。

  3. 可以从独立媒体上运行任务序列。使用媒体变量替代每个集合变量或每个计算机变量。如果从独立媒体上运行任务序列,则每个计算机变量和每个集合变量不会应用并且不会被使用。相反,使用任务序列媒体向导的“变量”页面上定义的任务序列变量为从媒体上运行的任务序列设置特定值。

  4. 如果没有在整体序列环境中设置任务序列变量值,那么在任务序列编辑器中设置它时,内置操作将使用步骤的默认值。

除了替代内置任务序列步骤设置的值以外,还可以为任务序列步骤、脚本、命令行或条件中的使用创建新的环境变量。为新的任务序列变量指定名称时,有几条准则必须遵守。

下一节对这些准则进行了描述,并提供了有效任务序列变量名称和无效任务序列变量名称的示例:

  • 您指定的任务序列变量名称可以包含字母、数字、下划线 (_) 和连字符 (-)。

  • 任务序列变量名称的长度最小为 1 个字符,最大为 256 个字符。

  • 用户定义的变量必须以字母 (A-Z) 开头。

  • 用户定义的变量名称不能以下划线字符开头。仅只读任务序列变量的前面使用下划线字符。

    备注

    任务序列中的任务序列步骤可以读取只读任务序列变量,但不能对其进行设置。例如,您可以使用只读任务序列变量作为“运行命令行”任务序列操作的命令行的一部分,但不能使用“设置任务序列变量”操作对只读变量进行设置。

  • 任务序列变量名称不区分大小写。例如,OSDVAR 和 osdvar 代表相同的任务序列变量。

  • 任务序列变量名称的开头、中间或结尾不能有空格。将不读取任务序列变量名称开头或末尾的空格。

  • 下表显示了有效用户指定任务序列变量和无效用户指定任务序列变量的示例。

有效用户指定变量名称的示例 无效用户指定变量名称的示例

MyVariable

1Variable

备注

用户指定的任务序列变量不能以数字开头。

My_Variable

MyV@riable

备注

用户指定的任务序列变量不能包含 @ 字符。

My_Variable_2

_MyVariable

备注

用户指定的任务序列变量不能以下划线开头。

以下是创建任务序列变量时的一些常规限制:

  • 任务序列变量值不能超过 4000 个字符。

  • 不能创建或取代只读任务序列变量。由下划线字符 (_) 开头的名称指定只读变量。您可以访问任务序列中只读任务序列变量的值;但不能更改其关联值。

  • 对可以创建的任务序列变量的数量没有限制,但任务序列环境的总大小不能超过 10 MB。

访问任务序列环境变量

使用上一节描述的其中一种方法指定任务序列变量及其值后,您可以使用任务序列中的环境变量值。您可以访问内置任务序列变量的默认值、为内置变量指定新值,或使用命令行或脚本中的自定义任务序列变量。

下表概述了可以通过访问任务序列环境变量来执行的任务序列操作。

任务序列操作 使用概述

配置操作设置

您可以指定序列运行时变量值提供的任务序列步骤设置。

要通过任务序列环境变量提供任务序列步骤设置,请使用任务序列编辑器来编辑步骤,并指定变量名称作为字段值。变量名称的前后都必须使用百分符号 (%),以表明它是环境变量。

提供命令行参数

您可以使用环境变量值指定部分或全部自定义命令行。

要使用环境变量来提供命令行设置,请使用变量名称作为“运行命令行”任务序列步骤中的“命令行”字段的一部分。变量名称前后必须使用百分符号 (%)。

例如:

下列命令行使用内置环境变量将计算机名称写入 C:\File.txt

Cmd /C %_SMSTSMachineName% > C:\File.txt

评估步骤条件

您可以使用内置或自定义任务序列环境变量作为任务序列步骤或组条件的一部分。运行 Configuration Manager 2007 计算机上的任务序列步骤或组之前,将评估环境变量值。

要添加评估变量值的条件,请选择序列中的步骤或组,并使用“选项”选项卡上的“添加条件”下拉列表。选择任务序列变量条件,指定要评估的变量和值。

为自定义脚本提供信息

任务序列运行时,可以使用 Microsoft.SMS.TSEnvironment COM 对象读取和写入任务序列变量。

以下示例说明了查询 _SMSTSLogPath 任务序列变量以获取当前日志位置的 Visual Basic 脚本文件。脚本还设置自定义变量。

dim osd: set env = CreateObject("Microsoft.SMS.TSEnvironment")

dim logPath

' You can query the environment to get an existing variable.

logPath = env("_SMSTSLogPath")

' You can also set a variable in the OSD environment.

env("MyCustomVariable") = "varname"

有关使用脚本中的任务序列变量的详细信息,请参阅 SDK 文档。

计算机和集合变量

可以将任务序列配置为同时在多个计算机或集合上运行。您可以指定唯一的每个计算机或每个集合信息,如指定唯一的操作系统产品密钥或将集合的所有成员加入指定的域。

您可以将任务序列变量分配给单个计算机或集合。当任务序列开始在目标计算机或集合上运行时,指定的值将应用于目标计算机或集合。

您可以为单个计算机或集合指定任务序列变量。当任务序列开始在目标计算机或集合上启动时,指定的变量将添加到环境中,值将可用于任务序列中的所有任务序列步骤。

重要

如果每个集合变量和每个计算机变量使用相同的变量名称,则计算机变量值优先于集合变量。分配给集合的任务序列变量优先于任务序列变量和内置任务序列变量。

有关为单个计算机或集合创建任务序列变量的详细信息,请参阅下列主题:

任务序列媒体变量

可以为存储在媒体上并从媒体(例如 CD/DVD 集或 USB 驱动器)运行的任务序列指定任务序列变量。您可以在创建包含任务序列的媒体时添加任务序列变量并指定它们的值;变量及其值保存在有任务序列的媒体上。

重要

从媒体运行任务序列时,所有自定义任务序列变量信息必须包含在媒体上;每个集合变量和每个计算机变量不能与从媒体上运行的任务序列一起使用。

您可以在任务序列媒体向导的“变量”页面上指定任务序列变量。有关使用任务序列媒体的详细信息,请参阅任务序列媒体向导。

任务序列变量列表

有关内置任务序列变量的列表,请参阅任务序列变量

另请参阅

任务

如何创建每个集合任务序列变量
如何创建每台计算机任务序列变量

概念

操作系统部署任务序列变量