1

状況:

MDT Lite-Touch を使用して新しいシステムをイメージングしています。ウィザードをカスタマイズして、新しいシステムの命名を自動化し、ウィザード ページのドロップダウン ボックスから選択した部門コード (例: 「COMM」) であるプレフィックス「AG-」を含めようとしています。最後に、イメージ化されているコンピューターのシリアル番号なので、この場合の結果は「AG-COMM-1234567」になります。

進捗:

  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= の後に呼び出します。 " customsetting.ini の "OSDComputername="AG-" & %DepartmentName%" のように
    • 私は今再構築していて、これがどうなるか見ていきます

どんな助けでも大歓迎です。

HTML ページ:

<HTML>
<H1>Configure the computer name.</H1>
<span style="width: 95%;">
    <p>Please answer the following questions.  Your answers will be used to formulate the computer's name and description.</p>
        <FORM NAME="TestForm">
            <p>Departmental Prefix: <!-- <label class=ErrMsg id=DepartmentalPrefix_Err>* Required (MISSING)</label> -->
                <SELECT NAME="DepartmentalPrefix_Edit" class=WideEdit>
                    <option value="AADC">AADC</option>
                    <option value="AEM">AEM</option>
                    <option value="AIP">AIP</option>
                    <option value="COM">COM</option>
                    <option value="DO">DO</option>
                    <option value="DSOC">DSOC</option>
                    <option value="EDU">EDU</option>
                    <option value="EPE">EPE</option>
                    <option value="ITN">ITN</option>
                    <option value="LA">LA</option>
                    <option value="OAP">OAP</option>
                    <option value="SML">SML</option>
                    
                </SELECT>
            </p>

            <p><span class="Larger">Client's Net<u class=larger>I</u>D:</span>
            <INPUT NAME="ClientNetID" TYPE="TEXT" ID="ClientNetID" SIZE="15"></p>

            <p>Building: <!-- <label class=ErrMsg id=Building_Err>* Required (MISSING)</label> -->
                <SELECT NAME="Building_Edit" class=WideEdit>
                    <option value="Academic Surge Facility A">Academic Surge Facility A</option>
                    <option value="Academic Surge Facility B">Academic Surge Facility B</option>
                    <option value="Caldwell">Caldwell</option>
                    <option value="Kennedy">Kennedy</option>
                    <option value="Roberts">Roberts</option>
                    <option value="Warren">Warren</option>
                </SELECT>
            </p>

            <p>
                <span class="Larger">Room <u class=larger>N</u>umber:</span>
                <input type=text id="RoomNumber" name=RoomNumber size=15 />
            </p>
        </FORM>           
</span>
</HTML>

関数:

Function SetComputerName

OSDComputerName = "AG-" & oEnvironment.Item("DepartmentalPrefix_Edit")
ComputerDescription = oEnvironment.Item("DepartmentalPrefix_Edit") & ", " & oEnvironment.Item("ClientNetID") & ", " & oEnvironment.Item("RoomNumber") & " " & oEnvironment.Item("Building_Edit")

End Function
4

1 に答える 1

1

問題は解決された!

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

実際の変更点は、カスタム HTML 画面から値を取得するために必要だった関数にあります。Document.FormName.FieldName.Value の形式を使用して各値を設定しなければならなかった作業関数が表示されます。

次に、組み込みの環境項目を使用して、メーカー、モデル、およびシリアル番号を収集できます。すべての部品、すべてのユーザー選択および組み込み値を取得したら、必要な順序で文字列を連結し、値を環境項目「OSDComputerName」および「ComputerDescription」に割り当てるだけでした。

また、ButtonNext.disabled を使用して、ユーザーが次の画面に進む前に必要なすべてのフィールドを作成しました。

于 2012-10-09T12:54:14.577 に答える