Windows-Server-2008

修改 MDT 嚮導以自動命名電腦

  • October 9, 2012

情況:

我正在使用 MDT Lite-Touch 對新系統進行成像。我正在嘗試自定義嚮導以自動命名新系統,以便它們包含前綴“AG-”,這是從嚮導頁面的下拉框中選擇的部門程式碼(例如“FOO”),以及最後是正在成像的電腦的序列號,因此在這種情況下我的結果將是“AG-FOO-1234567”

地位:

我已經解決了一段時間,但我的Google搜尋沒有找到答案,我的反複試驗沒有產生有用的錯誤消息,我認為我錯過了一些如何從嚮導頁面獲取變數的基礎知識到lite-touch 嚮導使用的變數。

進步:

  1. 我首先創建了 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

問題已解決。我已經更新了上面的程式碼以反映我所做的更改。

引用自:https://serverfault.com/questions/434847