我们以前只使用 WDS 来部署映像。WDS 设置为请求批准新机器。我们使用“命名并批准”选项在添加机器时命名它们。如果它是预先存在的,它只会使用来自 AD 的现有计算机名称。然后在我们的 unattend.xml 文件中,我们有 Computername=%MACHINENAME%。这会获取我们在批准期间为其提供的名称并相应地设置计算机名称。
我们现在正在实施 MDT 来管理我们的映像和驱动程序。但经过测试,我们注意到它会分配随机的计算机名称。我进入部署任务序列的 Unattend.xml,并在 Specialize > amd64_Microsoft-Windows-Shell-Setup_neutral > Computername=%MACHINENAME% 下添加了该值。但当我们尝试应用映像时,安装时会出错。
如何配置 MDT 部署以利用预设的计算机名称?
一些附加信息:
成像过程中出现错误消息:
Windows 无法解析或处理 pass [specialize] 的无人参与应答文件。无法应用应答文件中指定的设置。处理组件 [Microsoft-Windows-Shell-Setup] 的设置时检测到错误。?
安装日志:
2014-07-22 14:02:13,错误 [setup.exe] [操作队列]:无人参与操作失败,退出代码为 4 2014-07-22 14:02:13,错误 [setup.exe] 无人参与 GC 执行失败;hr = 0x0;pResults->hrResult = 0x8030000b
答案1
要使用 MDT 命名计算机,您需要编辑自定义属性 ini(Customsettings.ini
位于控制文件夹中)。
计算机名称的属性为:
OSDComputerName=<PC NAME HERE>
您可以使用以下任意变量来自动填写计算机的名称:
ARCHITECTURE=<detected architecture> (x86 or x64)
SERIALNUMBER=<detected computer serial number>
MAKE=<detected manufacture>
MODEL=<detected Model of computer>
PRODUCT=<I do not know what this relates to>
ASSETTAG=<if available on your system>
欲了解更多示例和想法,请访问:
http://scriptimus.wordpress.com/2011/04/19/mdt-2010-setting-the-default-computername/。
尽管说的是 MDT 2010,但上述变量在 2013 年也存在。
这是我的设置的一个示例:
OSDComputerName=Elliot-%SERIALNUMBER%
它将“elliot-”放在系统序列号前面,该序列号本质上是唯一的。
答案2
您可能需要考虑设置 MDT 数据库。我的设置方式如下。它会匹配设备的序列号或 UUID,然后从 DB 记录中分配指定的匹配计算机名称。
当我设置它时这很有帮助: https://technet.microsoft.com/en-us/library/dn759415.aspx#PerformingDeploymentsUsingtheMDTDB
向下滚动到“使用 MDT DB 执行部署”部分。
一开始填充数据库有点困难,但我能够编写一个 powershell 脚本来在每个设备上线时从 WMI 获取数据并将其转储到数据库中。
希望这可以帮助。