さまざまなオペレーティング システムとソフトウェアをインストールするために使用しているタスク シーケンスがあります。タスク シーケンスは 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
され、レジストリ設定が読み込まれます。)