CreateObject( "Microsoft.SMS.TSEnvironment" ) 不适用于 Windows 7?



我有一个任务序列,我们用它来安装不同的操作系统和软件。任务序列会打开一个 HTA,为我们的技术人员提供可供选择的选项列表,然后基于这些选择创建任务序列变量,这些变量在任务序列的其余部分用于确定要运行的步骤。

运行的最后一步是一个将所有任务序列变量转储到注册表的WriteRegistryImageSettings.vbs

它不适用于Windows 7,但适用于XP。

Set env = CreateObject("Microsoft.SMS.TSEnvironment")
Set objShell = CreateObject("WScript.Shell")
strKeyPath = "HKEY_LOCAL_MACHINESYSTEMImage 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,并填充注册表设置。

我通过取消选中任务序列步骤的"启用 64 位文件重定向"来修复它。

我简直不敢相信我没有早点尝试!

相关内容

  • 没有找到相关文章

最新更新