我有一個任務序列,我們正在使用它來安裝不同的操作系統和軟件。任務序列打開一個HTA,向我們的技術人員提供可供選擇的選項列表,然後根據這些選擇創建任務序列變量,這些變量用於任務序列的其餘部分以確定要運行哪些步驟。CreateObject(「Microsoft.SMS.TSEnvironment」)不適用於Windows 7?
運行的最後一步是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
這一步的錯誤代碼,並填充註冊表設置。)
檢查'env'和'env.GetVariables'的類型:'WScript.Echo TypeName(env):WScript.Echo TypeName(env.GetVariables)'。 –
'TypeName(env)= Empty' - 它絕對沒有看到任務序列環境。 我還添加了一個初始錯誤日誌,以查看設置Set env =行後發生了什麼:429 ActiveX組件無法創建對象 - 這與在Windows本身內運行此命令*時得到的錯誤相同。 * – langstrom