我有一个任务序列,我们用它来安装不同的操作系统和软件。任务序列打开一个HTA,它为我们的技术人员提供了一个可供选择的选项列表,然后根据这些选项创建任务序列变量,这些变量在任务序列的其余部分中用于确定要运行的步骤。
运行的最后一步是WriteRegistryImageSettings.vbs
,它将所有任务序列变量转储到注册表。
它不适用于Windows 7,但适用于XP。
Set env = CreateObject("Microsoft.SMS.TSEnvironment")
Set objShell = CreateObject("WScript.Shell")
strKeyPath = "HKEY_LOCAL_MACHINE\SYSTEM\Image Settings\"
For Each var In env.GetVariables
If Left(var,3) = "OSD" Then
objShell.RegWrite strKeyPath & var,env(var),"REG_SZ"
End If
Next
我也是通过写入文本文件来记录这个脚本,这是脚本的最后一行:
objLog.WriteLine "Final Result: " & Err.Number & " " & Err.Description
这是日志中的结果:Final Result: 451 Object not a collection
同样,这适用于Windows XP。任何想法为什么它不适用于Windows 7图像?
(我实际上是将一个变量传递给之前编写的脚本,这适用于Windows 7.脚本的命令行是WriteRegistryImageSettings.vbs %OSDType%
。这个代码(发生在脚本的前面) )是:
Err.Clear
objLog.WriteLine "Attempting to write strImageType: """ & strImageType & """"
objShell.RegWrite strKeyPath & "ImageType",strImageType,"REG_SZ"
objLog.WriteLine "Result is " & Err.Number & " " & Err.Description
日志文件显示此步骤的错误代码0
,并填充了注册表设置。)
答案 0 :(得分:0)
我通过取消选中“启用64位文件重定向”来修复任务序列步骤。
我无法相信我之前没有尝试过!