修改 MDT 嚮導以自動命名電腦
情況:
我正在使用 MDT Lite-Touch 對新系統進行成像。我正在嘗試自定義嚮導以自動命名新系統,以便它們包含前綴“AG-”,這是從嚮導頁面的下拉框中選擇的部門程式碼(例如“FOO”),以及最後是正在成像的電腦的序列號,因此在這種情況下我的結果將是“AG-FOO-1234567”
地位:
我已經解決了一段時間,但我的Google搜尋沒有找到答案,我的反複試驗沒有產生有用的錯誤消息,我認為我錯過了一些如何從嚮導頁面獲取變數的基礎知識到lite-touch 嚮導使用的變數。
進步:
- 我首先創建了 HTML 頁面,我將在下麵包含該頁面,並在頁面中添加了一個腳本以將這些片段連接到一個名為 OSDComputername 的變數中,為了進行測試,我可以在 msgbox 中輸出並正確顯示。
* 問題是我不知道如何觸發腳本,然後將其分配給整個 Light-Touch 過程的其餘部分使用的 OSDComputername 變數。 2. 我將腳本更改為函式並將其添加到 DeployWiz_Initization.vbs 然後使用 WDS 中的 Initialization 欄位來呼叫它。我將包括下面的功能。
* 問題是我會得到 OSDComputername 的“未定義變數”,我不確定它是否正確地從 HTML 中提取數據。 3. 我嘗試在“OSDComputername =”之後將腳本添加到 customsettings.ini 文件中
* 這導致嚮導僅以文本形式輸出我的程式碼作為電腦名稱。 4. 我嘗試在 customsettings.ini 中將變數添加到“Properties=”(例如DepartmentName),從 HTML 表單中提取它們的值並將該值設置為 DeployWiz_Initization.vbs 中我的函式中的變數,並在“OSDComputername=”之後呼叫它們customsettings.ini 中的時尚“OSDComputername=“AG-” & %DepartmentName%"
* 這導致我的腳本出現錯誤,無法正確訪問新變數 5. 我現在有我的程式碼工作。它從 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
問題已解決。我已經更新了上面的程式碼以反映我所做的更改。