2013-10-30 103 views
0

我有一個任務序列,我們正在使用它來安裝不同的操作系統和軟件。任務序列打開一個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這一步的錯誤代碼,並填充註冊表設置。)

+0

檢查'env'和'env.GetVariables'的類型:'WScript.Echo TypeName(env):WScript.Echo TypeName(env.GetVariables)'。 –

+0

'TypeName(env)= Empty' - 它絕對沒有看到任務序列環境。 我還添加了一個初始錯誤日誌,以查看設置Set env =行後發生了什麼:429 ActiveX組件無法創建對象 - 這與在Windows本身內運行此命令*時得到的錯誤相同。 * – langstrom

回答

0

我通過取消選中「啓用64位文件重定向」的任務序列步驟固定它。

我不敢相信我以前沒有嘗試過!

相關問題