Loading

WDS+MDT网络启动自动部署windows(十四)如何调试自定义任务脚本

简介:

为了使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是个错误的脚本,所以执行错误,就停了下来。

另一种中断

还有一种中断,在MDT中加入一个需要手动点击的安装程序,我是在测试notepad++时偶然发现的,现补充上来。

app增加notepad++,任务序列自己加一个安装单独软件,放在restore中,那么执行的时候就会跳出notepad++的安装,由于没有完成,所以等待你的输入,当你手动下一步完成,则任务序列继续。

这种中断是可以继续的,直接发错误的任务脚本,是无法继续的。

是否可以做脚本提示输入,或者msgbox,就需要大家测试了。

测试脚本

访问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"

 

posted @ 2024-05-06 01:22  上官飞鸿  阅读(49)  评论(0编辑  收藏  举报