WDS+MDT網路啟動自動部署windows(十四)如何除錯自定義任務指令碼

上官飞鸿發表於2024-05-06

簡介:

為了使MDT在系統安裝時執行自定義操作,可以寫vbs指令碼或wsf指令碼。

除錯這些指令碼確實是很有難度的事,我在上一篇設定計算機描述的實驗中,嘗試了兩天,才完成測試,為什麼呢?因為每次測試都用模擬機安裝一遍windows,最近一個月,真的超過了幾百遍重灌windows。

中斷(暫停MDT安裝)

會程式設計除錯的夥伴都瞭解這個概念,在任務執行時暫停,以檢視在這個程式執行到這個地方時各變數的值。

常見的其實是bat指令碼中的pause,按任意鍵繼續。

@echo off
echo bat暫停指令碼
pause

想辦法給MDT打個斷點吧。

我一直是在仿寫wsf指令碼,那麼就寫個wsf的斷點吧。

# Bug manufacturing breakpoint
# test_puase.wsf
<?xml version="1.0" encoding="utf-8"?>
<job>
  <script language="VBScript">
    <![CDATA[
    test puase
    ]]>
  </script>
</job>

其實這不算斷點,算bug。

放入mdt任務序列,自定義command line任務。

cscript %scriptroot%/test_puase.wsf

類似這樣

由於wsf是個錯誤的指令碼,所以執行錯誤,就停了下來。

測試指令碼

訪問wds共享

找到你的指令碼隨意測試吧。直接雙擊就可以了。

別管什麼vbs,wsf,ps1。只要這裡能執行,你就可以放心寫入任務序列的自定義任務。

只是需要注意指令碼路徑,寫為%SYSTEMROOT%,就是共享目錄的Scripts目錄

只是不能測試變數,也不知道它自動指令碼是從什麼地方獲取變數的。

啟動命令參考:

vbs:

ocscript.exe "%SCRIPTROOT%\*****.vbs"

wsf:

wsf帶引數:

ps1:
前面介紹過

%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\powershell.exe -STA -NoProfile -ExecutionPolicy Bypass -File "%SCRIPTROOT%\Custom\ChooseDisk\Choose_Smallest_Disk.ps1"

相關文章