MDT U盘自动部署报错解决办法

本文发布时间: 2019-Mar-22
前些天试了一下使用MDT制作自动部署的U盘,用着还是很方便的,制作方法已经在之前的博客中介绍过了MDT制作自动部署U盘,之后在测试过程中发现遇到了一些问题,网络部署的环境是没有问题的,但是U盘部署的方式,在选择完只格式化C盘的任务序列之后总是会报错,报错提示unable to determine destination disk,Partition,and/or Drive,报错截图如下:明明之前制作的U盘是没有问题的,为什么这个就会报错呢?试了几台机器发现都不行。没办法只好来找一下问题的原因了,既然有明确的报错信息了,MDT之所以能实现自动化部署的关键其实就是MDT中有很多的脚本来完成各种不同的任务,既然有报错,那么能抛出这个错误的代码肯定就在这些脚本中,顺着这个思路往下走,在Script这个文件中首先来搜索一下,先来一个直接搜索试试,结果发现没找到任何文件不过搜索其实也是有技巧的,这次我们在高级选项里把文件内容也勾选上,这样的话搜索时除了会搜索文件名还会去检查这个文件里的内容,这回发现找到了两个脚本里包含这个报错信息 最后排查发现在Ztiutility.vbs这个脚本中就有抛出这个报错的代码,代码内容如下: If IsEmpty(GetOSTargetDriveLetterEx) then oLogging.CreateEntry "DestinationDisk and Partition did not yield a target Partition.", logTypeInfo If bRequired then oLogging.ReportFailure "Unable to determine Destination Disk, Partition, and/or Drive. See BDD.LOG for more information.", 5456 End if 脚本截图如下: 也就是说GetOSTargetDriveLetterEx为空时就会抛出这个报错,那么这个GetOSTargetDriveLetterEx又是什么呢?看字面意思应该是操作系统目标的盘符,我猜想可能是要装在哪个盘,这个会不会跟任务序列有关系呢?毕竟任务序列里也会设置这些属性,我找到了U盘中Deploy文件夹下的Control文件夹,任务序列就藏在这个文件夹下,其实任务序列的本质也就是xml文件,之前设置的rules和bootstrap都在这个文件夹下,1和2也就是任务序列的ID,每个任务序列都会以他的ID为名建立一个文件夹里边就是两个xml的文件在ts.xml中我找到了一个叫做DestinationOSDriveLetter的变量,这个变量是空的把这个变量赋值为C之后再试了一次,果然不报之前的错了,这时我注意到DestinationOSDriveLetter下边还有一个叫做DestinationOSInstallType的变量,这个值为ByVariable,还有一个叫做DestinationOSVariable的变量值为OSDisk,因此我猜测现在的脚本可能是会判断卷标是不是OSDisk,如果是的话就会将系统安装在这个分区下。但是测试的机器C盘的卷标肯定不会是OSDisk,这个会不会是报错的原因呢?之后我找到之前没问题的任务序列对比了一下,发现两者在这里果然不一样,没问题的任务序列DestinationOSDriveLetter变量值为C,并且DestinationOSInstallType变量值为ByDriveLetter,以下是两者的对比图,其中左边的是有问题的,右边的是没问题的 这样就好办了,我尝试了下将有问题的任务序列中DestinationOSInstallType也改为了ByDriveLetter,这次再尝试了下果然不再报错了,看来是找到问题的根源了。这样的话在制作任务序列时肯定就会有这个选项了,在MDT中找了一下,果然被我发现了,这个选项是在Install Operating System中有一个Select the location where you want to apply this operating system,我们需要将原来的logical drive letter stored in a variable 值为OSDisk,改为了Specific logical drive letter值为C。改之前:改之后:改完任务序列之后,重新生成了一遍Media的镜像,这次再制作出来的U盘就没再出现问题了。


(以上内容不代表本站观点。)
---------------------------------


2019-Mar-25 01:01am
栏目列表