如何在正在运行的Configuration Manager任务序列中使用任务序列变量

在Configuration Manager中,可以使用任务序列环境 COM 自动化对象 (Microsoft.SMS.TSEnvironment) ,在正在运行的任务序列中创建、获取和设置任务序列变量。

通常,使用命令行操作来运行脚本来访问任务序列变量。 但是,还可以通过使用可以使用 COM 自动化对象的任何编程环境,在运行任务序列中访问它们。

注意

在 Configuration Manager 客户端上设置任务变量时,该变量可用于任务序列中的后续步骤。

若要创建自定义任务序列变量,请使用要创建的新变量的名称设置 Microsoft.SMS.TSEnvironment 属性。 如果该变量尚不存在,则会创建它。 如果变量已存在,则更新其值。 随后可以从 获取自定义变量值 Microsoft.SMS.TSEnvironment

当任务序列变量是数组时,将按以下格式传递它:

<base array name><element #><Property>="value".  

例如, 变量 OSDPartitions 是 的 SMS_TaskSequencePartitionSettings数组。 下面表示一个元素 OSDPartitions 数组:

OSDPartitions0Bootable="true"  
OSDPartitions0FileSystem="NTFS"  
OSDPartition0QuickFormat="false"  
OSDPartitions0Size="100"  
OSDPartitions0SizeUnits="Percent"  
OSDPartitions0Type="Primary"  

若要访问 FileSystem 此数组,请使用 OSDPartitions0FileSystem。 如果数组较大,则通过数组对第二个元素等使用OSDPartitions1FileSystem

不建议将托管代码用于任务排序环境,因为无法在以下环境中使用它:

  • Windows PE

  • Windows Server 2008

  • Windows 2000

    当完整操作系统正在运行并安装了正确版本的 .NET Framework 时,托管代码将正常工作。

    所需的.NET Framework版本取决于所使用的 Visual Studio 版本。

Visual Studio .NET Framework版本
Visual Studio 2003 1.0
Visual Studio 2005 2.0
Visual Studio 2008 2.0 到 3.5

你将需要使用 COM 互操作来访问 对象 TSEnvironment 。 需要满足以下条件:

  • 对 TSEnvironment 1.0 类型库的引用。

  • TSEnvironmentLib 命名空间。

在正在运行的任务序列中使用任务变量

  1. 在正在运行的任务序列中,创建 实例 Microsoft.SMS.TSEnvironment

  2. 获取或设置所需的环境变量。

示例

以下示例方法获取 _SMSTSLogPath 变量。 它还设置自定义变量和数组自定义变量值的值。

有关调用示例代码的信息,请参阅调用Configuration Manager代码片段

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

   ' You can query the environment to get an existing variable.  
   logPath = env("_SMSTSLogPath")  

    wscript.echo logPath   

   ' You can also set a variable in the Operating System Deployment environment.  
   env("MyCustomVariable") = "My Custom Value"  

   ' Set the OSDPartitions(0) Bootable array member to 0.  
    env("OSDPartitions0Bootable") = "true"  
End Sub  

编译代码

平台

操作系统部署任务排序环境

可靠编程

有关错误处理的详细信息,请参阅关于Configuration Manager错误

.NET Framework 安全性

有关保护Configuration Manager应用程序的详细信息,请参阅Configuration Manager基于角色的管理

另请参阅

对象概述如何使用托管代码连接到 Configuration Manager 中的 SMS 提供程序
如何使用 WMI 连接到 Configuration Manager 中的短信提供程序
任务序列概述如何设置操作系统部署任务序列变量