状況:
MDTLite-Touchを使用して新しいシステムをイメージングしています。ウィザードをカスタマイズして、新しいシステムの命名を自動化して、プレフィックス「AG-」、ウィザードページのドロップダウンボックスから選択される部門コード(「FOO」など)、およびを含めるようにしようとしています。最後に、イメージ化されるコンピューターのシリアル番号。この場合の結果は「AG-FOO-1234567」になります。
状態:
私はしばらくこれに打ちのめされましたが、私のグーグル検索は答えを見つけませんでした、私の試行錯誤は有用なエラーメッセージを生成していません、そして私はウィザードページから変数を取得する方法のいくつかの基本を逃していると思いますライトタッチウィザードで使用される変数。
進捗:
- 最初に以下に含めるHTMLページを作成し、ページにスクリプトを追加して、OSDComputernameという変数に連結し、テスト用にmsgboxに出力して、正しく表示できるようにしました。
- これに伴う問題は、スクリプトをトリガーして、残りのLight-Touchプロセス全体で使用されるOSDComputername変数にスクリプトを割り当てる方法がわからないことです。
- スクリプトを関数に変更してDeployWiz_Initization.vbsに追加し、WDSの[初期化]フィールドを使用してスクリプトを呼び出しました。以下の関数を含めます。
- これに伴う問題は、OSDComputernameの「未定義の変数」を取得し、HTMLからデータを正しくプルしているかどうかわからないことです。
- 「OSDComputername = "」の後に、customsettings.iniファイルにスクリプトを追加してみました。
- その結果、ウィザードはコードをコンピューター名としてテキストで出力するだけでした。
- Customsettings.iniの「Properties =」(例:DepartmentName)に変数を追加し、HTMLフォームから値を取得して、DeployWiz_Initization.vbsの関数の変数にその値を設定し、「OSDComputername =」の後に呼び出してみました。 customsettings.ini のファッション「OSDComputername = "AG-"&%DepartmentName%」
- これにより、スクリプトからエラーが発生し、新しい変数に正しくアクセスできませんでした
- これでコードが機能しました。 HTMLからデータを取得し、OSDComputername環境変数を設定しています。動作するコードと一致するように、以下のコードを更新しました。正しく起動し、コンピューターの名前と説明を希望どおりに設定しています。
問題は解決された!
HTMLページ:
<H1>Configure the computer name.</H1>
<p>Please answer the following questions. Your answers will be used to formulate the computer's name and description.</p>
<FORM NAME="SetComputerNameForm">
<p>
<LABEL class="Larger"><u class="Larger">D</u>epartmental Prefix:</LABEL><br />
<SELECT NAME="DepartmentalPrefix_Edit" ID="DepartmentalPrefix_Edit" language=vbscript onpropertychange=ValidateSetComputerName AccessKey=D>
<option value="FOO">FOO</option>
<option value="DOE">DOE</option>
<option value="AFK">AFK</option>
<option value="BBL">BBL</option>
<option value="RTFM">RTFM</option>
</SELECT>
</p>
<p>
<LABEL class="Larger"><u class="Larger">C</u>lient's ID:</LABEL>
<br />
<INPUT NAME="ClientID" ID="ClientID" TYPE="text" ID="ClientID" SIZE="15" language=vbscript onpropertychange=ValidateSetComputerName AccessKey=C />
<label class=ErrMsg for=ClientID>* Required (MISSING)</label>
</p>
<p>
<LABEL class="Larger"><u class="Larger">B</u>uilding:</LABEL><br />
<SELECT NAME="Building_Edit" ID="Building_Edit" language=vbscript onpropertychange=ValidateSetComputerName AccessKey=B>
<option value="ASA">ASA</option>
<option value="ASB">ASB</option>
<option value="ASC">ASC</option>
</SELECT>
</p>
<p>
<LABEL class="Larger"><u class="Larger">R</u>oom Number:</span></LABEL>
<br />
<INPUT NAME="RoomNumber" ID="RoomNumber" TYPE="text" ID="RoomNumber" size="15" language=vbscript onpropertychange=ValidateSetComputerName AccessKey=R>
<label class=ErrMsg for=RoomNumber>* Required (MISSING)</label>
</p>
</FORM>
関数:
Function ValidateSetComputerName
ParseAllWarningLabels
If Len(Document.SetComputerNameForm.ClientNetID.Value) < 1 OR Len(Document.SetComputerNameForm.RoomNumber.Value) < 1 THEN
ButtonNext.disabled = true
Else
Dim Department
Dim SerialNumber
Dim CID
Dim RoomNumber
Dim BuildingName
Dim Make
Dim Model
Department = Document.SetComputerNameForm.DepartmentalPrefix_Edit.Value
SerialNumber = oEnvironment.Item("SerialNumber")
CID = Document.SetComputerNameForm.ClientID.Value
RoomNumber = Document.SetComputerNameForm.RoomNumber.Value
BuildingName = Document.SetComputerNameForm.Building_Edit.Value
Make = oEnvironment.Item("Make")
Model = oEnvironment.Item("Model")
oEnvironment.Item("OSDComputerName") = "AG-" & Department & "-" & Right(SerialNumber,7)
oEnvironment.Item("ComputerDescription") = Department & ", " & CID & ", " & RoomNumber & " " & BuildingName & ", " & Make & " " & Model
ButtonNext.disabled = false
End If
End Function
問題は解決されました。行った変更を反映するために、上記のコードを更新しました。