Damit nicht jeder seinen Rechner mit MDT neu aufsetzen kann nutzt man das Prestaging-Verfahren mit Hinterlegung der PXE GUID im AD – nur hindert das diejenigen die auf so einem prestaged Rechner sitzen MDT anzuwerfen, deswegen sollte man die MDT Task Sequenzen mit einem Kennwort schützen. Da wir sowieso den Rechnernamen über die MDT Datenbank “mitgeben” habe ich ein “freies” Feld in der Datenbank (ScanStateArgs da wir USMT nicht nutzen) zweckentfremdet und schreibe dort ein zufälliges Kennwort rein (welches ich dem berechtigten Installateur natürlich bekannt gebe) – in der MDT TS wird dann ganz weit oben der Aufruf für diese HTA eingefügt (welche halt natürlich irgendwo am MDT Deployment Share herumkugeln muss):

<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
      <title>Deployment password</title>
      <HTA:APPLICATION ID="App Mapping" APPLICATIONNAME="App Mapping" VERSION=".01" BORDER="thin" SCROLL="no" SHOWMENU="no" SYSMENU="no" SINGLEINSTANCE="yes" WINDOWSTATE="Normal"/>
   </head>
   <script language="vbscript" type="text/vbscript" src="..\ZTIUtility.vbs"></script>
   <script language="vbscript" type="text/vbscript">
      on error resume next
      sub Window_onload
         on error resume next
         
         Set oTSProgressUI = CreateObject("Microsoft.SMS.TSProgressUI") 
         oTSProgressUI.CloseProgressDialog 
         Set oTSProgressUI = Nothing         
         
         x=350
         y=150
         window.resizeTo x,y
         window.moveTo ((screen.availWidth \ 2) - (x \ 2)), ((screen.availHeight \ 2) - (y \ 2))
         MDTPassword.Focus
      end sub

      sub Document_onKeyDown
         alt=window.event.altKey
         if window.event.keyCode=13 then
            CheckPassword
         end if
         if window.event.keyCode=116 or window.event.keyCode=27 or (alt=true and window.event.keyCode=115) then
            window.event.keyCode=0
            window.event.cancelBubble=true
            window.event.returnValue=false
         end if       
      end sub

      Function CheckPassword
         if Trim(MDTPassword.Value) = "" Then
            MsgBox "Password empty/only blanks"
            MDTPassword.Focus
            Exit Function
         end if
         if IsNull(oEnvironment.Item("ScanStateArgs")) or Trim(oEnvironment.Item("ScanStateArgs")) = "" Then 
            MsgBox "No password in MDT database, cannot continue"
            MDTPassword.Focus
            Exit Function
         end if
         if oEnvironment.Item("ScanStateArgs") = MDTPassword.value then
            self close ()
         else
            msgbox "Wrong password"
            MDTPassword.Value=""
            MDTPassword.Focus
         end if
      End Function
   </script>
   <body>
      <br/>
      <Font Face=Arial size=3>
         <b>Deployment password: </b>
         <input name="MDTPassword" type="password" value="" size="10">
      </font>
      <input id=runbutton class="button" type="button" value=" OK " name="ok_button" onClick="CheckPassword">
   </body>
</html>