[MDT] 使用 Sysprep and Capture 任务序列创建系统映像
继之前两篇日志《解决 A connection to the deployment share could not be made. The deployment will not proceed.》和《解决 Capture 时出现的 Unable to validation connection because a blank UNC was specified. 错误》,我们对 MDT 的 Sysprep and Capture 任务序列已经有了非常深入的了解和认识,但是 gOxiA 在测试一台位于工作组级别的计算机执行 Sysprep and Capture 任务序列时仍旧提示 the deployment will not proceed 错误,几经波折发现在访问和执行 MDT 共享目录下的脚本时是需要技巧的。测试成功之后不敢独享,特撰文出来与大家探讨!
按照常规的操作我们通常会打开网络邻居键入 MDT 的共享路径,而该共享路径默认配置为 ShareName$,当工作组级别的计算机在访问时又需要进行身份验证,故几次测试 Sysprep and Capture 任务序列都失败告终(PS:当计算机加入到 AD 后无此问题,很纳闷!),最后发现当把 MDT 的 ShareName$ 映射到本地 Z: 后故障消失!看来 MDT 脚本存在一定的问题,不管怎样问题得到了解决,要正确执行 Sysprep and Capture 任务序列,则强烈建议通过命令行执行脚本,大致步骤如下:
之后提示键入验证用户的密码,随后执行:
之后在 cmd 环境会出现脚本执行的详细细节,之后直接探出任务序列选择列表,这点与之前的执行过程略有不同,无需再次验证身份。在任务序列选择列表中,选择执行 Sysprep and Capture,跟随向导确定完成,最后就出现于下图所示的任务执行截图。
虽然问题都已经得到了解决,但是 gOxiA 总感觉之前的 《解决 A connection to the deployment share could not be made. The deployment will not proceed.》 失去了意义,迫于精力有限无法继续证实,还望有条件的朋友能继续测试给于不同的见解和意见!
[MDT]解决 Capture 时出现的 Unable to validation connection because a blank UNC was specified. 错误
在 MDT2010 中微软设计添加了一个新的任务序列,即:Sysprep and Capture。利用该任务序列,管理员可以轻松地对已经安装好的系统执行系统准备和捕获,以便于以后做批量部署之用。
Sysprep and Capture 任务序列将从 MDT2010 服务器复制一份包含 Capture 功能的 Windows PE,并在当前系统上创建一个一次性引导信息,使当前系统在自动执行了 Sysprep 后,启动计算机时能自动引导进入 Windows PE 中执行 Capture。MDT2010 默认配置下,我们执行该任务序列时会指定 Capture WIM 的存储路径,但是如果之前在 Rules 中添加过自动化参数 SkipCapture=Yes,那么我们将遇到下面图中的错误警告信息,即:“WARNING – Unable to validation connection because a blank UNC was specified.”导致任务序列执行失败。
要解决这个问题,我们可以将 Rules 中配置的 SkipCapture=YES 删除,之后在执行任务序列时手工输入 Capture WIM 的存储路径。或者继续完善自动化任务所需的参数数据,使之能够自动执行 Capture WIM 任务序列。为了减少管理员干预次数,我们将预先配置 Capture WIM 时所需的参数数据,此例主要包含3个参数:ComputerBackupLocation、BackupShare 和 BackupDir。
其中 ComputerBackupLocation 即备份位置,可以是 Network - 网络、Specific Path - 特定路径、Auto - 自动 以及 NONE。这里我们选择使用 Network,将 WIM 存储在网络中。
之后我们要指定这个网络共享路径,即:BackupShare,如:“\\MDTSRV\DeployShare$\Captures”。
由于 Sysprep and Capture 任务序列会被复用,为了避免与其他已经 Capture 机器的 WIM 冲突,我们可以使用 BackupDir 参数,并赋予其一个 MDT 变量值 - %OSDComputerName%,这样就会在 \\MDTSRV\DeployShare$\Captures 目录下创建一个以计算机名为名称的目录。
当了解了各个参数的作用后,我们就可以将这些参数写入到 Rules 中,格式如下:
如果当前已经为 MDT2010 配置了数据库,那么我们可以在 Database – Locations 中创建一个位置,并为其 Details 选项卡中的 User Data 部分配置这些参数数据,如下图所示!
之后再行测试,“WARNING – Unable to validation connection because a blank UNC was specified.”故障问题消失!至此,我们也对 Sysprep and Capture 有了比较深入的了解和认识。
[Hyper-V] 增加 VMBus 缓冲区大小来提升虚拟机网络吞吐量
增加 VMBus 缓冲区大小来提升虚拟机网络吞吐量
今天在 Windows Server Performance Team Blog 看到一篇非常有价值的文章《Increase VMBus buffer sizes to increase network throughput to guest VMs》,主要介绍了如何通过增加 VMBus 的缓冲区来提升虚拟机网络的吞吐量。由于原文的介绍已经相当详细,小弟我也就不班门弄斧!简单来讲,Hyper-V 提供的 VMBus 架构是非常优越的,由于虚拟网络的数据交换是通过 VMBus 到物理网卡的,所以 Virtual Switch 能够提供充足的缓冲,我们可以利用该特性有效的改善传统网络中出现的因吞吐量导致的数据包丢失问题。在 Windows Server 2008 R2 上默认的缓冲区大小为 1mb,它能提供 655 个数据包缓冲(每个缓冲区 1600 个字节)。根据原文的建议可以将其缓冲增加到 2mb(最大有效值是 4mb),能够满足大多数的情况。除非你有足够大的内存,否则不建议设置到 4mb。
要增加 VMBus 缓冲区的大小只需要修改虚拟机的网卡(Microsoft 虚拟机总线网络适配器)注册表相关项增加两个 DWORD 值即可。执行此操作前我们需要先确认虚拟机网卡的“驱动程序关键字”便于在注册表中定位,为此在虚拟机中打开硬件管理找到网卡适配器进入其属性下的详细信息选项卡页面,在属性列表中选取“驱动程序关键字”,将该值记录下来。
接下来打开注册表编辑器,根据之前记录下来的值定位到类似下面的注册表位置上,并添加名为:ReceiveBufferSize 和 SendBufferSize 的 DWORD 键,设置其值为:800
最后重新启动虚拟机即可。由于本人英语水平有限,无法完全正确地翻译原文介绍,以及表达我个人的理解意思,文中有错误的解释欢迎大家指正。