Microsoft部署工具包示例指南
本指南是 Microsoft 部署工具包 (MDT) 的一部分,指导专家团队部署 Windows 操作系统和 Microsoft Office。 具体而言,本指南旨在为特定部署方案提供示例配置设置。
注意
在本文中,除非另有说明,否则 Windows 适用于 Windows 8.1、Windows 8、Windows 7、Windows Server 2012 R2、Windows Server 2012 和 Windows Server 2008 R2 操作系统。 MDT 不支持基于 ARM 处理器的 Windows 版本。 同样,除非另有说明, 否则 MDT 是指 MDT 的当前版本。
使用本指南
查看目录中的方案主题列表。
选择最能代表组织的部署目标的场景。
查看所选方案的示例配置设置。
使用示例配置设置作为环境中配置设置的基础。
自定义环境的示例配置设置。
在许多情况下,可能需要多个方案才能完成环境的配置设置。
由于本指南仅包含示例配置设置,因此查看下表中列出的指南可以进一步帮助自定义环境的配置设置。
指导 本指南提供帮助 Microsoft System Center 2012 R2 Configuration Manager快速入门指南 使用 System Center 2012 R2 Configuration Manager在新计算机部署方案中安装 Windows 8.1 操作系统。 Lite Touch 安装快速入门指南 在新计算机部署方案中使用可启动媒体通过 Lite Touch 安装 (LTI) 安装 Windows 8.1 操作系统。 User-Driven安装快速入门指南 在新计算机部署方案中使用 User-Driven 安装和 System Center 2012 R2 Configuration Manager 安装 Windows 8.1 操作系统。 使用 Microsoft 部署工具包 进一步自定义零接触安装 (ZTI) 和 LTI 部署中使用的配置文件。 本指南还提供通用配置指南和配置设置的技术参考。
使用 MDT 部署Windows 8应用程序
MDT 可以部署Windows 8具有 .appx 文件扩展名的应用程序包。 这些应用程序包是新Windows 8。 有关这些应用程序的详细信息,请参阅 Windows 应用商店应用开发。
通过执行以下步骤,使用 MDT 部署Windows 8应用程序:
使用 LTI 部署Windows 8应用程序,如使用 LTI 部署Windows 8应用程序中所述。
使用 User-Driven 安装 (UDI) 部署Windows 8应用程序,如使用 UDI 部署Windows 8应用程序中所述。
使用 LTI 部署Windows 8应用程序
可以使用 LTI 部署Windows 8应用程序,就像从命令行启动安装过程的任何其他应用程序一样。 可以将Windows 8应用程序添加到部署工作台的“应用程序”节点中的 LTI 部署。
使用 LTI 部署Windows 8应用程序
创建用于存储应用程序的网络共享文件夹。
将 Windows 8 应用程序复制到在上一步中创建的网络共享文件夹中。
确保复制Windows 8应用程序 .appx 文件和任何其他必需文件,例如包含应用程序证书的 .cer 文件。
使用“新建应用程序向导”在 Deployment Workbench 的“应用程序”节点中为 Windows 8 应用程序创建 LTI 应用程序项。
完成“新建应用程序向导”时,在“命令详细信息”向导页上的“命令行”中,键入app_file_name (,其中app_file_name是Windows 8应用程序) 的名称。
有关如何在 Deployment Workbench 中完成“新建应用程序向导”的详细信息,请参阅 MDT 文档中的以下部分:使用 Microsoft Deployment Toolkit:
“创建从部署共享部署的新应用程序”
“创建从另一个网络共享文件夹部署的新应用程序”
在 LTI 任务序列中选择在上一步中创建的 LTI 应用程序项。
使用 UDI 部署Windows 8应用程序
可以使用 UDI 部署Windows 8应用程序,就像从命令行启动安装过程的任何其他应用程序一样。 可以在 UDI 向导设计器的 ApplicationPage 向导页上将Windows 8应用程序添加到 UDI 部署。
注意
使用 UDI 部署Windows 8和Windows 8应用程序需要 System Center 2012 R2 Configuration Manager。
使用 UDI 部署Windows 8应用程序
创建用于存储应用程序的网络共享文件夹。
此文件夹将是稍后将在此过程中创建的Configuration Manager应用程序的源文件夹。
将 Windows 8 应用程序复制到在上一步中创建的网络共享文件夹中。
确保复制Windows 8应用程序 .appx 文件和任何其他必需文件,例如包含应用程序证书的 .cer 文件。
将Windows 8应用程序添加为Configuration Manager应用程序
使用Configuration Manager控制台中的“创建应用程序向导”为Windows 8应用程序创建Configuration Manager应用程序项。
完成“创建应用程序向导”时,使用“创建部署类型向导”创建部署类型以部署Windows 8应用程序。 在“创建部署类型向导”的“内容”页上的“安装程序”中,键入app_file_name (,其中app_file_name是Windows 8应用程序) 的名称。
有关如何在 Configuration Manager 控制台中完成“创建应用程序向导”的详细信息,请参阅 System Center 2012 Configuration Manager 文档库(包含在 Configuration Manager 中)中的以下部分:
确保正确配置了 Configuration Manager 中的用户设备相关性 (UDA) 功能,以支持用户和设备之间的相关性,以便Configuration Manager应用程序部署。
有关如何配置 UDA 以支持Configuration Manager应用程序部署的详细信息,请参阅如何在 Configuration Manager 中管理用户设备相关性。
将步骤 4 中创建的应用程序部署到目标用户。
有关如何将应用程序部署到用户的详细信息,请参阅如何在 Configuration Manager 中部署应用程序。
使用 UDI 向导设计器将 ApplicationPage 向导页配置为包含步骤 4 中创建的Configuration Manager应用程序。
有关如何使用 UDI 向导设计器配置 ApplicationPage 向导页的详细信息,请参阅 MDT 文档 User-Driven 安装快速入门指南中的“步骤 5-11:自定义目标计算机的 UDI 向导配置文件”部分。
在 UDI 任务序列中选择在上一步中创建的 UDI 应用程序项。
注意
Windows 8应用程序不是由任务序列安装的,而是会在用户首次登录到目标计算机时安装, (由步骤 5) 使用 UDI 中的 User-Centric 应用安装程序功能 (AppInstall.exe) 配置的 UDA 设置所定义。
有关 UDI 中User-Centric应用安装程序功能的详细信息,请参阅 MDT 文档工具包参考中的“以用户为中心的应用安装程序 参考”部分。
使用 Windows PowerShell 管理 MDT
可以使用 Deployment Workbench 和 Windows PowerShell管理 MDT 部署共享。 MDT 包括Windows PowerShell ™管理单元 - Microsoft。Bdd。SnapIn - 在使用 Windows PowerShell 中特定于 MDT 的功能之前必须加载。 MDT Windows PowerShell管理单元包括:
提供对部署共享内容的访问的Windows PowerShell提供程序(MDTProvider)
提供管理 MDT 部署共享能力的 Cmdlet
通过执行以下步骤,使用 Windows PowerShell 管理 MDT 部署共享:
如加载 MDT Windows PowerShell管理单元中所述加载 MDT Windows PowerShell管理单元。
使用 Windows PowerShell 创建部署共享,如使用 Windows PowerShell 创建部署共享中所述。
使用 Windows PowerShell 查看部署共享属性,如使用 Windows PowerShell 查看部署共享属性中所述。
按照使用 Windows PowerShell查看部署共享列表中所述,使用 Windows PowerShell 查看部署共享列表。
更新部署共享, (Windows PE) 启动映像生成新的 Windows 预安装环境,如使用Windows PowerShell更新部署共享中所述。
更新链接部署共享,该共享将内容从部署共享复制到链接部署共享,如使用 Windows PowerShell更新链接部署共享中所述。
更新部署媒体,它将内容从部署共享复制到部署媒体,然后生成新的可启动映像,如使用Windows PowerShell更新部署媒体中所述。
如使用Windows PowerShell管理部署共享中的项中所述,) 管理部署共享中的项 (,例如操作系统、操作系统包、应用程序和设备驱动程序。
自动填充部署共享中的项 (例如操作系统、操作系统包、应用程序和设备驱动程序) 如 自动填充部署共享中所述。
使用 Windows PowerShell 管理部署共享中的文件夹,如使用 Windows PowerShell 管理部署共享文件夹中所述。
加载 MDT Windows PowerShell Snap-In
MDT cmdlet 在Windows PowerShell管理单元Microsoft中提供。Bdd。在使用 MDT cmdlet 之前必须加载的 SnapIn。 使用 Add-PSSnapIn cmdlet 加载 MDT Windows PowerShell Snap-In使用 Add-PSSnapIn Cmdlet 中所述,使用 Add-PSSnapIn cmdlet 加载 MDT Windows PowerShell管理单元。
使用 Add-PSSnapIn Cmdlet 加载 MDT Windows PowerShell Snap-In
可以加载 MDT Windows PowerShell管理单元Microsoft。Bdd。使用 Add-PSSnapIn cmdlet 从任何Windows PowerShell环境中的 PSSnapIn,如以下示例所示:
Add-PSSnapin -Name Microsoft.BDD.PSSnapIn
使用 Windows PowerShell 创建部署共享
可以使用 MDT Windows PowerShell cmdlet 创建部署共享。 部署共享的根文件夹是使用标准Windows PowerShell cmdlet 创建和共享的,并且调用 Windows Management Instrumentation (WMI) 类命令。 部署共享是使用 MDTProvider Windows PowerShell 提供程序和 NewPSDrive cmdlet 填充的。 MDTProvider Windows PowerShell 驱动器使用 Add-MDTPersistentDrive cmdlet 持久保存。
使用 MDT Windows PowerShell cmdlet 准备部署共享
如加载 MDT Windows PowerShell管理单元中所述加载 MDT Windows PowerShell管理单元。
使用 New-Item cmdlet 创建将成为新部署共享根目录的文件夹,如以下示例中所示,并在 使用 New-Item Cmdlet 中所述:
New-Item "C:\MDTDeploymentShare$" -Type directory
cmdlet 显示文件夹的成功创建。
使用 WMI win32_share 类共享在上一步中创建的文件夹,如以下示例中所示:
([wmiclass]"win32_share").Create("C:\MDTDeploymentShare$", "MDTDeploymentShare$",0)
对 win32_share 类的调用将返回调用的结果。 如果 ReturnValue 的值为零 (0) ,则调用成功。
使用 NewPSDrive cmdlet 将新的共享文件夹指定为部署共享,如以下示例所示:
New-PSDrive -Name "DS002" -PSProvider "MDTProvider" -Root "C:\MDTDeploymentShare$" -Description "MDT Deployment Share Created with Cmdlets" -NetworkPath "\\WDG-MDT-01\MDTDeploymentShare$" -Verbose
cmdlet 会自动开始创建部署共享,并将模板信息复制到新的部署共享中。 复制过程完成后,cmdlet 会显示新部署共享的信息。
注意
Name 参数 (DS002) 中提供的值必须是唯一的,并且不能与驱动器Windows PowerShell的现有部署共享相同。
验证是否已使用 dir 命令创建了适当的部署共享文件夹,如以下示例所示:
Get-ChildItem ds002:
将显示部署共享根目录中的默认文件夹列表。
使用 Add-MDTPersistentDrive cmdlet 将新的部署共享添加到持久化 MDT 部署共享列表,如以下示例所示:
$NewDS=Get-PSDrive "DS002" Add-MDTPersistentDrive -Name "DS002" -InputObject $NewDS Verbose
在此示例中,$NewDS 变量用于将新部署共享的 Windows PowerShell 驱动器对象传递给 cmdlet。
或者,可以组合 NewPSDrive 和 Add-MDTPersistentDrive cmdlet,如以下示例所示:
New-PSDrive -Name "DS002" -PSProvider "MDTProvider" -Root "C:\MDTDeploymentShare$" -Description "MDT Deployment Share Created with Cmdlets" -NetworkPath "\\WDG-MDT-01\MDTDeploymentShare$" -Verbose | Add-MDTPersistentDrive -Verbose
在前面的示例中,Windows PowerShell管道提供 Name 和 InputObject 参数。
使用 Windows PowerShell 查看部署共享属性
可以使用 Get-ItemProperty cmdlet 和 MDTProvider Windows PowerShell 提供程序查看 MDT 部署共享的属性。 部署工作台中也可以看到这些相同的属性。
使用 MDT Windows PowerShell cmdlet 查看部署共享属性
如加载 MDT Windows PowerShell管理单元中所述加载 MDT Windows PowerShell管理单元。
确保使用 Restore-MDTPersistentDrive cmdlet 还原 MDT 部署共享Windows PowerShell驱动器,如以下示例所示:
Restore-MDTPersistentDrive -Verbose
注意
如果共享Windows PowerShell驱动器的 MDT 部署已还原,则会收到一条警告消息,指示 cmdlet 无法还原驱动器。
使用 Get-PSDrive cmdlet 验证共享Windows PowerShell驱动器的 MDT 部署是否已正确还原,如下所示:
Get-PSDrive -PSProvider Microsoft.BDD.PSSnapIn\MDTProvider
列出了使用 MDTProvider 提供的Windows PowerShell驱动器的列表。
使用 Get-ItemProperty cmdlet 查看部署共享的属性,如以下示例所示:
Get-ItemProperty "DS002:"
在此示例中,DS002: 是步骤 3 中返回的Windows PowerShell驱动器的名称。 cmdlet 返回部署共享的属性。
使用 Windows PowerShell 查看部署共享列表
可以使用 Get-PSDrive cmdlet 和 MDTProvider Windows PowerShell 提供程序查看 MDT 部署共享的列表。 也可以在部署工作台中查看相同的部署共享列表。
使用 MDT Windows PowerShell cmdlet 查看部署共享列表
如加载 MDT Windows PowerShell管理单元中所述加载 MDT Windows PowerShell管理单元。
确保使用 Restore-MDTPersistentDrive cmdlet 还原 MDT 部署共享Windows PowerShell驱动器,如以下示例所示:
Restore-MDTPersistentDrive -Verbose
注意
如果共享Windows PowerShell驱动器的 MDT 部署已还原,则会收到一条警告消息,指示 cmdlet 无法还原驱动器。
使用 Get-PSDrive cmdlet 查看共享Windows PowerShell驱动器(每个部署共享一个)的 MDT 部署列表,如下所示:
Get-PSDrive -PSProvider Microsoft.BDD.PSSnapIn\MDTProvider
其中列出了使用 MDTProvider 提供的Windows PowerShell驱动器列表,每个部署共享对应一个驱动器。
使用 Windows PowerShell 更新部署共享
可以使用 Update-MDTDeploymentShare cmdlet 和 MDTProvider Windows PowerShell 提供程序更新部署共享。 更新部署共享会创建 Windows PE 启动映像 (WIM 和国际标准化组织 [ISO] 文件,) 开始 LTI 部署。 可以使用 Deployment Workbench 执行相同的过程,如“更新 Deployment Workbench 中的部署共享”中所述。
使用 Windows PowerShell 更新部署共享
如加载 MDT Windows PowerShell管理单元中所述加载 MDT Windows PowerShell管理单元。
确保使用 Restore-MDTPersistentDrive cmdlet 还原共享Windows PowerShell驱动器的 MDT 部署,如以下示例所示:
Restore-MDTPersistentDrive -Verbose
注意
如果共享Windows PowerShell驱动器的 MDT 部署已还原,则会收到一条警告消息,指示 cmdlet 无法还原驱动器。
使用 Get-PSDrive cmdlet 验证共享Windows PowerShell驱动器的 MDT 部署是否已正确还原,如下所示:
Get-PSDrive -PSProvider Microsoft.BDD.PSSnapIn\MDTProvider
列出了使用 MDTProvider 提供的Windows PowerShell驱动器的列表。
使用 Update-MDTDeploymentShare cmdlet 更新部署共享,如以下示例所示:
Update-MDTDeploymentShare -Path "DS002:" -Force
在此示例中,DS002: 是步骤 3 中返回的Windows PowerShell驱动器的名称。
注意
更新部署共享可能需要很长时间。 cmdlet 的进度显示在Windows PowerShell控制台顶部。
如果更新成功,cmdlet 将返回无输出。
使用 Windows PowerShell 更新链接部署共享
可以使用 Update-MDTLinkedDS cmdlet 和 MDTProvider Windows PowerShell 提供程序更新 (复制) 链接部署共享。 更新链接的部署共享会将内容从原始部署共享复制到链接的部署共享。 可以使用 Deployment Workbench 执行相同的过程,如“复制 Deployment Workbench 中的链接部署共享”中所述。
使用 Windows PowerShell 更新链接的部署共享
如加载 MDT Windows PowerShell管理单元中所述加载 MDT Windows PowerShell管理单元。
确保使用 Restore-MDTPersistentDrive cmdlet 还原共享Windows PowerShell驱动器的 MDT 部署,如以下示例所示:
Restore-MDTPersistentDrive -Verbose
注意
如果共享Windows PowerShell驱动器的 MDT 部署已还原,则会收到一条警告消息,指示 cmdlet 无法还原驱动器。
使用 Get-PSDrive cmdlet 验证共享Windows PowerShell驱动器的 MDT 部署是否已正确还原,如下所示:
Get-PSDrive -PSProvider Microsoft.BDD.PSSnapIn\MDTProvider
列出了使用 MDTProvider 提供的Windows PowerShell驱动器的列表。
使用 Update-MDTDeploymentShare cmdlet 更新部署共享,如以下示例所示:
Update-MDTLinkedDS -Path "DS002:\Linked Deployment Shares\LINKED002"
在此示例中,DS002: 是步骤 3 中返回的Windows PowerShell驱动器的名称。
注意
更新链接的部署共享可能需要很长时间。 cmdlet 的进度显示在Windows PowerShell控制台顶部。
如果更新成功,cmdlet 将返回无输出。
使用 Windows PowerShell 更新部署媒体
可以使用 Update-MDTMedia cmdlet 和 MDTProvider Windows PowerShell 提供程序更新 (生成) 部署媒体。 更新部署媒体会将内容从原始部署共享复制到链接的部署共享,然后生成 .iso 和 .wim 文件。 可以使用 Deployment Workbench 执行相同的过程,如“在 Deployment Workbench 中生成媒体映像”中所述。
Update-MDTMedia cmdlet 完成后,将创建以下文件:
media_folder 文件夹中的 .iso 文件 (其中media_folder是为媒体指定的文件夹的名称)
生成 .iso 文件是一个选项,可通过以下方式进行配置:
选中“媒体属性”对话框的“常规”选项卡上的“生成 Lite Touch 可启动 ISO 映像”复选框 (清除此复选框,以减少生成媒体所需的时间,除非需要从 .iso 文件创建可启动 DVD 或启动虚拟机 [VM]。)
使用 Set-ItemProperty cmdlet 设置同一属性
media_folder\Content\Deploy\Boot 文件夹中的 WIM 文件 (其中media_folder是你为媒体指定的文件夹的名称)
使用 Windows PowerShell 更新链接的部署共享
如加载 MDT Windows PowerShell管理单元中所述加载 MDT Windows PowerShell管理单元。
确保使用 Restore-MDTPersistentDrive cmdlet 还原 MDT 部署共享Windows PowerShell驱动器,如以下示例所示:
Restore-MDTPersistentDrive -Verbose
注意
如果共享Windows PowerShell驱动器的 MDT 部署已还原,则会收到一条警告消息,指示 cmdlet 无法还原驱动器。
使用 Get-PSDrive cmdlet 验证共享Windows PowerShell驱动器的 MDT 部署是否已正确还原,如下所示:
Get-PSDrive -PSProvider Microsoft.BDD.PSSnapIn\MDTProvider
列出了使用 MDTProvider 提供的Windows PowerShell驱动器的列表。
使用 Update-MDTDeploymentShare cmdlet 更新部署共享,如以下示例所示:
Update-MDTLinkedDS -Path "DS002:\Linked Deployment Shares\LINKED002"
在此示例中,DS002: 是步骤 3 中返回的Windows PowerShell驱动器的名称。
注意
更新链接的部署共享可能需要很长时间。 cmdlet 的进度显示在Windows PowerShell控制台顶部。
如果更新成功,cmdlet 将返回无输出。
使用 Windows PowerShell 管理部署共享中的项
部署共享包含用于执行部署的项,例如操作系统、应用程序、设备驱动程序、操作系统包和任务序列。 这些项可以使用 Windows PowerShell 中的 cmdlet 以及 MDT 提供的 cmdlet 进行管理。
有关使用 Windows PowerShell cmdlet 直接操作项的详细信息,请参阅直接操作项。 还可以使用 Windows PowerShell 管理部署共享的文件夹结构。 有关详细信息,请参阅使用 Windows PowerShell 管理部署共享文件夹。
将项导入部署共享
可以使用 MDT cmdlet 导入每种类型的项,例如操作系统、应用程序或设备驱动程序。 对于每种类型的项,都有一个特定的 MDT cmdlet。 如果要使用 Windows PowerShell 将多个项导入到部署共享中,请参阅自动填充部署共享。
下表列出了用于将项导入部署共享的 MDT Windows PowerShell cmdlet,并提供了每个 cmdlet 的简要说明。 与每个 cmdlet 对应的部分提供了如何使用每个 cmdlet 的示例。
Cmdlet | 说明 |
---|---|
Import-MDTApplication | 将应用程序导入部署共享 |
Import-MDTDriver | 将一个或多个设备驱动程序导入部署共享 |
Import-MDTOperatingSystem | 将一个或多个操作系统导入部署共享 |
Import-MDTPackage | 将一个或多个操作系统包导入部署共享 |
Import-MDTTaskSequence | 将任务序列导入部署共享 |
查看部署共享中项的属性
部署共享中的每个项都有不同的属性集。 可以使用 Get-ItemProperty cmdlet 查看部署共享中项的属性。 Get-ItemProperty cmdlet 使用 MDTProvider 显示特定项的属性,就像可以在 Deployment Workbench 中看到属性一样。
如果想要使用 Windows PowerShell 查看部署共享中多个项的属性,请参阅自动填充部署共享。
使用 Windows PowerShell 查看部署共享中项的属性
如加载 MDT Windows PowerShell管理单元中所述加载 MDT Windows PowerShell管理单元。
确保使用 Restore-MDTPersistentDrive cmdlet 还原共享Windows PowerShell驱动器的 MDT 部署,如以下示例所示:
Restore-MDTPersistentDrive -Verbose
注意
如果共享Windows PowerShell驱动器的 MDT 部署已还原,则会收到一条警告消息,指示 cmdlet 无法还原驱动器。
验证是否使用 Get-PSDrive cmdlet 正确还原共享Windows PowerShell驱动器的 MDT 部署,如以下示例所示:
Get-PSDrive -PSProvider Microsoft.BDD.PSSnapIn\MDTProvider
列出了使用 MDTProvider 提供的Windows PowerShell驱动器的列表。
使用 Get-Item cmdlet 返回要查看其属性的项类型的项列表,如以下示例所示:
Get-Item "DS001:\Operating Systems\*" | Format-List
在前面的示例中,将显示部署共享中所有操作系统的列表。 输出通过管道传输到 Format-List cmdlet,以便可以看到操作系统的长名称。 有关如何使用 Format-List cmdlet 的详细信息,请参阅 使用 Format-List Cmdlet。 同一过程可用于返回其他类型的项的列表,例如设备驱动程序或应用程序。
提示
还可以使用 dir 命令查看操作系统列表,而不是 Get-Item cmdlet。
使用 Get-ItemProperty cmdlet 查看上一步中列出的某个项的属性,如以下示例所示:
Get-ItemProperty -Path "DS002:\Operating Systems\Windows 8 in Windows 8 x64 install.wim"
在此示例中,Path 参数的值是项的完全限定Windows PowerShell路径,包括上一步中返回的文件名。 可以使用同一过程来查看其他类型的项的属性,例如设备驱动程序或应用程序。
从部署共享中删除项
可以使用 Remove-Item cmdlet 从部署共享中删除项。 Remove-Item cmdlet 使用 MDTProvider 删除特定项,就像删除 Deployment Workbench 中的项一样。 如果要使用Windows PowerShell删除部署共享中的多个项,请参阅自动填充部署共享。
注意
删除任务序列使用的项会导致任务序列失败。 在删除该项之前,请确保部署共享中的其他项未引用某个项。 删除项目后,无法恢复该项目。
使用 Windows PowerShell 从部署共享中删除项
如加载 MDT Windows PowerShell管理单元中所述加载 MDT Windows PowerShell管理单元。
确保使用 Restore-MDTPersistentDrive cmdlet 还原共享Windows PowerShell驱动器的 MDT 部署,如以下示例所示。
Restore-MDTPersistentDrive -Verbose
注意
如果共享Windows PowerShell驱动器的 MDT 部署已还原,则会收到一条警告消息,指示 cmdlet 无法还原驱动器。
验证是否使用 Get-PSDrive cmdlet 正确还原共享Windows PowerShell驱动器的 MDT 部署,如以下示例所示:
Get-PSDrive -PSProvider Microsoft.BDD.PSSnapIn\MDTProvider
列出了使用 MDTProvider 提供的Windows PowerShell驱动器的列表。
使用 Get-Item cmdlet 返回要查看其属性的项类型的项列表,如以下示例所示:
Get-Item "DS001:\Operating Systems\*" | Format-List
在前面的示例中,将显示部署共享中所有操作系统的列表。 输出通过管道传输到 Format-List cmdlet,以便可以看到操作系统的长名称。 有关如何使用 Format-List cmdlet 的详细信息,请参阅 使用 Format-List Cmdlet。 可以使用同一过程返回其他类型的项的列表,例如设备驱动程序或应用程序。
提示
还可以使用 dir 命令查看操作系统列表,而不是 Get-Item cmdlet。
使用 Remove-Item cmdlet 删除上一步中列出的项之一,如以下示例所示:
Remove-Item -Path "DS002:\Operating Systems\Windows 8 in Windows 8 x64 install.wim"
在此示例中,Path 参数的值是项的完全限定Windows PowerShell路径,包括上一步中返回的文件名。
可以使用同一过程删除其他类型的项,例如设备驱动程序或应用程序。
注意
删除任务序列使用的项会导致任务序列失败。 在删除该项之前,请确保部署共享中的其他项未引用某个项。
自动填充部署共享
MDT Windows PowerShell cmdlet 允许管理单个项。 但是,通过使用 Windows PowerShell 中的一些脚本功能,可以使用 cmdlet 自动填充部署共享。
例如,组织可能需要为不同的业务部门部署多个部署共享,或者组织可能为其他组织提供操作系统部署服务。 在这两个示例中,组织都需要能够创建和填充一致配置的部署共享。
管理多个项目的一种方法是使用逗号分隔值 (CSV) 文件,其中包含要使用 Import-CSV cmdlet 在部署共享中管理的所有项的列表。
下面是使用 Import-CSV、ForEach-Object 和 Import-MDTApplication cmdlet 根据.csv文件中的信息导入应用程序列表的Windows PowerShell脚本的摘录:
$List=Import-CSV "C:\MDT\Import-MDT-Apps.csv"
ForEach-Object ($App in $List) {
Import-MDTApplication –path $App.ApplicationFolder -enable "True" –Name $App.DescriptiveName –ShortName $App.Shortname –Version $App.Version –Publisher $App.Publisher –Language $App.Language –CommandLine $App.CommandLine –WorkingDirectory $App.WorkingDirectory –ApplicationSourcePath $App.SourceFolder –DestinationFolder $App.DestinationFolder –Verbose
}
在此示例中,C:\MDT\Import-MDT-Apps.csv 文件包含导入应用程序所需的每个变量的字段。 有关如何创建用于 Import-CSV cmdlet 的 .csv 文件的详细信息,请参阅 使用 Import-Csv Cmdlet。
可以通过执行以下步骤,使用此相同方法在部署共享中导入操作系统、设备驱动程序和其他项:
为要填充的每种类型的部署共享项创建.csv文件。
有关如何创建用于 Import-CSV cmdlet 的 .csv 文件的详细信息,请参阅 使用 Import-Csv Cmdlet。
创建用于自动填充部署共享的Windows PowerShell脚本文件。
有关如何创建Windows PowerShell脚本的详细信息,请参阅使用 Windows PowerShell 编写脚本。
在导入部署共享项之前,在部署共享中创建所需的任何必备文件夹结构。
有关详细信息,请参阅使用 Windows PowerShell 管理部署共享文件夹。
为步骤 1 中创建的某个.csv文件添加 Import-CSV cmdlet 行。
有关 Import-CSV cmdlet 的详细信息,请参阅 使用 Import-Csv Cmdlet。
创建 ForEach-Object cmdlet 循环,该循环处理上一步 Import-CSV cmdlet 中引用的 .csv 文件中的每个项。
有关 ForEach-Object cmdlet 的详细信息,请参阅 使用 ForEach-Object Cmdlet。
在上一步创建的 ForEach-Object cmdlet 循环内添加相应的 MDT cmdlet 用于导入部署共享项。
有关用于将项导入部署共享的 MDT cmdlet 的详细信息,请参阅 将项导入部署共享。
使用 Windows PowerShell 管理部署共享文件夹
可以使用命令行工具(如 mkdir 命令)或 Windows PowerShell cmdlet(例如 New-Item cmdlet 和 MDTProvider Windows PowerShell 提供程序)管理部署共享中的文件夹。 部署工作台中也可以看到和管理部署共享的相同文件夹结构。 有关使用 Windows PowerShell cmdlet 直接操作项的详细信息,请参阅直接操作项。
使用 Windows PowerShell 在部署共享中创建文件夹
使用 Windows PowerShell 在部署共享中创建文件夹
如加载 MDT Windows PowerShell管理单元中所述加载 MDT Windows PowerShell管理单元。
确保使用 Restore-MDTPersistentDrive cmdlet 还原共享Windows PowerShell驱动器的 MDT 部署,如以下示例所示:
Restore-MDTPersistentDrive -Verbose
注意
如果共享Windows PowerShell驱动器的 MDT 部署已还原,则会收到一条警告消息,指示 cmdlet 无法还原驱动器。
使用 Get-PSDrive cmdlet 查看共享Windows PowerShell驱动器(每个部署共享一个)的 MDT 部署列表,如下所示:
Get-PSDrive -PSProvider Microsoft.BDD.PSSnapIn\MDTProvider
列出了使用 MDTProvider 提供的Windows PowerShell驱动器列表,每个部署共享各有一个
使用 New-Item 命令在部署共享的“操作系统”文件夹中创建名为 Windows_8 的文件夹,如以下示例所示:
New-Item "DS002:\Operating Systems\Windows_8"
在此示例中,DS002: 是步骤 3 中返回的Windows PowerShell驱动器的名称。
通过键入以下命令验证是否已正确创建文件夹:
Get-ChildItem "DS002:\Operating Systems"
将显示“操作系统”文件夹中Windows_8文件夹和任何其他现有文件夹。
使用 New-Item cmdlet 在部署共享的“操作系统”文件夹中创建名为 Windows_7 文件夹的文件夹,如以下示例中所示,并在使用 New-Item Cmdlet 中所述:
New-Item "DS002:\Operating Systems\Windows_7" -Type directory
cmdlet 显示文件夹的成功创建。
通过键入以下命令验证是否已正确创建文件夹:
Get-ChildItem "DS002:\Operating Systems"
将显示“操作系统”文件夹中Windows_7文件夹和任何其他现有文件夹。
使用 Windows PowerShell 删除部署共享中的文件夹
使用 Windows PowerShell 删除部署共享中的文件夹
如加载 MDT Windows PowerShell管理单元中所述加载 MDT Windows PowerShell管理单元。
确保使用 Restore-MDTPersistentDrive cmdlet 还原共享Windows PowerShell驱动器的 MDT 部署,如以下示例所示:
Restore-MDTPersistentDrive -Verbose
注意
如果共享Windows PowerShell驱动器的 MDT 部署已还原,则会收到一条警告消息,指示 cmdlet 无法还原驱动器。
使用 Get-PSDrive cmdlet 查看共享Windows PowerShell驱动器(每个部署共享一个)的 MDT 部署列表,如下所示:
Get-PSDrive -PSProvider Microsoft.BDD.PSSnapIn\MDTProvider
其中列出了使用 MDTProvider 提供的Windows PowerShell驱动器列表,每个部署共享对应一个驱动器。
使用 New-Item 命令在部署共享的“操作系统”文件夹中删除 (删除) 名为 Windows_8 的文件夹,如以下示例所示:
Remove-Item "DS002:\Operating Systems\Windows_8"
在此示例中,DS002: 是步骤 3 中返回的Windows PowerShell驱动器的名称。
键入以下命令,验证文件夹是否已正确删除:
Get-ChildItem "DS002:\Operating Systems"
Windows_8文件夹不再显示在“操作系统”文件夹的文件夹列表中
使用 Remove-Item cmdlet 在部署共享的“操作系统”文件夹中删除 (删除) 名为 Windows_7 文件夹的文件夹,如以下示例所示:
Remove-Item "DS002:\Operating Systems\Windows_7"
cmdlet 显示文件夹的成功删除。
通过键入以下命令验证是否已正确创建文件夹:
Get-ChildItem "DS002:\Operating Systems"
Windows_7文件夹不再显示在“操作系统”文件夹的文件夹列表中。
使用 Windows PowerShell 重命名部署共享中的文件夹
使用 Windows PowerShell重命名部署共享中的文件夹
如加载 MDT Windows PowerShell管理单元中所述加载 MDT Windows PowerShell管理单元。
确保使用 Restore-MDTPersistentDrive cmdlet 还原 MDT 部署共享Windows PowerShell驱动器,如以下示例所示:
Restore-MDTPersistentDrive -Verbose
注意
如果共享Windows PowerShell驱动器的 MDT 部署已还原,则会收到一条警告消息,指示 cmdlet 无法还原驱动器。
使用 Get-PSDrive cmdlet 查看 MDT 部署共享Windows PowerShell驱动器的列表,每个部署共享一个,如下所示:
Get-PSDrive -PSProvider Microsoft.BDD.PSSnapIn\MDTProvider
其中列出了使用 MDTProvider 提供的Windows PowerShell驱动器列表,每个部署共享对应一个驱动器。
使用 ren 命令将名为 Windows_8 的文件夹重命名为部署共享的“操作系统”文件夹中Win_8,如以下示例所示:
ren "DS002:\Operating Systems\Windows_8" "Win_8"
在此示例中,DS002: 是步骤 3 中返回的Windows PowerShell驱动器的名称。
键入以下命令,验证文件夹是否已正确删除:
Get-ChildItem "DS002:\Operating Systems"
Windows_8文件夹已重命名为 Win_8。
使用 Rename-Item cmdlet 将部署共享的操作系统文件夹中名为 Windows_7 的文件夹重命名为 Win-7,如以下示例所示:
Rename-Item "DS002:\Operating Systems\Windows_7" "Win_7"
cmdlet 显示文件夹的成功重命名。
通过键入以下命令验证是否已正确创建文件夹:
Get-ChildItem "DS002:\Operating Systems"
Windows_7文件夹重命名为 Win_7。
在部署共享中自动应用操作系统 Service Pack
操作系统 Service Pack 是软件生命周期的正常部分。 部署共享中的现有操作系统需要使用这些 Service Pack 进行更新,以帮助确保新部署或刷新的计算机具有最新的安全建议和配置设置。
如果组织具有多个部署共享,每个部署共享中有多个操作系统,则使用 Service Pack 手动更新每个部署共享中的操作系统的过程可能非常耗时。 在部署共享中自动应用操作系统服务包的方法包括:
将已包含 Service Pack 的已更新源内容复制到现有操作系统所在的部署共享中的文件夹,例如,将已包含 Service Pack (的 Windows 7 sp1 媒体) 复制到部署共享中的文件夹,如从更新的源媒体自动应用操作系统 Service Pack 中所述
将 Service Pack 应用到引用计算机,然后从引用计算机捕获更新的映像,如使用引用计算机自动应用操作系统 Service Pack 和 Windows PowerShell
从更新的源媒体自动应用操作系统 Service Pack
当你拥有包含 Service Pack 的源媒体(例如具有已集成 Windows 7 和 SP1 的 DVD)时,可以使用 Windows PowerShell 自动执行更新操作系统 Service Pack 的过程。
对于此方法,将使用 Windows PowerShell 在部署共享中不带 Service Pack 的现有操作系统文件上复制带有 Service Pack 的操作系统源媒体。
使用 Windows PowerShell 从更新源媒体自动应用操作系统服务包
如加载 MDT Windows PowerShell管理单元中所述加载 MDT Windows PowerShell管理单元。
确保使用 Restore-MDTPersistentDrive cmdlet 还原共享Windows PowerShell驱动器的 MDT 部署,如以下示例所示:
Restore-MDTPersistentDrive -Verbose
注意
如果共享Windows PowerShell驱动器的 MDT 部署已还原,则会收到一条警告消息,指示 cmdlet 无法还原驱动器。
使用 Get-PSDrive cmdlet 查看 MDT 部署共享Windows PowerShell驱动器的列表,每个部署共享各一个,如以下示例所示:
Get-PSDrive -PSProvider Microsoft.BDD.PSSnapIn\MDTProvider
其中列出了使用 MDTProvider 提供的Windows PowerShell驱动器列表,每个部署共享对应一个驱动器。
使用 Get-ChildItem 和 Remove-Item cmdlet 从部署共享 中删除 现有操作系统的文件夹,如以下示例所示:
Get-ChildItem "DS002:\Operating Systems\Windows 7" –recurse | Remove-Item –recurse –force
在此示例中,DS002: 是步骤 3 中返回的Windows PowerShell驱动器的名称。
复制使用 Copy-Item cmdlet 集成的 Service Pack 的操作系统源文件的内容,如以下示例所示:
Copy-Item "E:\*" -Destination "DS002:\Operating Systems\Windows 7"-Recurse -Force
在此示例中,操作系统源文件位于驱动器 E 上,DS002: 是步骤 3 中返回的Windows PowerShell驱动器的名称。
使用 Update-MDTMedia cmdlet 基于部署共享更新任何 MDT 部署媒体。
有关如何使用 Update-MDTMedia cmdlet 基于部署共享更新 MDT 部署媒体的详细信息,请参阅使用 Windows PowerShell更新部署媒体。
使用引用计算机和Windows PowerShell自动应用操作系统 Service Pack
如果只有尚未与操作系统集成的 Service Pack(例如尚未将适用于 Windows 7 的 SP1 与 Windows 7 映像集成),则可以使用 Windows PowerShell 自动执行更新操作系统 Service Pack 的过程。
对于此方法,请将不带 Service Pack 的操作系统部署到引用计算机。 然后,将 Service Pack 应用到引用计算机。 接下来,捕获引用计算机的操作系统映像。 最后,使用 Windows PowerShell 通过部署共享中的操作系统中的 Install.wim 文件复制捕获的 .wim 文件。
使用 Windows PowerShell 从更新源媒体自动应用操作系统服务包
将目标操作系统部署到引用计算机。
有关如何部署引用计算机的详细信息,请参阅 MDT 文档中的以下资源:使用 Microsoft 部署工具包:
“准备将 LTI 部署到引用计算机”
“在 LTI 中将引用计算机部署到并捕获引用计算机的映像”
将所需的 Service Pack 安装到引用计算机。
有关如何安装 Service Pack 的详细信息,请参阅 Service Pack 附带的文档。
通过基于 Sysprep 和 Capture 任务序列模板创建和部署任务序列来捕获引用计算机的映像。
有关基于 Sysprep 和捕获 任务序列模板创建任务序列的详细信息,请参阅“在部署工作台中创建新的任务序列”。
如加载 MDT Windows PowerShell管理单元中所述加载 MDT Windows PowerShell管理单元。
确保使用 Restore-MDTPersistentDrive cmdlet 还原共享Windows PowerShell驱动器的 MDT 部署,如以下示例所示:
Restore-MDTPersistentDrive -Verbose
注意
如果共享Windows PowerShell驱动器的 MDT 部署已还原,则会收到一条警告消息,指示 cmdlet 无法还原驱动器。
使用 Get-PSDrive cmdlet 查看 MDT 部署共享Windows PowerShell驱动器的列表,每个部署共享各一个,如以下示例所示:
Get-PSDrive -PSProvider Microsoft.BDD.PSSnapIn\MDTProvider
其中列出了使用 MDTProvider 提供的Windows PowerShell驱动器列表,每个部署共享对应一个驱动器。
使用 Copy-Item cmdlet 通过部署共享中的操作系统中的 Install.wim 文件复制步骤 3 中捕获的 .wim 文件,如以下示例所示:
Copy-Item "DS002:\Captures\Win7SP1.wim" -Destination "DS002:\Operating Systems\Windows 7\sources\Install.wim" Force
在此示例中,捕获的操作系统映像文件 (Win7SP1.wim) 在共享 DS002: 的 Captures 文件夹中是步骤 6 中返回的Windows PowerShell驱动器的名称,现有 Windows 7 操作系统存储在名为 Windows 7 的文件夹中。
使用 Update-MDTMedia cmdlet 基于部署共享更新任何 MDT 部署媒体。
有关如何使用 Update-MDTMedia cmdlet 基于部署共享更新 MDT 部署媒体的详细信息,请参阅使用 Windows PowerShell更新部署媒体。
基于机箱类型自定义部署
可以根据计算机的机箱类型自定义部署。 脚本创建可在 CustomSettings.ini 文件中处理的局部变量。 局部变量 、IsLaptop
IsDesktop
和 IsServer
分别指示计算机是便携式计算机、台式计算机还是服务器。
注意
在早期版本的 Deployment Workbench 中IsServer
,标志指示现有操作系统是服务器操作系统 (,例如 Windows Server 2003 Enterprise Edition) 。 此标志已重命名为 IsServerOS
。
在 CustomSettings.ini 文件中实现局部变量
[Settings]
在 部分中,Priority
在行中添加一个自定义部分,以根据以下示例中的机箱类型 (ByChassisType
自定义部署,其中“机箱”表示计算机) 的类型。创建与步骤 1 中定义的自定义节相对应的自定义节 (
ByChassisType
以下示例中的示例,其中 Chassis 表示计算机) 的类型。在以下示例) 中,为每个机箱类型定义一个子部分以检测
Subsection=Laptop-%IsLaptop%, Subsection=Desktop-%IsDesktop%, Subsection=Server-%IsServer%
(。为步骤 3 (中定义的每个
True
子节和False
状态创建一个子节,如[Laptop-True], [Laptop-False], [Desktop-True], [Desktop-False]
以下示例) 。在每个
True
和False
子部分下,添加基于机箱类型的相应设置。列表 1. 在 CustomSettings.ini 文件中自定义基于机箱类型的部署的示例
[Settings]
Priority=...,ByLaptopType,ByDesktopType,ByServerType
[ByLaptopType]
Subsection=Laptop-%IsLaptop%
[ByDesktopType]
Subsection=Desktop-%IsDesktop%
[ByServerType]
Subsection=Server-%IsServer%
.
.
.
[Laptop-True]
.
.
.
[Laptop-False]
.
.
.
[Desktop-True]
.
.
.
[Desktop-False]
.
.
.
[Server-True]
.
.
.
[Server-False]
.
.
.
基于早期应用程序版本部署应用程序
通常,在现有计算机上安装操作系统时,将安装以前在计算机上安装的相同应用程序。 为此,请使用 MDT 脚本 (特别是 ZTIGather.wsf) 来查询两个单独的信息源:
Configuration Manager软件清单功能。 包含每个应用程序包的一条记录(在本例中,是上次安装的 Windows 8.1、Windows 8、Windows 7、Windows Server 2012 R2、Windows Server 2012、Windows Server 2008 R2 中的程序和功能中的列表Configuration Manager 对计算机进行清点。
映射表。 描述需要为每个记录安装哪个包和程序 (,因为“程序和功能”或“添加或删除程序”记录未准确指定安装了应用程序的包,因此无法仅根据清单) 自动选择包。
执行特定于计算机的动态应用程序安装
使用 MDT DB 中的 表将特定包与目标操作系统中列出的应用程序连接起来。
使用将数据与程序和功能或添加或删除程序中列出的应用程序关联的数据填充表。
用于填充表的 SQL 查询
use [MDTDB] go INSERT INTO [PackageMapping] (ARPName, Packages) VALUES('Office12.0', 'XXX0000F:Install Office 2010 Professional Plus') go
插入的行使用 Microsoft Office 2010 Professional Plus 包连接具有 条目
Office12.0
的任何计算机。这意味着Microsoft Office 2010 专业增强版将安装在当前运行 2007 Microsoft Office system (Office 12.0) 的任何计算机上。 为任何其他包添加类似的条目。 将忽略没有条目的任何项, () 不会安装任何包。
创建存储过程以简化将新表中的信息与清单数据联接的过程。
use [MDTDB] go if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[RetrievePackages]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[RetrievePackages] go CREATE PROCEDURE [dbo].[RetrievePackages] @MacAddress CHAR(17) AS SET NOCOUNT ON /* Select and return all the appropriate records based on current inventory */ SELECT * FROM PackageMapping WHERE ARPName IN ( SELECT ProdID0 FROM CM_DB.dbo.v_GS_ADD_REMOVE_PROGRAMS a, CM_DB.dbo.v_GS_NETWORK_ADAPTER n WHERE a.ResourceID = n.ResourceID AND MACAddress0 = @MacAddress ) go
上述示例中的存储过程假定Configuration Manager中央主站点数据库位于作为 MDT DB 运行SQL Server的计算机上。 如果中央主站点数据库驻留在不同的计算机上,则需要对存储过程进行适当的修改。 此外,必须更新数据库 (
CM_DB
) 的名称。 此外,请考虑向其他帐户授予对 Configuration Manager 数据库中v_GS_ADD_REMOVE_PROGRAMS视图的读取访问权限。通过指定指向数据库信息的“优先级”列表中 (节的名称) 来
[DynamicPackages]
配置CustomSettings.ini文件以查询此数据库表。[Settings] ... Priority=MacAddress, DefaultGateway, DynamicPackages, Default ...
创建节
[DynamicPackages]
以指定数据库节的名称。[DynamicPackages] SQLDefault=DB_DynamicPackages
创建数据库节以指定数据库信息和查询详细信息。
[DB_DynamicPackages] SQLServer=SERVER1 Database=MDTDB StoredProcedure=RetrievePackages Parameters=MacAddress SQLShare=Logs Instance=SQLEnterprise2005 Port=1433 Netlib=DBNMPNTW
在前面的示例中,将查询运行名为 SERVER1 的 SQL Server 实例的计算机上名为 MDTDB 的 MDT DB。 数据库包含一个名为
RetrievePackages
(在步骤 3) 中创建的存储过程。ZTIGather.wsf 运行时,将自动生成结构化查询语言 (SQL)
SELECT
语句,并将 MakeModelQuery 自定义键的值作为参数传递给查询:EXECUTE RetrievePackages ?
MACAddress 自定义键的实际值将替换为相应的“?”。 此查询返回记录集,其中包含在步骤 2 中输入的行。
不能将可变数量的参数传递给存储过程。 因此,当计算机有多个 MAC 地址时,并非所有 MAC 地址都可以传递到存储过程。 作为替代方法,请将存储过程替换为一个视图,该视图允许使用
SELECT
带有IN
子句的语句查询视图,以传递所有 MAC 地址值。根据此处提供的方案,如果当前计算机在步骤 2) (表中插入了值
Office12.0
,则会 ()XXX0000F:Install Office 2010 Professional Plus
返回一行。 这表示在状态还原阶段,ZTI 进程将安装包 XXX0000F:Install Office 2001 Professional Plus。
完全自动化的 LTI 部署方案
LTI 的主要用途是尽可能自动执行部署过程。 尽管 ZTI 使用 MDT 脚本和 Windows 部署服务提供完整的部署自动化,但 LTI 旨在满足较少的基础结构要求。
可以自动执行 LTI 部署过程中使用的 Windows 部署向导,以减少 (或消除显示向导页) 。 可以通过在 CustomSettings.ini 中指定 SkipWizard 属性来跳过整个 Windows 部署向导。 若要跳过单个向导页,请使用以下属性:
SkipAdminPassword
SkipApplications
SkipBDDWelcome
SkipBitLocker
SkipBitLockerDetails
SkipTaskSequence
SkipCapture
SkipComputerBackup
SkipComputerName
SkipDomainMembership
SkipFinalSummary
SkipLocaleSelection
SkipPackageDisplay
SkipProductKey
SkipSummary
SkipTimeZone
SkipUserData
有关这些单独属性的详细信息,请参阅 MDT 文档 工具包参考中的相应属性。
对于跳过的每个向导页,请提供通常通过向导页在 CustomSettings.ini 和 BootStrap.ini 文件中收集的相应属性的值。 有关必须在这些文件中配置的属性的详细信息,请参阅 MDT 文档 工具包参考中的“为跳过的部署向导页提供属性”部分。
刷新计算机方案的完全自动化 LTI 部署
下面演示了用于刷新计算机方案以跳过所有 Windows 部署向导页的CustomSettings.ini文件。 在此示例中,跳过向导页时提供的属性直接位于跳过向导页的属性下面。
[Settings]
Priority=Default
Properties=MyCustomProperty
[Default]
OSInstall=Y
ScanStateArgs=/v:5 /o /c
LoadStateArgs=/v:5 /c /lac /lae
SkipCapture=YES
SkipAdminPassword=YES
SkipProductKey=YES
DeploymentType=REFRESH
SkipDomainMembership=YES
JoinDomain=DomainName
DomainAdmin=Administrator
DomainAdminDomain=DomainName
DomainAdminPassword=a_secure_password
SkipUserData=yes
UserDataLocation=AUTO
UDShare=\\Servername\Sharename\Directory
UDDir=%ComputerName%
SkipComputerBackup=YES
ComputerBackuplocation=AUTO
BackupShare=\\Servername\Backupsharename
BackupDir=%ComputerName%
SkipTaskSequence=YES
TaskSequenceID=Enterprise
SkipComputerName=YES
OSDComputerName=%ComputerName%
SkipPackageDisplay=YES
LanguagePacks001={3af4e3ce-8122-41a2-9cf9-892145521660}
LanguagePacks002={84fc70d4-db4b-40dc-a660-d546a50bf226}
SkipLocaleSelection=YES
UILanguage=en-US
UserLocale=en-CA
KeyboardLocale=0409:00000409
SkipTimeZone=YES
TimeZoneName=China Standard Time
SkipApplications=YES
Applications001={a26c6358-8db9-4615-90ff-d4511dc2feff}
Applications002={7e9d10a0-42ef-4a0a-9ee2-90eb2f4e4b98}
UserID=Administrator
UserDomain=DomainName
UserPassword=P@ssw0rd
SkipBitLocker=YES
SkipSummary=YES
Powerusers001=DomainName\Username
新计算机方案的完全自动化 LTI 部署
下面是用于“新建计算机”方案以跳过所有 Windows 部署向导页的 CustomSettings.ini 文件示例。 在此示例中,跳过向导页时提供的属性直接位于跳过向导页的属性下面。
[Settings]
Priority=Default
Properties=MyCustomProperty
[Default]
OSInstall=Y
ScanStateArgs=/v:5 /o /c
LoadStateArgs=/v:5 /c /lac /lae
SkipCapture=YES
ComputerBackupLocation=\\WDG-MDT-01\Backup$\
BackupFile=MyCustomImage.wim
SkipAdminPassword=YES
SkipProductKey=YES
SkipDomainMembership=YES
JoinDomain=WOODGROVEBANK
DomainAdmin=Administrator
DomainAdminDomain=WOODGROVEBANK
DomainAdminPassword=P@ssw0rd
SkipUserData=Yes
UserDataLocation=\\WDG-MDT-01\UserData$\Directory\usmtdata
SkipTaskSequence=YES
TaskSequenceID=Enterprise
SkipComputerName=YES
OSDComputerName=%SerialNumber%
SkipPackageDisplay=YES
LanguagePacks001={3af4e3ce-8122-41a2-9cf9-892145521660}
LanguagePacks002={84fc70d4-db4b-40dc-a660-d546a50bf226}
SkipLocaleSelection=YES
UILanguage=en-US
UserLocale=en-CA
KeyboardLocale=0409:00000409
SkipTimeZone=YES
TimeZoneName=China Standard Time
SkipApplications=YES
Applications001={a26c6358-8db9-4615-90ff-d4511dc2feff}
Applications002={7e9d10a0-42ef-4a0a-9ee2-90eb2f4e4b98}
SkipBitLocker=YES
SkipSummary=YES
Powerusers001=WOODGROVEBANK\PilarA
CaptureGroups=YES
SLShare=\\WDG-MDT-01\UserData$\Logs
Home_page=https://www.microsoft.com/NewComputer
在 MDT 中调用 Web 服务
在 MDT 的早期版本中,CustomSettings.ini和数据库支持规则处理,可以从这些数据库中检索本地计算机(通常使用 WMI)中的值,从而在部署期间对每台计算机上需要执行的操作做出决策。 此外,还可以进行 SQL 查询和存储过程调用,以从外部数据库检索其他信息。 不过,这种方法存在挑战,尤其是在建立安全SQL Server连接方面。
为了帮助解决此问题,MDT 能够基于 CustomSettings.ini 中定义的简单规则进行 Web 服务调用。 这些 Web 服务请求不需要任何特殊的安全上下文,并且可以使用所需的任何 TCP/IP 端口来简化防火墙配置。
下面演示如何配置CustomSettings.ini以调用特定的 Web 服务。 在此方案中,Web 服务是从 Internet 搜索中随机选择的。 它采用邮政编码作为输入,并将城市、州、区号和时区 (作为指定邮政编码的字母) 返回。
[Settings]
Priority=Default, USZipService
Properties=USZip, City, State, Zip, Area_Code, Time_Zones
[Default]
USZip=98052
[USZipService]
WebService=http://www.webservicex.net/uszip.asmx/GetInfoByZIP
Parameters=USZip
执行此代码会生成类似于以下内容的输出:
Added new custom property USZIP
Added new custom property CITY
Added new custom property STATE
Added new custom property ZIP
Added new custom property AREA_CODE
Added new custom property TIME_ZONES
Using from [Settings]: Rule Priority = DEFAULT, USZIPSERVICE
------ Processing the [DEFAULT] section ------
Property USZIP is now = 98052
Using from [DEFAULT]: USZIP = 98052
------ Processing the [USZIPSERVICE] section ------
Using COMMAND LINE ARG: Ini file = CustomSettings.ini
CHECKING the [USZIPSERVICE] section
About to execute web service call to http://www.webservicex.net/uszip.asmx/GetInfoByZIP: USZip=98052
Response from web service: 200 OK
Successfully executed the web service.
Property CITY is now = Redmond
Obtained CITY value from web service: CITY = Redmond
Property STATE is now = WA
Obtained STATE value from web service: STATE = WA
Property ZIP is now = 98052
Obtained ZIP value from web service: ZIP = 98052
Property AREA_CODE is now = 425
Obtained AREA_CODE value from web service: AREA_CODE = 425
------ Done processing CustomSettings.ini ------
运行 Web 服务时,需要注意一些小问题:
不要对代理服务器执行任何特殊操作。 如果存在匿名代理,请使用它,但对代理进行身份验证可能会导致问题。 在大多数情况下,不会调用 Web 服务。
CustomSettings.ini或ZTIGather.xml搜索作为 Web 服务调用的结果返回的 XML 标记中定义的属性 (与数据库查询或其他规则) 一样。 但是,XML 搜索区分大小写。 幸运的是,此处所述的 Web 服务返回所有大写属性名称,这是ZTIGather.xml所期望的。 可以重新映射小写或混合大小写条目来解决此问题。
POST
建议对 Web 服务发出请求,因此 Web 服务调用必须能够支持POST
。
连接到网络资源
在 LTI 和 ZTI 部署过程中,可能需要访问与托管部署共享的服务器不同的服务器上的网络资源。 必须在其他服务器上对用户进行身份验证,才能访问该服务器上的共享文件夹或服务。 例如,可以在托管 MDT 脚本使用的部署共享的服务器以外的服务器上从共享文件夹安装应用程序。
注意
若要查询托管部署共享的服务器以外的服务器上的SQL Server数据库,请参阅 MDT 文档工具包参考中的 Database、DBID、DBPwd、Instance、NetLib、Order、Parameters、ParameterCondition、SQLServer、SQLShare 和表属性。
使用 ZTIConnect.wsf 脚本,可以连接到其他服务器并访问这些服务器上的资源。 ZTIConnect.wsf 脚本的语法如下 (其中 unc_path 是连接到服务器) 的通用命名约定 [UNC] 路径:
cscript.exe "%SCRIPTROOT%\ZTIConnect.wsf" /uncpath:unc_path
在大多数情况下,可以将 ZTIConnect.wsf 脚本作为任务序列程序任务运行。 在需要访问托管部署共享的服务器以外的服务器的任务之前,请运行 ZTIConnect.wsf 脚本。
将 ZTIConnect.wsf 脚本作为任务添加到生成的任务序列
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share/Task Sequences (其中 ,deployment_share 是要配置) 的部署共享的名称。
在详细信息窗格中,单击“ task_sequence (,其中 task_sequence 是要修改) 的任务序列。
在操作窗格中,单击“属性”。
单击“任务序列”选项卡,浏览到 组 (其中 group 是运行 ZTIConnec.wsf 脚本的组) ,然后单击“ 添加”。 单击“ 常规”,然后单击“ 运行命令行”。
注意
在添加需要访问目标服务器上的资源的任何任务之前添加任务。
使用以下信息完成新任务的“ 属性 ”选项卡:
在此框中 执行操作 名称 键入 “连接到服务器 (其中 server 是) 连接到的服务器的名称。 说明 键入说明为何需要建立连接的文本。 命令 键入 cscript.exe“%SCRIPTROOT%\ZTIConnect.wsf” /uncpath:unc_path (其中 ,unc_path 是服务器) 上共享文件夹的 UNC 路径。 使用以下信息完成新任务的“ 选项 ”选项卡。 除非指定,否则接受默认值,然后单击“ 确定”。
在此框中 执行操作 成功代码 键入 0 3010。 (ZTIConnect.wsf 脚本在成功完成时返回这些代码。) 条件列表框 添加可能需要的任何条件。 (在大多数情况下,此任务不需要任何条件。) 添加将运行 ZTIConnect.wsf 脚本的任务后,后续任务可以访问在 ZTIConnect.wsf 脚本的 /uncpath 选项中指定的服务器上的网络资源。
将正确的设备驱动程序部署到具有相同硬件设备但型号不同的计算机
在驱动程序集中,模型编号和名称可能存在差异几乎不存在差异。 型号和名称的这些变化可能会不必要地增加为给定模型创建多个数据库条目所花费的时间。 以下过程演示如何使用返回模型号子字符串的用户 exit 函数调用来定义新属性。
创建模型别名
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share (其中 ,deployment_share 是要配置) 的部署共享的名称。
在操作窗格中,单击“属性”。
在“ 属性 ”对话框中,单击“ 规则 ”选项卡。
在 MDT DB 的“制造”和“模型”部分中为硬件类型创建别名。 截断模型名称中左括号“ (”处的模型类型。 例如, HP DL360 (G112) 变为 HP DL360。
将自定义变量 ModelAlias 添加到每个部分。
创建新
[SetModel]
分区。将
[SetModel]
节添加到 节中的[Settings]
“优先级”设置。在
ModelAlias
节中添加一行,以引用将在“ (”处截断模型名称的用户退出脚本。创建 一个 MMApplications 数据库查找 ,其中 ModelAlias 等于 Model。
创建一个用户退出脚本,并将其放置在与 CustomSettings.ini 文件相同的目录中,以截断模型名称。
下面分别显示了CustomSettings.ini和用户退出脚本。
CustomSettings.ini:
[Settings] Priority=SetModel, MMApplications, Default Properties= ModelAlias [SetModel] ModelAlias=#SetModelAlias()# Userexit=Userexit.vbs [MMApplications] SQLServer=Server1 Database=MDTDB Netlib=DBNMPNTW SQLShare=logs Table= MakeModelSettings Parameters=Make, ModelAlias ModelAlias=Model Order=Sequence
用户退出脚本:
Function UserExit(sType, sWhen, sDetail, bSkip) UserExit = Success End Function Function SetModelAlias() If Instr(oEnvironment.Item("Model"), "(") <> 0 Then SetModelAlias = Left(oEnvironment.Item("Model"), _ Instr(oEnvironment.Item("Model"), _ "(") - 1) oLogging.CreateEntry "USEREXIT – " & _ "ModelAlias has been set to " & SetModelAlias, _ LogTypeInfo Else SetModelAlias = oEnvironment.Item("Model") oLogging.CreateEntry " USEREXIT - " & _ "ModelAlias has not been changed.", LogTypeInfo End if End Function
配置条件任务序列步骤
在某些情况下,请考虑根据定义的条件有条件地运行任务序列步骤。 可以添加这些条件的任意组合,以确定任务序列步骤是否应运行。 例如,使用任务序列变量的值和注册表设置的值来确定任务序列步骤是否应运行。
使用 MDT,基于以下条件运行任务序列:
一个或多个 IF 语句
任务序列变量
目标操作系统的版本
WMI 查询的布尔结果
注册表设置
目标计算机上安装的软件
文件夹的属性
文件的属性
配置条件任务序列步骤
条件任务序列步骤在任务序列步骤的“ 选项 ”选项卡上的“部署工作台”中配置。 可以将一个或多个条件添加到任务序列步骤,以创建运行或不运行该步骤的适当条件。
注意
每个条件任务序列步骤至少需要一个 IF 语句。
查看任务序列步骤的“选项”选项卡
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share/Task Sequences (其中 ,deployment_share 是要配置) 的部署共享的名称。
在详细信息窗格中,单击“ task_sequence (,其中 task_sequence 是要配置) 的任务序列的名称。
在操作窗格中,单击“属性”。
在“ task_sequence属性 ”对话框中的“ 任务序列 ”选项卡上,单击“ 步骤 (其中 step 是要配置) 的任务序列步骤的名称,然后单击” 选项 “选项卡。
在任务序列步骤的“ 选项 ”选项卡上,执行以下操作:
添加 。 单击此按钮可向任务序列步骤添加条件。
删除。 单击此按钮可删除任务序列步骤中的现有条件。
编辑。 单击此按钮可修改任务序列步骤中的现有条件。
条件中的 IF 语句
所有任务序列条件都包含一个或多个 IF 语句。 IF 语句是创建条件任务序列步骤的基础。 任务序列步骤条件只能包含一个 IF 语句,但多个 IF 语句可以嵌套在顶级 IF 语句下面,以创建更复杂的条件。
IF 语句可以基于下表中列出的条件,这些条件在 IF 语句属性对话框中进行了配置。
Condition | 选择此选项以运行任务序列,前提是 |
---|---|
所有条件 | 此 IF 语句下的所有条件都必须为 true。 |
任何条件 | 此 IF 语句下的任何条件均为 true。 |
无 | 此 IF 语句下面的条件均不为 true。 |
通过将其他条件添加到条件 ((例如,注册表设置中的任务序列变量或值) ),完成运行任务序列步骤的条件。
向任务序列步骤添加 IF 语句条件
在步骤“选项”选项卡上, (其中 step 是用于配置) 的任务序列步骤的名称,单击“添加”,然后单击“If 语句”。
在“If 语句属性”对话框中,单击条件 (条件是上表) 中列出的条件之一,然后单击“确定”。
条件中的任务序列变量
使用 任务序列变量 条件可评估由 “设置 任务序列变量”任务或任务序列中的任何任务创建的任何任务序列变量。 例如,假设一个网络包含属于域的 Windows XP 客户端计算机和工作组中的一些客户端计算机。 知道当前域策略强制在网络上保存所有用户设置,可能只需要为不属于域的计算机(即工作组中的计算机)保存用户设置。 在这种情况下,请向 “捕获用户文件和设置” 任务添加一个以工作组中的计算机为目标的条件。
添加基于任务序列变量的条件
在 “步骤选项 ”选项卡上, (其中 step 是要配置) 的任务序列步骤的名称,单击“ 添加条件”,然后单击“ 任务序列变量”。
在“ 任务序列变量 条件”对话框的“ 变量 ”框中,键入 OSDJoinType。
注意
对于已加入域的计算机,此变量设置为 0 ,对于工作组中的计算机,此变量设置为 1 。
在 “条件 ”框中,单击“ 等于”。
在“值”框中键入 1,然后单击“确定”。
条件中的操作系统版本
) 捕获映像时,使用 操作系统版本 条件验证目标计算机的现有操作系统版本或现有客户端 (。 例如,假设一个网络包含多个服务器,这些服务器将从 Windows Server 2003 升级到 Windows Server 2008。 应仅复制网络设置并将其应用于运行 Windows Server 2003 的服务器。 所有其他服务器将具有 Windows Server 2008 使用的默认网络设置。
基于操作系统版本添加条件
在任务序列编辑器中,单击“ 捕获网络设置” 任务。
单击“ 添加条件”,然后单击“ 操作系统版本”。
在“ 体系结构 ”框中,单击相关服务器。 对于此示例,请单击“ x86”。
在“ 操作系统 ”框中,单击要为其设置条件的操作系统和版本。 对于此示例,单击“ x86 Windows 2003”。
在“ 条件 ”框中,单击相关条件,然后单击“ 确定”。
条件中的文件属性
使用 “文件属性” 条件验证给定文件的版本和/或时间,以确定是运行任务还是运行一组任务。 在此示例中,生产环境包含一个 Windows Server 2003 映像,该映像会不断更新并用于添加到网络的每个新服务器。 环境中的所有服务器计算机都运行一个自定义应用程序,该应用程序需要数字访问对象 (DAO) 应用程序编程接口 (API) 版本 3.60.6815。
所有现有服务器都正常工作。 但是,使用映像添加到网络的每个新服务器都无法运行应用程序。 由于不同组负责维护和更新映像,因此,如果随映像部署的现有 DAO 版本不正确,则决定更改部署任务序列以安装 DAO 的相关版本。
将文件属性条件添加到Configuration Manager中的任务序列步骤
在 Configuration Manager 中创建一个包来安装 DAO 3.60.6815。 使用名为 InstallDAO 的程序调用此包 DAO。 若要详细了解如何创建包,请参阅 如何创建包。
创建 安装软件 步骤以部署 DAO 包。
单击在步骤 2 中创建的 “安装软件 ”任务序列步骤,然后单击“ 选项 ”选项卡。
单击“ 添加条件”,然后单击“ 文件属性”。
在“路径”框中,键入 C:\Program Files\Microsoft Shared\DAO\dao360.dll。
选中“ 检查版本 ”复选框,然后单击条件的“ 不等于 ”。
在“ 版本 ”框中,键入 3.60.6815。
在这种情况下,请清除“ 检查时间戳 ”复选框,然后单击“ 确定”。
条件中的文件夹属性
使用 “文件夹属性” 条件验证给定文件夹的时间戳,以确定是运行任务还是运行一组任务。 例如,请考虑更新内部开发的应用程序以使用Windows 8的情况。 但是,并非网络中的所有计算机都安装了最新版本的应用程序,并且必须先执行数据转换过程,然后才能升级应用程序。
如果安装应用程序的文件夹的时间戳为 2007 年 12 月 31 日或更早版本,则目标计算机正在运行应用程序不兼容的版本,并且应在目标计算机上运行数据转换过程。 有条件地运行任务序列步骤,在具有早期版本的应用程序的计算机上运行数据转换过程。
向任务序列步骤添加文件夹属性条件
在Configuration Manager控制台或 Deployment Workbench 的任务序列编辑器中,编辑task_sequence (其中任务序列是要编辑) 的任务序列。
创建 命令行 任务以执行数据转换过程。
单击在步骤 1 中创建的任务。
单击“ 添加条件”,然后单击“ 文件夹属性”。
在“ 路径 ”框中,键入包含该应用程序的文件夹的路径。
选中“ 检查时间戳 ”复选框。
对于条件,单击“ 小于或等于 ”。
在“ 日期 ”框中,单击“ 12/31/2007”。
在“ 时间 ”框中,单击“ 12:00:00 AM”,然后单击“ 确定”。
条件中的注册表设置
使用 注册表设置 条件验证注册表中是否存在键和值,以及注册表值中存储的相应数据。 例如,请考虑以下情况:目前在一小部分计算机上使用的应用程序无法在Windows 8上运行,并且已部署Windows 8来升级当前运行 Windows XP 的计算机。 在序列中的第一个任务上创建一个条件,以检查注册表中是否存在不兼容应用程序的条目,并在找到该计算机的部署过程时中断该计算机的部署过程。
向任务序列步骤添加注册表设置条件
在Configuration Manager控制台或 Deployment Workbench 的任务序列编辑器中,编辑task_sequence (其中任务序列是部署Windows 8) 的任务序列。
单击序列中的第一个任务,然后单击“ 选项 ”选项卡。
单击“ 添加条件”,然后单击“ 注册表设置”。
在 “根密钥 ”列表中,单击“ HKEY_LOCAL_MACHINE”。
在 “密钥 ”框中,键入 “SOFTWARE\WOODGROVE”。
对于条件,单击“ 不存在 ”。 在这种情况下,任务将运行,并且序列仅在键不存在时才继续。
(可选)如果值名称 在“值 名称”框中键入值名称,则条件可以检查值是否不存在。
如果使用 存在/不存在 以外的条件,请指定值和值类型。
单击“确定”。
条件中的 WMI 查询
使用 WMI 查询 条件运行任何 WMI 查询。 如果查询返回至少一个结果,则条件的计算结果为 True。 例如,假设部署团队需要升级给定型号(例如 Dell 1950)的所有服务器的操作系统。 可以使用 WMI 查询来检查每台计算机的模型,并且仅在找到正确的模型时才继续部署。
向任务序列步骤添加 WMI 查询条件
在Configuration Manager控制台或部署工作台的任务序列编辑器中,编辑task_sequence (其中任务序列是将) 升级服务器的任务序列。
单击序列中的第一个任务,然后单击“ 选项 ”选项卡。
单击“ 添加条件”,然后单击“ 查询 WMI”。
在 “WMI 命名空间” 框中,键入 root\cimv2。
在“WQL 查询”框中,键入 Select * From Win32_ComputerSystem WHERE Model LIKE “%Dell%%1950%”。 单击“确定”。
在条件中安装的软件
使用 “已安装的软件” 条件检查目标计算机上当前是否安装了特定软件。 只能使用此条件评估使用 Microsoft Installer (MSI) 文件安装的软件。 例如,假设你想要升级除运行 Microsoft SQL Server 2012 的服务器以外的所有服务器的操作系统。
向任务序列步骤添加“已安装的软件”条件
在Configuration Manager控制台或部署工作台的任务序列编辑器中,编辑task_sequence (其中任务序列是将) 升级服务器的任务序列。
单击序列中的第一个任务,然后单击“ 选项 ”选项卡。
单击“ 添加条件”,然后单击“ 已安装的软件”。
单击“浏览”,然后单击 SQL Server 2012 的 MSI 文件。
选中“匹配此特定产品”复选框可指定仅具有 SQL Server 2012 版本的计算机,而没有其他版本的计算机是此查询应检测的目标计算机。
单击“确定”。
复杂条件
可以使用 IF 语句对多个条件进行分组,以创建复杂条件。 例如,假设只应对运行 Windows Server 2003 或 Windows Server 2008 的 Contoso 1950 计算机运行特定步骤。 编写为编程 IF 语句,如下所示:
IF ((Computer Model IS "Contoso 1950") AND (operating system=2003 OR operating system=2008))
添加复杂条件
在Configuration Manager控制台或部署工作台的任务序列编辑器中,编辑task_sequence (其中任务序列是将) 升级服务器的任务序列。
单击要向其添加条件的任务序列步骤,然后单击“ 选项” 选项卡。
依次单击“ 添加条件”、“ If 语句”和“ 所有条件”。 单击“确定”。
单击条件语句,单击 “添加条件”,然后单击“ WMI 查询”。
确保 root\cimv2 指定为 WMI 命名空间,然后在 WQL 查询框中键入 SELECT * FROM Win32_ComputerSystem WHERE ComputerModel LIKE “%Contoso%1950%”。 单击“确定”。
单击 IF 语句,然后单击“ 添加条件”。 单击“ If 语句”,然后单击“ 任何条件”。 单击“确定”。
单击第二个 IF 语句。 单击“ 添加条件”,然后单击“ 操作系统版本”。
在“ 体系结构 ”框中,单击服务器的体系结构。 对于此示例,请单击“ x86”。
在“ 操作系统 ”框中,单击操作系统和版本。 对于此示例,单击“ x86 Windows 2003 原始版本”。 单击“确定”。
单击第二个 IF 语句。 单击“ 添加条件”,然后单击“ 操作系统版本”。
在“ 体系结构 ”框中,单击服务器的体系结构。 对于此示例,请单击“ x86”。
在“ 操作系统 ”框中,单击操作系统和版本。 对于此示例,单击“ x86 Windows 2008 原始版本”。 单击“确定”。
创建高度可缩放的 LTI 部署基础结构
在此方案中,部署基础结构没有可用的电子软件分发,因此可以使用 MDT 构建完全自动化的 LTI 部署基础结构。 可缩放的 LTI 基础结构使用 SQL Server、Windows 部署服务和 Windows Server 2003 分布式文件系统复制 (DFS-R) 技术。
通过以下方式缩放 LTI 基础结构:
确保适当的基础结构存在,如确保适当的基础结构存在中所述
按照将内容添加到 MDT 中所述 向 MDT 添加内容
按照准备 Windows 部署服务中所述准备 Windows 部署服务
按照配置分布式文件系统复制中所述配置 DFS-R
按照准备SQL Server 复制中所述准备SQL Server复制
按照配置SQL Server 复制中所述配置SQL Server复制
此方案假定 MDT 是在主部署服务器上配置的,并且已完成 MDT DB 的配置,如本文档开头所述。
确保适当的基础结构存在
高度可缩放的 LTI 部署基础结构使用中心辐射型拓扑进行内容复制;因此,首先在生产环境中指定将执行主部署服务器角色的部署服务器。 下面列出了主部署服务器所需的组件。
必需组件 | 目的/注释 |
---|---|
Windows Server 2003 R2 | 支持 DFS-R 所必需的 |
MDT | 包含部署共享的主副本 |
SQL Server 2005 | 必须是完整版本才能允许复制 MDT DB |
DFS-R | 复制部署共享时需要 |
Windows 部署服务 | 需要才能启动基于 PXE 的网络安装 |
选择主部署服务器后,请在每个站点预配其他服务器以支持 LTI 部署。 下面列出了子部署服务器所需的组件。
必需组件 | 目的/注释 |
---|---|
Windows Server 2003 R2 | 支持 DFS-R 所必需的 |
Microsoft SQL Server 2005 Express Edition | 接收 MDT DB 的复制副本 |
DFS-R | 复制部署共享时需要 |
Windows 部署服务 | 需要才能启动基于 PXE 的网络安装 |
注意
必须在每个子服务器上设置和配置 Windows 部署服务,但不需要添加启动或安装映像。
将内容添加到 MDT
使用 Deployment Workbench 使用内容填充主部署服务器,并创建和填充 MDT DB,如以下部分所述。 有关使用填充数据库的信息:
应用程序,请参阅 MDT 文档中使用Microsoft部署工具包中的“在部署工作台中配置应用程序”部分
操作系统,请参阅 MDT 文档中使用Microsoft部署工具包中的“在部署工作台中配置操作系统”部分
操作系统包,请参阅 MDT 文档中使用Microsoft部署工具包中的“在部署工作台中配置包”部分
设备驱动程序,请参阅 MDT 文档中使用Microsoft部署工具包中的“在部署工作台中配置设备驱动程序”部分
任务序列,请参阅 MDT 文档中使用Microsoft部署工具包中的“在部署工作台中配置任务序列”部分
注意
确保更新部署共享时创建的 LiteTouchPE_x86.wim 文件已添加到 Windows 部署服务。
准备 Windows 部署服务
由于 LiteTouchPE_x86.wim 文件将通过 DFS-R 复制组定期复制,因此必须定期更新启动配置数据存储以反映新复制的 Windows PE 环境。 在每个部署服务器上执行以下步骤。
准备 Windows 部署服务
打开命令提示符窗口。
键入 WDSUtil/set-server/BCDRefreshPolicy/Enabled:yes/RefreshPeriod:60,然后按 Enter。
注意
在此处提供的示例中,刷新周期设置为 60 分钟;但是,可以将此值配置为在等于 DFS-R 的时间段内进行复制。
配置分布式文件系统复制
缩放 LTI 部署体系结构时,使用 DFS-R 作为将内容从 MDT 部署共享和 Windows PE Lite Touch 启动环境以及从主部署服务器复制到子部署服务器的基础。
注意
在执行以下步骤之前,请确保已安装 DFS-R。
配置 DFS-R 以复制部署内容
打开 DFS 管理控制台。
在 DFS 管理控制台中,展开“DFS 管理”。
右键单击“ 复制”,然后单击“ 新建复制组”。
在“新建复制组向导”的“ 复制组类型 ”页上,单击“ 新建多用途复制组”。
单击下一个。
在 “名称和域” 页上,键入以下信息:
在 “复制组的名称 ”框中,键入复制组的名称,例如 MDT 2010 复制组。
在 “复制组的可选说明 ”框中,键入复制组的说明,例如“ 用于复制 MDT 2010 数据的组”。
确保“ 域 ”框包含正确的域名。
单击下一个。
在 “复制组成员 ”页上,执行以下步骤:
单击“添加”。
键入要成为此复制组成员的所有服务器的名称,例如,所有子部署服务器和主部署服务器。
单击“确定”。
单击下一个。
在“ 拓扑选择” 页上,单击“ 中心和分支”,然后单击“ 下一步”。
在“ 中心成员 ”页上,单击主部署服务器,然后单击“ 添加”。
单击下一个。
在“ 中心辐射型连接” 页上,确保对于每个子部署服务器,列出的主部署服务器都是 “必需中心成员”。
单击下一个。
在 “复制组计划和带宽 ”页上,指定在服务器之间复制内容的计划。
单击下一个。
在“ 主要成员 ”页上的“ 主要成员 ”框中,单击主部署服务器。
单击下一个。
在“ 要复制的文件夹 ”页上,单击“ 添加”,然后执行以下步骤:
在“ 要复制的文件夹的本地路径 ”框中,单击“ 浏览 ”转到 X:\Deployment 文件夹 (其中 X 是部署服务器上的驱动器号) 。
单击“ 基于路径使用名称”。
单击“确定”。
单击“添加”。
在 “添加要复制的文件夹 ”对话框中,单击“ 浏览 ”转到 X:\RemoteInstall\Boot 文件夹。
单击“ 基于路径使用名称”。
单击下一个。
在“ 其他成员的本地分发路径 ”页上,执行以下步骤:
选择通讯组中的所有成员,然后单击“ 编辑”。
在 “编辑本地路径 ”对话框中,单击“ 已启用”。
键入部署共享文件夹应存储在子部署服务器上的路径,例如 X:\Deployment (其中 X 是部署服务器上的驱动器号) 。
单击“确定”。
单击下一个。
在“ 其他成员启动的本地路径 ”页上,执行以下步骤:
选择通讯组中的所有成员,然后单击“ 编辑”。
在 “编辑本地路径 ”对话框中,单击“ 已启用”。
键入“启动”文件夹应存储在子部署服务器上的路径,例如 X:\RemoteInstall\Boot (其中 X 是部署服务器上的驱动器号) 。
单击“确定”。
单击下一个。
在 “远程设置和创建复制组” 页上,单击“ 创建 ”完成“新建复制组向导”。
在 “确认 ”页上,单击“ 关闭” 以关闭向导。
注意
确保新的复制组现在列在“复制”节点下面。
准备SQL Server 复制
在配置SQL Server复制之前,请完成多个预配置步骤,以确保正确配置部署服务器。
在主部署服务器上准备SQL Server复制
创建一个文件夹来存储数据库快照,然后将该文件夹配置为共享。
注意
有关保护快照文件夹的详细信息,请参阅 保护快照文件夹。
确保启用SQL Server浏览器服务并将其设置为“自动”。
在“SQL Server外围应用配置”框中,单击“本地和远程连接”。
准备在子部署服务器上SQL Server复制
在“SQL Server外围应用配置”框中,单击“本地和远程连接”。
(可选)创建一个空数据库来托管复制的 MDT DB。
注意
必须为此数据库指定与主部署服务器上的 MDT DB 相同的名称。 例如,如果主部署服务器上的 MDT DB 称为 MDTDB,请在子部署服务器上创建名为 MDTDB 的空数据库。
配置SQL Server 复制
配置生成部署基础结构所需的文件和文件夹复制后,配置 SQL Server 以复制 MDT DB。
注意
也可以仅维护单个中央 MDT DB;但是,通过维护 MDT DB 的复制版本,可以更好地控制跨广域网传输的数据 (WAN) 。
SQL Server 2005 使用类似于杂志分发模型的复制模型:
杂志由出版商) 出版 (提供。
分发服务器 用于分发发布。
读者 可以订阅发布,以便定期 (推送订阅) 将发布传递给订阅服务器。
此术语通过SQL Server复制设置和配置向导使用。
配置SQL Server发布服务器
若要将主部署服务器配置为SQL Server发布服务器,请执行以下步骤:
打开 SQL Server Management Studio。
右键单击“ 复制 ”节点,然后单击“ 配置分发”。
在“配置分发向导”中,单击“ 下一步”。
在“分发服务器”页上,单击将充当自己的分发服务器;SQL Server将创建分发数据库和日志,然后单击“下一步”。
在“快照文件夹”页上的“准备SQL Server 复制”部分,键入创建的快照文件夹的 UNC 路径。
在“ 分发数据库 ”页上,单击“ 下一步”。
在“ 发布服务器 ”页上,单击主部署服务器将其设置为分发服务器,然后单击“ 下一步”。
在 “向导操作” 页上,单击“ 配置分发”,然后单击“ 下一步”。
单击“ 完成”,然后在向导完成后单击“ 关闭 ”。
为复制启用 MDT DB
若要在主部署服务器上启用 MDT DB 进行复制,请执行以下步骤:
在SQL Server Management Studio中,右键单击“复制”节点,然后单击“发布服务器属性”。
在“ 发布服务器属性” 页上,执行以下步骤:
单击“ 发布服务器数据库”。
单击 MDT DB,然后单击“ 事务”。
单击“确定”。
现在已为事务和快照复制配置 MDT DB。
创建 MDT DB 的发布
若要创建子部署服务器可以订阅的 MDT DB 的发布,请执行以下步骤:
在“SQL Server Management Studio”中,展开“复制”,右键单击“本地发布”,然后单击“新建发布”。
在“新建发布向导”中,单击“ 下一步”。
在 “发布数据库 ”页上,单击 MDT DB,然后单击“ 下一步”。
在“ 发布类型 ”页上,单击“ 快照发布”,然后单击“ 下一步”。
在“ 项目 ”页上,选择“所有 表”、“存储过程”和“ 视图”,然后单击“ 下一步”。
在 “项目问题 ”页上,单击“ 下一步”。
在 “筛选表行 ”页上,单击“ 下一步”。
在“快照代理”页上,执行以下步骤:
选择“ 立即创建快照”,并保持快照可用于初始化订阅。
单击“计划快照代理以在以下时间运行。
单击“更改”。
注意
指定在数据库复制前一小时发生的计划。
单击下一个。
在“ 代理安全性 ”页上,单击运行快照代理的帐户,然后单击“ 下一步”。
在 “向导操作” 页上,单击“ 创建发布”,然后单击“ 下一步”。
在 “完成向导” 页上的 “出版物名称 ”框中,键入描述性出版物名称。
单击“ 完成” 完成向导,然后在向导创建发布后单击“ 关闭 ”。
注意
发布现在将显示在 SQL Server Management Studio 的“本地发布”节点下。
将子部署服务器订阅到已发布的 MDT DB
发布 MDT DB 后,可以将子部署服务器作为订阅服务器添加到此发布;也就是说,它们将按计划接收数据库副本,以便在部署期间,客户端计算机可以查询网络本地数据库,而不是通过 WAN。
将子部署服务器订阅到 MDT DB 发布
在“SQL Server Management Studio”中,转到“复制/本地发布”。
右键单击在上一部分创建的发布,然后单击“ 新建订阅”。
在“新建订阅向导”中,单击“ 下一步”。
在“ 发布 ”页上,单击在上一部分创建的出版物。
在“分发代理位置”页上,单击“分发服务器名称 (推送订阅) 运行所有代理”,然后单击“下一步”。
在“ 订阅服务器 ”页上,执行以下步骤添加每个子部署服务器:
单击“添加订阅服务器”,然后单击“添加SQL Server订阅服务器”。
添加每个子部署服务器。
对于添加的每个子部署服务器,在“ 订阅数据库 ”框中,单击该子部署服务器上的空 MDT DB。
注意
如果尚未创建空 MDT DB,请在“ 订阅数据库 ”框中选择选项以创建新数据库。
注意
必须为此数据库指定与主部署服务器上的 MDT DB 相同的名称。 例如,如果主部署服务器上的 MDT DB 称为 MDTDB,请在子部署服务器上创建名为 MDTDB 的空数据库。
单击下一个。
在“分发代理安全性”页上,单击“...”打开“分发代理安全性”对话框。
键入要用于分发代理的帐户的详细信息,然后单击“ 下一步”。
在 “同步计划 ”页上,执行以下步骤:
在“ 代理计划 ”框中,单击“ <定义计划>”。
指定应在主部署服务器和子部署服务器之间复制数据库的计划,然后单击“ 下一步”。
在 “初始化订阅 ”页上,单击“ 下一步”。
在 “向导操作” 页上,单击“ 创建订阅 () ”,然后单击“ 下一步”。
单击“ 完成”,并在向导成功完成后单击“ 关闭 ”。
SQL Server复制现已配置,MDT DB 将从主部署服务器复制到已定期订阅的所有子部署服务器。
配置CustomSettings.ini
LTI 部署基础结构现已成功创建,每个位置将包含一个 LTI 部署服务器,其复制副本为:
部署共享
The MDT DB
已添加到 Windows 部署服务的LiteTouchPE_x86 Windows PE 环境
现在,你可以配置部署共享的 CustomSettings.ini 文件,以使用部署内容 (部署共享和数据库) 从其本地部署服务器(通过 Windows 部署服务提供 LiteTouchPE_x86.wim 环境的服务器)。
从 Windows 部署服务传递 LiteTouchPE_x86.wim 文件时,将使用的 Windows 部署服务服务器的名称配置注册表项。 MDT 在可用于配置CustomSettings.ini的变量 (%WDSServer%) 中捕获此服务器名称。
始终使用本地 LTI 部署服务器
注意
以下过程假定已创建部署共享并将其设置为 Deployment$ 共享。
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share (其中 ,deployment_share 是要配置) 的部署共享的名称。
在操作窗格中,单击“属性”。
单击“ 规则 ”选项卡,然后修改CustomSettings.ini文件以配置以下属性:
对于添加的每个SQL Server部分,将 SQLServer 配置为使用服务器名称 %WDSServer%,例如 SQLServer=%WDSServer%。
如果配置 DeployRoot,请将 DeployRoot 配置为使用 %WDSServer% 变量,例如 DeployRoot=\\%WDSServer%\Deployment$。
单击 “编辑Bootstrap.ini。
通过将 DeployRoot 值添加到 DeployRoot=\\%WDSServer%\Deployment$,将BootStrap.ini配置为使用 %WDSServer% 属性。
单击“ 文件”,然后单击“ 保存” 以保存对BootStrap.ini文件的更改。
单击“确定”。
需要更新部署共享和 LiteTouchPE_x86.wim Windows PE 环境。
在“操作”窗格中,单击“ 更新部署共享”。
“更新部署共享向导”将启动。
在 “选项” 页上,选择用于更新部署共享的所需选项,然后单击“ 下一步”。
在 “摘要 ”页上,验证详细信息是否正确,然后单击“ 下一步”。
在“确认”页上,单击“完成”。
以下示例演示执行本节中所述步骤后CustomSettings.ini。
为可缩放 LTI 部署基础结构配置的示例CustomSettings.ini
[Settings]
Priority=CSettings,CPackages, CApps, CAdmins, CRoles, Default
Properties=MyCustomProperty
[Default]
OSInstall=Y
ScanStateArgs=/v:5 /o /c
LoadStateArgs=/v:5 /c /lac
[CSettings]
SQLServer=%WDSServer%
Instance=
Database=MDTDB
Netlib=DBNMPNTW
SQLShare=
Table=ComputerSettings
Parameters=UUID, AssetTag, SerialNumber, MacAddress
ParameterCondition=OR
[CPackages]
SQLServer=%WDSServer%
Database=MDTDB
Netlib=DBNMPNTW
SQLShare=
Table=ComputerPackages
Parameters=UUID, AssetTag, SerialNumber, MacAddress
ParameterCondition=OR
Order=Sequence
[CApps]
SQLServer=%WDSServer%
Database=MDTDB
Netlib=DBNMPNTW
SQLShare=
Table=ComputerApplications
Parameters=UUID, AssetTag, SerialNumber, MacAddress
ParameterCondition=OR
Order=Sequence
[CAdmins]
SQLServer=%WDSServer%
Database=MDTDB
Netlib=DBNMPNTW
SQLShare=
Table=ComputerAdministrators
Parameters=UUID, AssetTag, SerialNumber, MacAddress
ParameterCondition=OR
[CRoles]
SQLServer=%WDSServer%
Database=MDTDB
Netlib=DBNMPNTW
SQLShare=
Table=ComputerRoles
Parameters=UUID, AssetTag, SerialNumber, MacAddress
ParameterCondition=OR
当存在多个服务器时选择本地 MDT 服务器
在此方案中,将使用多个 MDT 服务器来支持跨多个站点进行大量同时部署和部署。 初始化 LTI 部署时,默认行为是请求 MDT 服务器的路径以连接到并访问所需的文件以开始部署过程。
Windows 部署向导可以使用 LocalServer.xml 文件为每个位置提供已知部署服务器的选择。
通过以下方式使用 LocationServer.xml 文件:
如了解LocationServer.xml中所述,了解LocationServer.xml的用途和用法
按照创建LocationServer.xml文件中所述创建 LocationServer.xml文件
按照将 LocationServer.xml 文件添加到额外文件目录中中所述,将 LocationServer.xml 文件添加到额外文件目录
按照更新BootStrap.ini文件中所述更新 BootStrap.ini文件
按照更新部署共享中所述 更新部署共享
此方案假定在部署服务器上配置了 MDT。
了解LocationServer.xml
首先,必须了解 MDT 如何使用 LocationServer.xml。 在 LTI 期间,MDT 脚本读取并处理 BootStrap.ini 文件,以收集有关部署的初始信息。 在与部署服务器建立连接之前,就会发生这种情况。 因此, DeployRoot 属性通常用于在 BootStrap.ini 文件中指定它应与之建立连接的部署服务器。
如果BootStrap.ini文件不包含 DeployRoot 属性,则 MDT 脚本会加载向导页,以提示用户输入到部署服务器的路径。 在初始化 HTML 应用程序 (HTA) 向导页时,MDT 脚本会检查是否存在LocationServer.xml文件,并使用LocationServer.xml来显示可用的部署服务器。
了解何时使用LocationServer.xml
MDT 提供多种方法来确定在 LTI 部署期间要连接到的服务器。 用于定位部署服务器的不同方法最适合不同的方案:因此,了解何时使用LocationServer.xml非常重要。
MDT 提供了多种方法来自动发现和使用最合适的部署服务器。 下表中列出了这些方法。
方法 | 详细信息 |
---|---|
%WDSServer% | 当 MDT 服务器共同托管在 Windows 部署服务服务器上时,将使用此方法。 从 Windows 部署服务启动 LTI 部署时,会创建一个环境变量(%WDSServer%),并使用 Windows 部署服务服务器的名称填充。 DeployRoot 变量可以使用此变量自动连接到 Windows 部署服务服务器上的部署共享,例如: DeployRoot=\\%WDSServer%\Deployment$ |
基于位置的自动化 | MDT 可以在 BootStrap.ini 文件中使用基于位置的自动化来确定它应部署到的服务器。 使用 默认网关 属性来区分不同的位置;对于每个 默认网关,将指定不同的 MDT 服务器。 有关使用基于位置的自动化的详细信息,请参阅“选择应用配置设置的方法”。 |
上表中列出的每种方法都提供了一种方法来自动选择特定场景的给定位置的部署服务器。 这些方法针对特定方案,例如,当 MDT 服务器与 Windows 部署服务共同托管时。
在其他情况下,这些方法不适用,例如,如果给定位置有多个部署服务器或自动化逻辑无法 (例如,网络分段不够,无法确定位置,或者 MDT 服务器与 Windows 部署服务) 分离。
在这些方案中,LocationServer.xml 文件提供了一种灵活的方式,可以在部署时显示此信息,而无需了解服务器名称和部署共享名称。
创建LocationServer.xml文件
若要在 LTI 部署期间显示可用部署服务器的列表,请创建一个包含每个服务器详细信息的 LocationServer.xml 文件。 MDT 中没有默认LocationServer.xml文件,因此请使用以下指南创建一个文件。
创建LocationServer.xml文件以支持多个位置
创建和使用 LocationServer.xml 的最简单方法是创建LocationServer.xml文件,并为环境中的每个部署服务器添加条目, (它可以位于同一位置,也可以位于) 的不同位置。
通过为每个服务器创建一个新节,然后添加以下信息来构造 LocationServer.xml 文件:
唯一标识符
位置名称,用于显示该位置的易于识别的名称
指向该位置的 MDT 服务器的 UNC 路径
下面演示了如何使用为多个位置配置的示例LocationServer.xml文件,使用其中每个属性创建 LocationServer.xml 文件。
支持多个位置的示例LocationServer.xml文件
<?xml version="1.0" encoding="utf-8" ?>
<servers>
<QueryDefault></QueryDefault>
<server>
<serverid>1</serverid>
<friendlyname>
Contoso HQ, Seattle, USA
</friendlyname>
<UNCPath>\\STLDS01\Deployment$</UNCPath>
</server>
<server>
<serverid>2</serverid>
<friendlyname>
Contoso NYC, New York, USA
</friendlyname>
<UNCPath>\\NYCDS01\Deployment$</UNCPath>
</server>
</servers>
使用此格式,为每个位置指定不同的服务器条目,或者为单个位置内有多个服务器的情况指定不同的服务器条目,方法是在该位置为每个服务器指定不同的服务器条目,如以下示例所示。
在多个位置支持多个服务器的示例LocationServer.xml文件
<?xml version="1.0" encoding="utf-8" ?>
<servers>
<QueryDefault></QueryDefault>
<server>
<serverid>1</serverid>
<friendlyname>
Contoso HQ DS1, Seattle, USA
</friendlyname>
<UNCPath>\\STLDS01\Deployment$</UNCPath>
</server>
<server>
<serverid>2</serverid>
<friendlyname>
Contoso HQ DS2, Seattle, USA
</friendlyname>
<UNCPath>\\STLDS02\Deployment$</UNCPath>
</server>
</servers>
创建LocationServer.xml文件以在不同位置对多台服务器进行负载均衡
使用 LocationServer.xml,为每个位置条目指定多个服务器,然后执行基本负载均衡,以便在选择某个位置时,MDT 会自动从可用服务器列表中选择部署服务器。 若要提供此功能,LocationServer.xml文件支持指定加权指标。
下面演示了为位于不同位置的多个服务器配置的示例LocationServer.xml文件。
不同位置的示例LocationServer.xml文件
<?xml version="1.0" encoding="utf-8" ?>
<servers>
<QueryDefault></QueryDefault>
<server>
<serverid>1</serverid>
<friendlyname>
Contoso HQ, Seattle, USA
</friendlyname>
<Server1>\\STLDS01\Deployment$</Server1>
<Server2>\\STLDS02\Deployment$</Server2>
<Server3>\\STLDS03\Deployment$</Server3>
<Server weight="1">\\STLDS01\Deployment$</Server>
<Server weight="2">\\STLDS02\Deployment$</Server>
<Server weight="4">\\STLDS03\Deployment$</Server>
</server>
<server>
<serverid>2</serverid>
<friendlyname>
Contoso NYC, New York, USA
</friendlyname>
<UNCPath>\\NYCDS01\Deployment$</UNCPath>
</server>
</servers>
使用 <MDT 在服务器选择过程中使用的服务器权重标记指定权重> 指标。 选择服务器的可能性由以下方式计算:
服务器权重/所有服务器权重的总和
在前面的示例中,Contoso HQ 的三个服务器按 1、2 和 4 列出。 选择权重为 2 的服务器的可能性变为 7 中的 2。 因此,若要使用加权系统,请确定某个位置可用的服务器的容量,并按服务器容量相对于其他每个服务器的容量对每个服务器进行权重。
将 LocationServer.xml 文件添加到额外文件目录
创建LocationServer.xml文件后,将其添加到 LiteTouch_x86,并在 X:\Deploy\Control 文件夹中LiteTouch_x64 Windows PE 启动映像。 使用 Deployment Workbench,通过指定要在部署共享属性中添加的其他目录,将其他文件和文件夹添加到这些 Windows PE 映像。
将LocationServer.xml添加到部署共享
在根部署共享文件夹中创建名为 “额外文件” 的文件夹, (例如 D:\Production Deployment Share\Extra Files) 。
在“额外文件”文件夹中创建一个文件夹结构,用于镜像其他文件应驻留的 Windows PE 位置。
例如,LocationServer.xml文件必须位于 Windows PE 中的 \Deploy\Control 文件夹中;因此,在“额外文件”下创建相同的文件夹结构 (例如 D:\Production Deployment Share\Extra Files\Deploy\Control) 。
将LocationServer.xml复制到 deployment_share\Extra Files\Deploy\Control 文件夹 (其中 deployment_share 是部署共享) 根文件夹的完全限定路径。
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share (其中 ,deployment_share 是要配置) 的部署共享的名称。
在操作窗格中,单击“属性”。
在“ deployment_shareProperties ”对话框中 (deployment_share是部署共享) 的名称,执行以下步骤:
单击 “Windows PE 平台设置 ”选项卡, (其中平台 是要) 配置的 Windows PE 映像的体系结构。
在 “Windows PE 自定义项 ”部分的“ 要添加的额外目录 ”框中,键入 路径 (其中 路径 是“额外文件”文件夹的完全限定路径(例如,D:\Production Deployment Share\Extra Files) ),然后单击“ 确定”。
更新BootStrap.ini文件
使用 Deployment Workbench 创建部署共享时, 会自动创建 DeployRoot 属性并在 BootStrap.ini 文件中填充。 由于 LocationServer.xml 文件用于填充 DeployRoot 属性,因此必须从 BootStrap.ini 文件中删除此值。
从 BootStrap.ini中删除 DeployRoot 属性
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share (其中 ,deployment_share 是要配置) 的部署共享的名称。
在操作窗格中,单击“属性”。
在“ deployment_shareProperties ”对话框中 (deployment_share是部署 共享) 的名称,单击“ 规则 ”选项卡,然后单击“ 编辑BootStrap.ini”。
删除 DeployRoot 值 (例如 DeployRoot=\\Server\Deployment$) 。
单击“ 文件”,然后单击“ 保存” 以保存对BootStrap.ini文件的更改。
单击“ 确定” 提交更改。
更新部署共享
接下来必须更新部署共享,以生成包含LocationServer.xml文件和更新BootStrap.ini文件的新LiteTouch_x86和LiteTouch_x64启动环境。
更新部署共享
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share (其中 ,deployment_share 是要配置) 的部署共享的名称。
在“操作”窗格中,单击“ 更新部署共享”。
“更新部署共享向导”将启动。
在 “选项” 页上,选择用于更新部署共享的所需选项,然后单击“ 下一步”。
在 “摘要 ”页上,验证详细信息是否正确,然后单击“ 下一步”。
在“确认”页上,单击“完成”。
注意
更新过程完成后,将新的LiteTouch_x86和LiteTouch_x64 Windows PE 环境重新添加到 Windows 部署服务中,或将其刻录为在部署期间使用的启动媒体。
使用 Lite Touch 安装将现有计算机替换为新计算机
可以使用 MDT 将映像部署到将取代企业体系结构中现有计算机的新计算机。 当从一个操作系统升级到另一个操作系统 (新操作系统可能需要新的硬件) 或者组织需要更新、更快的计算机用于现有应用程序时,可能会出现这种情况。
将现有计算机替换为新计算机时,Microsoft建议考虑将从一台计算机迁移到另一台计算机的所有设置,例如用户帐户和用户状态数据。 此外,请务必创建恢复解决方案,以防迁移失败。
在此示例部署中,通过从 WDG-EXIST-01 捕获用户状态数据并将其保存到网络共享,将现有计算机 (WDG-EXIST-01) 替换为 CORP 域中 (WDG-NEW-02) 的新计算机。 然后,将现有映像部署到 WDG-NEW-02,最后将捕获的用户状态数据还原到 WDG-NEW-02。 将从部署服务器 (WDG-MDT-01) 执行部署。
在 MDT 中,使用标准客户端替换任务序列模板创建将执行所有必要的部署任务的任务序列。
此演示假定:
部署服务器上已安装 MDT (WDG MDT 01)
已创建并填充部署共享,包括操作系统映像、应用程序和设备驱动程序
已捕获引用计算机的映像,并将部署到新计算机 (WDG NEW 02)
已在部署服务器上创建并共享网络共享文件夹 (UserStateCapture$) , (WDG MDT 01) 具有适当的共享权限
在开始此示例之前,应存在部署共享。 有关创建部署共享的详细信息,请参阅 MDT 文档中使用 Microsoft Deployment Toolkit 中的“管理部署工作台中的部署共享”部分。
步骤 1:创建任务序列以捕获用户状态
使用“新建任务序列向导”在部署工作台的“任务序列”节点中创建 MDT 任务序列。 若要执行替换计算机部署方案的第一部分 (捕获现有计算机上的用户状态) ,请在新建任务序列向导中选择“标准客户端替换任务序列”模板。
创建任务序列以捕获“替换计算机”部署方案中的用户状态
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/ deployment_share/Task Sequences (其中 ,deployment_share 是要配置) 的部署共享的名称。
在“操作”窗格中,单击“ 新建任务序列”。
“新建任务序列向导”将启动。
使用以下信息完成“新建任务序列向导”。 除非另有指定,否则接受默认值。
在此向导页上 执行操作 常规设置 1. 在 “任务序列 ID”中,键入 “VISTA_EXIST”。
2.在 “任务序列名称”中,键入 “在现有计算机上执行替换计算机方案”。
3.单击“ 下一步”。选择模板 在 以下任务序列模板中可用。 选择要用作起点的客户端,选择“ 标准客户端替换任务序列”,然后单击“ 下一步”。 摘要 验证配置详细信息是否正确,然后单击“ 下一步”。 确认 单击“完成”。 “新建任务序列向导”完成, VISTA_EXIST 任务序列将添加到任务序列列表中。
步骤 2:创建任务序列以部署操作系统并还原用户状态
使用“新建任务序列向导”在部署工作台的“任务序列”节点中创建 MDT 任务序列。 若要执行替换计算机部署方案的第二部分 (部署操作系统,然后在现有计算机上还原用户状态) ,请在“新建任务序列向导”中选择“标准客户端任务序列”模板。
创建任务序列以在替换计算机部署方案中部署用户状态
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share/Task Sequences (其中 ,deployment_share 是要配置) 的部署共享的名称。
在“操作”窗格中,单击“ 新建任务序列”。
“新建任务序列向导”将启动。
使用以下信息完成“新建任务序列向导”。 除非另有指定,否则接受默认值。
在此向导页上 执行操作 常规设置 1. 在 “任务序列 ID”中,键入 “VISTA_NEW”。
2. 在 “任务序列名称”中,键入 “在新计算机上执行替换计算机方案”。
3.单击“ 下一步”。选择模板 在 以下任务序列模板中可用。 选择要用作起点的客户端任务序列,选择“ 标准客户端任务序列”,然后单击“ 下一步”。 选择 OS 在 中,可以使用此任务序列部署以下操作系统映像。 选择要使用的 captured_vista_image (, 其中 captured_vista_image 是引用计算机添加到 Deployment Workbench) “操作系统”节点的捕获映像,然后单击“ 下一步”。 指定产品密钥 选择“ 此时不指定产品密钥”,然后单击“ 下一步”。 OS 设置 1. 在 “全名”中,键入 “Woodgrove Employee”。
2. 在 “组织”中,键入 Woodgrove Bank。
3. 在 Internet Explorer 主页中,键入 http://www.woodgrovebank.com。
4.单击“ 下一步”。管理员密码 在“管理员密码”和“请确认管理员密码”中,键入P@ssw0rd,然后单击“完成”。 确认 单击“完成”。 “新建任务序列向导”完成, VISTA_NEW 任务序列将添加到任务序列列表中。
步骤 3:自定义 MDT 配置文件
创建 MDT 任务序列后,自定义提供用于捕获用户状态信息的配置设置的 MDT 配置文件。 具体而言,通过在部署过程中之前创建的部署共享的属性中修改文件来自定义 CustomSettings.ini 文件。 在后面的步骤中,将更新部署共享,以确保在部署共享中更新配置文件。
自定义 MDT 配置文件以捕获用户状态信息
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share (其中 ,deployment_share 是要配置) 的部署共享的名称。
在操作窗格中,单击“属性”。
将显示“属性”对话框。
在“ 属性 ”对话框中,单击“ 规则 ”选项卡。
在“ 规则 ”选项卡上,修改 CustomSettings.ini 文件以反映必要的更改,如以下示例所示。 进行环境所需的任何其他修改。
自定义CustomSettings.ini文件
[Settings] Priority=Default Properties=MyCustomProperty [Default] OSInstall=Y UDShare=\\WDG-MDT-01\UserStateCapture$ UDDir=%OSDCOMPUTERNAME% UserDataLocation=NETWORK SkipCapture=NO SkipAdminPassword=YES SkipProductKey=YES
在“属性”对话框中,单击“确定”。
关闭所有打开的窗口和对话框。
步骤 4:为部署共享配置 Windows PE 选项
在 Deployment Workbench 的“部署共享”节点中为部署共享配置 Windows PE 选项。
注意
如果现有计算机的设备驱动程序 (WDG-EXIST-01) 且新计算机 (WDG-NEW-01) 包含在 Windows Vista 中,请跳过此步骤并继续执行以下步骤。
配置部署共享的 Windows PE 选项
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share (其中 ,deployment_share 是要配置) 的部署共享的名称。
在操作窗格中,单击“属性”。
将显示“属性”对话框。
在“ 属性 ”对话框中的“ Windows PE 平台 组件 ”选项卡上, (平台 是要配置) 的 Windows PE 映像的体系结构,在“ 选择配置文件”中选择“ device_drivers (,其中device_drivers 是设备驱动程序选择配置文件) 的名称,然后单击” 确定”。
步骤 5:更新部署共享
为部署共享配置 Windows PE 选项后,更新部署共享。 更新部署共享会更新所有 MDT 配置文件并生成自定义版本的 Windows PE。 自定义版本的 Windows PE 用于启动引用计算机并启动 LTI 部署过程。
更新 Deployment Workbench 中的部署共享
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share (其中 ,deployment_share 是要配置) 的部署共享的名称。
在“操作”窗格中,单击“ 更新部署”“共享”。
“更新部署共享向导”将启动。
在 “选项” 页上,选择用于更新部署共享的所需选项,然后单击“ 下一步”。
在 “摘要 ”页上,验证详细信息是否正确,然后单击“ 下一步”。
在“确认”页上,单击“完成”。
部署工作台开始更新部署共享。 Deployment Workbench 为 32 位目标计算机创建 LiteTouchPE_x86.iso 和 LiteTouchPE_x86.wim 文件 () 或 LiteTouchPE_x64.iso 和 LiteTouchPE_x64.wim 文件, (64 位目标计算机) deployment_share\Boot 文件夹中 (deployment_share 是用作部署共享) 的共享文件夹。
步骤 6:创建 LTI 可启动媒体
提供一种方法,用于使用更新部署共享时创建的自定义版本的 Windows PE 启动计算机。 Deployment Workbench 为 32 位目标计算机创建 LiteTouchPE_x86.iso 和 LiteTouchPE_x86.wim 文件 () 或 LiteTouchPE_x64.iso 和 LiteTouchPE_x64.wim 文件, (64 位目标计算机) deployment_share\Boot 文件夹中 (deployment_share 是用作部署共享) 的共享文件夹。 从其中一个映像创建相应的 LTI 可启动媒体。
创建 LTI 可启动媒体
在 Windows 资源管理器中,导航到 deployment_share\Boot 文件夹 (其中 deployment_share 是用作部署共享) 的共享文件夹。
根据现有计算机 (WDG-EXIST-01) 和新计算机 (WDG-NEW-02) 所使用的计算机类型,执行以下任务之一:
如果引用计算机是物理计算机,请创建 ISO 文件的 CD 或 DVD。
如果引用计算机是 VM,请直接从 ISO 文件或 ISO 文件的 CD 或 DVD 启动 VM。
步骤 7:使用 LTI 可启动媒体启动现有计算机
使用进程前面创建的 LTI 可启动媒体启动现有计算机 (WDG-EXIST-01) 。 此 CD 在现有计算机上启动 Windows PE 并启动 MDT 部署过程。 在 MDT 部署过程结束时,用户状态迁移信息存储在 UserStateCapture$ 共享文件夹中。
注意
还可以通过从 Windows 部署服务启动目标计算机来启动 MDT 进程。 有关详细信息,请参阅 MDT 文档中使用 Microsoft Deployment Toolkit 中的“准备 Windows 部署服务”部分。
使用 LTI 可启动媒体启动现有计算机
使用进程前面创建的 LTI 可启动媒体启动 WDG-EXIST-01。
Windows PE 启动,然后启动 Windows 部署向导。
使用以下信息完成 Windows 部署向导。 除非另有指定,否则接受默认值。
在此向导页上 执行操作 欢迎使用部署 单击“ 运行部署向导” 以安装新的操作系统,然后单击“ 下一步”。 指定用于连接到网络共享的凭据。 1. 在 “用户名”中,键入 “管理员”。
2. 在 “密码”中,键入 “P@ssw0rd”。
3.在 “域”中,键入 “CORP”。
4.单击“ 确定”。选择要在此计算机上执行的任务序列。 单击“ 在现有计算机上执行替换计算机方案”,然后单击“ 下一步”。 指定保存数据和设置的位置 单击下一个。 指定保存完整计算机备份的位置 单击“ 不备份现有计算机”,然后单击“ 下一步”。 准备开始 单击“ 开始”。 如果发生任何错误或警告,请参阅 MDT 文档 故障排除参考。
在“ 部署摘要 ”对话框中,单击“ 详细信息”。
如果发生任何错误或警告,请查看错误或警告并记录任何诊断信息。
在“ 部署摘要 ”对话框中,单击“ 完成”。
用户状态迁移信息将捕获并存储在网络共享文件夹中, (UserStateCapture$) 在此过程中之前创建。
步骤 8:使用 LTI 可启动媒体启动新计算机
使用进程前面创建的 LTI 可启动媒体启动新计算机 (WDG-NEW-02) 。 此 CD 在引用计算机上启动 Windows PE 并启动 MDT 部署过程。 在 MDT 部署过程结束时,Windows Vista 部署在新计算机上,捕获的用户状态迁移信息将还原到新计算机。
注意
还可以通过从 Windows 部署服务启动目标计算机来启动 MDT 进程。 有关详细信息,请参阅 MDT 文档中使用 Microsoft Deployment Toolkit 中的“准备 Windows 部署服务”部分。
使用 LTI 可启动媒体启动新计算机
使用进程前面创建的 LTI 可启动媒体启动 WDG-NEW-02。
Windows PE 启动,然后启动 Windows 部署向导。
使用以下信息完成 Windows 部署向导。 除非另有指定,否则接受默认值。
在此向导页上 执行操作 欢迎使用部署 单击“ 运行部署向导”以安装新的操作系统,然后单击“ 下一步”。 指定用于连接到网络共享的凭据。 1. 在 “用户名”中,键入 “管理员”。
2. 在 “密码”中,键入 “P@ssw0rd”。
3.在 “域”中,键入 “CORP”。
4.单击“ 确定”。选择要在此计算机上执行的任务序列。 单击“ 在新计算机上执行替换计算机方案”,然后单击“ 下一步”。 配置计算机名称 在 “计算机名称”中,键入 WDG-NEW-02,然后单击“ 下一步”。 将计算机加入域或工作组 单击下一个。 指定是否还原用户数据 1.单击“ 指定位置”。
2. 在 “位置”中,键入 \\WDG-MDT-01\UserStateCapture$\WDG-EXIST-01。
3.单击“ 下一步”。区域设置选择 单击下一个。 设置时区 单击下一个。 指定是否捕获图像 单击“ 不捕获此计算机的图像”,然后单击“ 下一步”。 指定 BitLocker 配置 单击“ 不为此计算机启用 BitLocker”,然后单击“ 下一步”。 准备开始 单击“ 开始”。 如果出现任何错误或警告,请参阅 MDT 文档 故障排除参考。
在“ 部署摘要 ”对话框中,单击“ 详细信息”。
如果发生任何错误或警告,请查看错误或警告并记录任何诊断信息。
在“ 部署摘要 ”对话框中,单击“ 完成”。
Windows Vista 现在安装在新计算机上,捕获的用户状态迁移信息也将还原。
将自定义部署代码集成到 MDT
部署团队通常具有特定于其目标环境的复杂要求,而 Deployment Workbench 预定义任务序列操作或默认 MDT 配置文件无法满足这些要求。 在这种情况下,请实现自定义代码以满足其要求。
通过以下方式将自定义部署代码集成到 MDT 中:
按照选择适当的脚本语言中所述选择 脚本语言
如了解如何利用 ZTIUtility 中所述利用ZTIUtility.vbs
按照集成自定义部署代码中所述集成 自定义部署代码
以下部分假定在部署服务器上配置了 MDT。
选择适当的脚本语言
尽管可以在 Windows 或 Windows PE 上运行的任何代码都可以作为应用程序安装或通过 MDT 任务序列步骤调用,但Microsoft建议使用 .vbs 或 .wsf 文件形式的脚本。
除了 ZTI 和 LTI 进程已使用的一些其他预定义函数外,使用 .wsf 文件的优点是内置日志记录。 这些函数在与 MDT 一起分发的 ZTIUtility 脚本中可用。
从自定义脚本引用时,ZTIUtility 脚本将初始化 MDT 环境和安装程序类。 这些类可用:
日志记录。 此类提供所有 MDT 脚本使用的日志记录功能。 它还为部署期间运行的每个脚本创建单个日志文件,以及所有脚本的合并日志文件。 这些日志文件以旨在由 CMTrace 读取的格式创建。
环境。 此类配置通过 WMI 和 MDT 规则处理收集的环境变量,并允许直接从脚本引用它们。 这允许读取部署属性,从而访问 ZTI 和 LTI 进程使用的所有配置信息。
实用工具。 此类提供在整个 ZTI 和 LTI 脚本中使用的常规实用工具。 Microsoft建议,每当开发自定义代码时,都应检查此类,以查看是否可以简单地重用任何代码。 本节稍后将介绍有关此类中提供的一些功能的其他信息。
数据库。 此类执行连接到数据库和从数据库读取信息等功能。 通常,不建议直接访问数据库类:相反,应使用规则处理来执行数据库查找。
字符串。 此类执行常见的字符串处理例程,例如创建带分隔符的项列表、显示十六进制值、剪裁字符串中的空格、右对齐字符串、向左对齐字符串、强制将值设置为字符串格式、强制将值设置为数组格式、生成随机全局唯一标识符 (GUID) ,以及 Base64 转换。
FileHandling。 此类执行规范化路径以及复制、移动和删除文件和文件夹等功能。
clsRegEx。 此类执行正则表达式函数。
在 MDT 中,对脚本体系结构进行了一些更改,使客户端Microsoft Visual Basic Scripting Edition (VBScript) 更可靠。 这些更改包括:
ZTIUtility.vbs (主脚本库) 的广泛更改,包括新的 API 和更好的错误处理
ZTI_xxx.wsf 脚本的整体结构的新外观
MDT 脚本的整体结构也发生了变化。 大多数 MDT 脚本现在封装在 VBScript 类 对象中。 类是使用 RunNewInstance 函数初始化和调用的。
注意
大多数现有的 MDT 2008 Update 1 脚本都将在 MDT 中按原样工作,即使对ZTIUtility.vbs进行了大量更改,因为大多数 MDT 脚本将包括ZTIUtility.vbs。
了解如何利用 ZTIUtility
ZTIUtility.vbs 文件包含可在自定义代码中利用的对象类。 使用 以下命令将自定义代码与 MDT 集成:
ZTIUtility.vbs中定义的日志记录类,如使用 ZTIUtility 日志记录类中所述
ZTIUtility.vbs中定义的环境类,如使用 ZTIUtility 环境类中所述
ZTIUtility.vbs中定义的实用工具类,如使用 ZTIUtility 实用工具类中所述
使用 ZTIUtility Logging 类
ZTIUtiliy.vbs 中的日志记录类为自定义代码提供了一种简单机制,用于在 ZTI 或 LTI 部署期间以与其他脚本相同的方式记录状态信息、警告和错误。 这种标准化还可确保 LTI 部署摘要 对话框正确报告运行的任何自定义代码的状态。
下面演示了一个示例自定义代码脚本,该脚本使用 oLogging.CreateEntry 和 TestAndFail 函数记录不同类型的消息,具体取决于各种脚本操作的结果。
使用 ZTIUtility 日志记录的示例脚本:ZTI_Example.wsf
<job id="ZTI_Example">
<script language="VBScript" src="ZTIUtility.vbs"/>
<script language="VBScript">
' //*******************************************************
' //
' // Copyright (c) Microsoft Corporation. All rights reserved
' // Microsoft Deployment Toolkit Solution Accelerator
' // File: ZTI_Example.wsf
' //
' // Purpose: Example of scripting with the
' // Microsoft Deployment Toolkit.
' //
' // Usage: cscript ZTI_Example.wsf [/debug:true]
' //
' //*******************************************************
Option Explicit
RunNewInstance
'//--------------------------------------------------------
'// Main Class
'//--------------------------------------------------------
Class ZTI_Example
'//--------------------------------------------------------
'// Main routine
'//--------------------------------------------------------
Function Main()
Dim iRetVal
Dim sScriptPath
iRetVal = SUCCESS
oLogging.CreateEntry "Begin example script...", _
LogTypeInfo
' %ServerA% is a generic variable available within
' every CustomSettings.ini file.
sScriptPath = "\\" & oEnvironment.Item("ServerA") & _
"\public\products\Applications\User\Technet\USEnglish"
' Validate a connection to server, net connect with
' credentials if necessary.
iRetVal = oUtility.ValidateConnection( sScriptPath )
TestAndFail iRetVal, 9991, "Validate Connection to [" & _
sScriptPath & "]"
'Run Setup Program
iRetVal = oUtility.RunWithHeartbeat( """" & _
sScriptPath & "\setup.exe"" /?" )
TestAndFail iRetVal, 9991, "RunWithHeartbeat [" & _
sScriptPath & "]"
'Perform any cleanup from installation process
oShell.RegWrite "HKLM\Software\Microsoft\SomeValue", _
"Done with Execution of XXX.", "REG_SZ"
Main = iRetVal
End Function
End Class
</script>
</job>
注意
如果想要继续使用使用 ProcessResults () 调用 ZTIProcess () 的脚本,可以继续执行此操作。 但是,某些增强的错误处理功能将不会启用。
使用 ZTIUtility 环境类
ZTIUtiliy.vbs 中的环境类提供对 MDT 属性的访问和更新功能。 在前面的示例中, oEnvironment.Item (“Memory”) 用于检索可用 RAM 的数量;这还可用于检索 MDT 文档 工具包参考中所述的任何属性的值。
使用 ZTIUtility 实用工具类
ZTIUtility.vbs脚本包含许多常用实用工具,任何自定义部署脚本都可以使用。 可以采用与 oLogging 和 oEnvironment 类相同的方式将这些实用工具添加到任何脚本。
下表详细介绍了一些可用的有用函数及其输出。 有关可用函数的完整列表,请参阅 ZTIUtility.vbs 文件。
函数 | "输出" |
---|---|
oUtility.LocalRootPath | 返回目标计算机上部署进程使用的根文件夹的路径,例如 C:\MININT |
oUtility.BootDevice | 返回系统启动设备,例如 MULTI (0) DISK (0) RDISK (0) PARTITION (1) |
oUtility.LogPath | 返回部署期间使用的 logs 文件夹的路径,例如 C:\MININT\SMSOSD\OSDLOGS |
oUtility.StatePath | 返回当前配置的状态存储的路径,例如 C:\MININT\StateStore |
oUtility.ScriptName | 返回调用函数的脚本的名称,例如 Z-RAMTest |
oUtility.ScriptDir | 返回调用函数的脚本的路径,例如,\\server_name\Deployment$\Scripts |
oUtility.ComputerName | 确定将在生成过程中使用的计算机名称,例如,computer_name |
oUtility.ReadIni (文件、节、项) | 允许从.ini文件读取指定项 |
oUtility.WriteIni (文件、节、项、值) | 允许将指定的项写入.ini文件 |
oUtility.Sections (文件) | 读取.ini文件的节,并将其存储在 对象中以供参考 |
oUtility.SectionContents (file, section) | 读取指定.ini文件的内容并将其存储在 对象中 |
oUtility.RunWithHeartbeat (sCmd) | 运行命令时,每 0.5 秒将检测信号信息写入日志 |
oUtility.FindFile (sFilename,sFoundPath) |
在 DeployRoot 文件夹和标准子文件夹中搜索指定文件,包括服务、工具、USMT、模板、脚本和控制 |
oUtility.findMappedDrive (sServerUNC) | 检查驱动器是否已映射到指定的 UNC 路径并返回驱动器号 |
oUtility.ValidateConnection (sServerUNC) | 检查是否存在与指定的服务器的现有连接,如果没有,则尝试创建一个 |
MapNetworkDrive (sShare、SDomID、sDomPwd) |
将驱动器号映射到指定为共享的 UNC 路径,并返回使用的驱动器号;如果失败,则返回错误 |
VerifyPathExists (strPath) | 验证指定的路径是否存在 |
oEnvironment.Substitute (sVal) | 给定一个字符串,展开该字符串中的任何变量或函数 |
oEnvironment.Item (sName) |
将变量读取或写入持久性存储区 |
oEnvironment.Exists (sName) |
测试变量是否存在 |
oEnvironment.ListItem (sName) |
将 类型数组 的变量读取或写入持久性存储区 |
oLogging.ReportFailure (sMessage、iError) |
用于在检测到不可恢复的错误时执行结构化退出 |
oLogging.CreateEvent (iEventID、iType、sMessage、arrParms) |
将消息写入日志文件,并将事件发布到定义的服务器 |
oLogging.CreateEntry (sLogMsg、iType) |
将消息写入日志文件 |
TestAndFail (iRc、iError、sMessage) | 如果 iRc 为 false 或失败,则使用 iError 退出脚本 |
TestAndLog (iRc 、sMessage) | 仅当 iRc 为 false 或失败时才记录警告 |
集成自定义部署代码
自定义部署代码可以通过多种方式集成到 MDT 流程中:但是,无论使用哪种方法,都应满足以下两个规则:
自定义部署代码脚本名称应始终以字母 Z 开头。
自定义部署代码应放置在部署共享上的 Scripts 文件夹中,例如 D:\Production Deployment Share\Scripts。
用于集成自定义代码的最常用方法,这些方法也可确保一致的日志记录:
将代码部署为 MDT 应用程序
将代码作为 MDT 任务序列命令启动
以用户退出脚本的形式启动代码
将自定义代码部署为 MDT 应用程序
自定义部署代码可以导入到 Deployment Workbench 中,并采用与任何其他应用程序相同的方式进行管理。
创建新应用程序以运行自定义部署代码
将自定义部署代码复制到 deployment_share\Scripts 文件夹 (,其中 deployment_share 是部署共享) 的完全限定路径。
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到部署共享/deployment_share/应用程序 (其中 deployment_share 是要配置) 的部署共享的名称。
在“操作”窗格中,单击“ 新建应用程序”。
“新建应用程序向导”将启动。
使用以下信息完成“新建应用程序向导”。 除非另行指定,否则接受默认值。
在此向导页上 执行操作 应用程序类型 单击“ 没有源文件的应用程序”或网络上的其他位置,然后单击“ 下一步”。 详细信息 根据应用程序中的信息完成此页面,然后单击“ 下一步”。 命令详细信息 1. 在“ 命令行 ”框中,键入 cscript.exe %SCRIPTROOT%\custom_code (其中 ,custom_code 是) 开发的自定义代码的名称。
2. 在“ 工作目录 ”框中,键入 working_directory (,其中working_directory是自定义代码的工作目录的名称;这通常是) 命令行框中指定的 同一文件夹。
3.单击“ 下一步”。摘要 验证配置设置是否正确,然后单击“ 下一步”。 确认 单击“完成”。 该应用程序显示在 Deployment Workbench 的“应用程序”节点中。
将自定义代码添加为任务序列步骤
可以从任务序列中的任何点直接调用自定义部署代码;这允许访问常用的任务序列规则和选项。
将自定义部署代码添加到现有任务序列
将自定义部署代码复制到 deployment_share\Scripts 文件夹 (,其中 deployment_share 是部署共享) 的完全限定路径。
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share/Task Sequences (其中 ,deployment_share 是要配置) 的部署共享的名称。
在详细信息窗格中,单击“ task_sequence (,其中 task_sequence 是运行自定义代码) 的任务序列的名称。
在操作窗格中,单击“属性”。
在 “task_sequenceProperties ”对话框中,单击“ 任务序列 ”选项卡。
在控制台树中,转到 组 (其中 组 是添加任务序列步骤) 的组。
依次单击“ 添加”、“ 常规”和“ 运行命令行”。
在控制台树中,单击“ 运行命令行”,然后单击“ 属性 ”选项卡。
在“ 名称 ”框中,键入 名称 (其中 name 是自定义代码) 的描述性名称。
在“ 属性 ”选项卡上的“ 命令行 ”框中,键入 command_line (其中 command_line 是运行自定义代码的命令,例如, cscript.exe %SCRIPTROOT%\CustomCode.vbs) 。
在“ 开始 时间”框中,键入 路径 (其中 path 是自定义代码的工作文件夹的完全限定路径;通常,此路径与“ 命令行 ”框中) 中指定的路径相同,然后单击“ 确定”。
新创建的任务序列步骤显示在任务序列步骤列表中。
以用户退出脚本的形式运行自定义代码
还可以使用 UserExit 指令从 CustomSettings.ini以用户退出脚本的形式运行自定义代码。 这提供了一种机制,用于将信息传递到CustomSettings.ini规则验证过程,并提供 MDT 属性的动态更新
有关用户退出脚本和 UserExit 指令的详细信息,请参阅 MDT 文档使用 Microsoft 部署工具包中的“CustomSettings.ini文件中的用户退出脚本”部分。
使用各种安装方法安装设备驱动程序
在此方案中,使用 MDT 将操作系统部署到不同类型的硬件。 在部署过程中,确定并安装设备驱动程序,以便每种硬件类型都能正常运行。 设备驱动程序主要有两种类型:在部署过程中,必须以不同的方式处理每个操作:
包含可用于将设备驱动程序导入 Deployment Workbench 的 .inf 文件的设备驱动程序
打包为应用程序且必须作为应用程序安装的设备驱动程序
使用 MDT,可以在操作系统部署过程中处理这两种类型的驱动程序。
通过以下方式安装设备驱动程序:
确定安装每个设备驱动程序的方法,如确定使用哪种方法来安装设备驱动程序中所述
使用现成的驱动程序方法,如 使用现成驱动程序方法安装设备驱动程序中所述
将它们作为应用程序安装,如将设备驱动程序安装为应用程序中所述
此方案假定 MDT 在部署服务器上运行。
确定使用哪种方法来安装设备驱动程序
硬件制造商以以下两种形式之一发布设备驱动程序:
作为可以提取的包,其中包含用于将驱动程序导入 Deployment Workbench 的 .inf 文件
作为必须使用传统应用程序安装过程进行安装的应用程序
可以提取以访问 .inf 文件的设备驱动程序包可以通过先将驱动程序导入 Deployment Workbench 中的“现成驱动程序”节点来使用 MDT 自动驱动程序检测和安装过程。
如果设备驱动程序包无法提取以隔离 .inf 文件,或者如果不先使用应用程序安装程序(如 MSI 或 Setup.exe 文件)进行安装,则无法正常工作的设备驱动程序包可以使用 MDT 安装应用程序功能,并在部署过程中安装设备驱动程序,就像安装任何普通应用程序一样。
使用现装驱动程序方法安装设备驱动程序
可以将包含 .inf 文件的设备驱动程序包导入 Deployment Workbench,并在部署过程中自动安装它们。 若要实现这种类型的设备驱动程序部署,请先将设备驱动程序添加到 Deployment Workbench。
将设备驱动程序添加到 Deployment Workbench
下载要部署的硬件类型所需的设备驱动程序,并将设备驱动程序包提取到临时位置。
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到部署工作台/部署共享/deployment_share/现装驱动程序 (其中 ,deployment_share 是要配置) 的部署共享的名称。
在“操作”窗格中,单击“ 导入驱动程序”。
导入设备驱动程序向导启动。
在 “指定目录” 页上的“ 驱动器源 目录”部分中,单击“ 浏览 ”转到包含新设备驱动程序的文件夹,然后单击“ 下一步”。
注意
“新建设备驱动程序向导”将搜索驱动程序源目录的所有子目录;因此,如果要安装多个驱动程序,请将它们提取到同一根目录中的文件夹中,然后将驱动程序源目录设置为保存所有驱动程序源文件夹的根目录。
在 “摘要 ”页上,验证设置是否正确,然后单击“ 下一步 ”将驱动程序导入部署工作台。
在“确认”页上,单击“完成”。
如果设备驱动程序包含启动关键驱动程序(如大容量存储或网络类驱动程序),则接下来必须更新部署共享以生成新的LiteTouch_x86,并LiteTouch_x64包含新驱动程序的启动环境。
将设备驱动程序添加到 Lite Touch Windows PE 映像
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share (其中 ,deployment_share 是要配置) 的部署共享的名称。
在“操作”窗格中,单击“ 更新部署共享”。
“更新部署共享向导”将启动。
在 “选项” 页上,选择用于更新部署共享的所需选项,然后单击“ 下一步”。
在 “摘要 ”页上,验证详细信息是否正确,然后单击“ 下一步”。
在“确认”页上,单击“完成”。
将设备驱动程序安装为应用程序
除驱动程序文件外,打包为应用程序且无法提取到包含 .inf 文件的文件夹的设备驱动程序应作为应用程序添加到 Deployment Workbench,以便在部署过程中进行安装。
应用程序可以指定为任务序列步骤,也可以在CustomSettings.ini中指定;但是,仅当任务序列在具有设备的计算机上运行时,才应安装设备驱动程序应用程序。 若要确保这一点,请运行任务序列步骤,以将相关设备驱动程序应用程序部署为条件任务序列步骤。 可以使用目标计算机上的设备的 WMI 查询来指定条件条件以运行任务序列步骤。
将设备驱动程序应用程序添加到部署工作台
必须首先将每个设备驱动程序应用程序导入到 Deployment Workbench 中。
注意
通过选中或清除“在部署向导中隐藏此应用程序”复选框,配置应用程序是否应在部署过程中在任何应用程序的“属性”对话框中可见。 对部署期间使用的每个设备驱动程序应用程序重复此过程。
将设备驱动程序应用程序添加到 Deployment Workbench
下载设备驱动程序应用程序,并将其保存到临时位置。
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share/Applications (其中 deployment_share 是要配置) 的部署共享的名称。
在“操作”窗格中,单击“ 新建应用程序”。
“新建应用程序向导”将启动。
在“ 应用程序类型” 页上,单击“ 包含源文件的应用程序”,然后单击“ 下一步”。
在 “详细信息 ”页上,键入有关应用程序的相关详细信息,然后单击“ 下一步”。
在 “源 ”页上 的“源目录 ”部分中,单击“ 浏览 ”转到,然后单击包含设备驱动程序应用程序源文件的目录。 单击“确定”。
单击下一个。
在“ 目标 ”页上,键入目标目录的名称,然后单击“ 下一步”。
在 “命令详细信息” 页上的“ 命令行 ”部分中,键入允许无提示安装设备驱动程序应用程序的命令。
在 “摘要 ”页上,验证设置是否正确,然后单击“ 下一步 ”将设备驱动程序应用程序导入部署工作台。
在“确认”页上,单击“完成”。
将应用程序导入到 Deployment Workbench 后,使用适当的逻辑将它们添加到部署过程,以确保应用程序仅在正确的硬件上运行时才安装。 可通过不同的方法实现此目标:
将设备驱动程序应用程序指定为部署任务序列的一部分。
在 CustomSettings.ini 中指定设备驱动程序应用程序。
在 MDT DB 中指定设备驱动程序应用程序。
以下各节将更详细地讨论每种方法。
将设备驱动程序应用程序指定为任务序列的一部分
将设备驱动程序应用程序添加到部署过程的第一种方法是使用任务序列为每个设备驱动程序应用程序添加步骤。
在任务序列中管理设备驱动程序应用程序有两种主要方法:
为每个硬件模型创建新的任务序列组,然后添加查询以在计算机与特定硬件类型匹配时运行该组操作。
为特定于硬件的应用程序创建任务序列组,然后为每个任务序列操作添加查询,以便针对硬件类型评估每个任务序列步骤,并且仅在找到匹配项时才运行。
为每种类型的硬件创建新的任务序列组
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share/Task Sequences (其中 ,deployment_share 是要配置) 的部署共享的名称。
在详细信息窗格中,单击“ task_sequence (,其中task_sequence 是安装设备驱动程序应用程序) 所需的部署任务序列。
在操作窗格中,单击“属性”。
在“task_sequenceProperties”对话框中的“任务序列”选项卡上的详细信息窗格中,转到“状态还原/Windows 更新 (预应用程序安装) ”。
在“ 任务序列 ”选项卡上,单击“ 添加”,然后单击“ 新建组”。
这会在任务序列中创建一个新的任务序列组。 使用此新的任务序列组创建安装特定于硬件的设备驱动程序应用程序的步骤。
在详细信息窗格中,单击“ 新建组”。
在“ 属性 ”选项卡上的“ 名称 ”框中,键入 group_name (,其中 group_name 是组的名称;例如 ,硬件特定应用程序 - Dell Computer Corporation) 。
在 “选项 ”选项卡上,单击“ 添加”,然后单击“ 查询 WMI”。
在“ 任务序列 WMI 条件 ”对话框中,键入以下详细信息:
在 “WMI 命名空间 ”框中,键入 root\cimv2。
在 WQL 查询 框中,使用 Win32_ComputerSystem 类键入 WMI 查询语言 (WQL) 查询,以确保仅针对特定应用程序类型安装应用程序,例如:
选择*from Win32_ComputerSystem WHERE Model LIKE %hardware_model% and Manufacturer LIKE %hardware_manufacturer%
在此示例中, hardware_model 是计算机型号 (的名称,例如 Latitude D620) , hardware_manufacturer 是计算机的名称, (如 Dell Corporation) 。
符号 % 是包含在名称中的通配符,以允许管理员返回包含为 hardware_model 或 hardware_manufacturer指定的值的任何计算机模型或制造商。
有关 WMI 和 WQL 查询的详细信息,请参阅 MDT 文档中的“将 WMI 查询添加到任务序列步骤条件”部分,请参阅使用Microsoft部署工具包进行查询。
单击“ 确定 ”提交查询,然后单击“ 确定 ”以提交对任务序列的更改。
注意
必须对要安装的每个设备驱动程序应用程序的每种硬件类型重复此过程。
创建特定于硬件的任务序列组后,可将设备驱动程序应用程序添加到每个组。
将设备驱动程序应用程序添加到特定于硬件的任务序列组
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share/Task Sequences (其中 ,deployment_share 是要配置) 的部署共享的名称。
在详细信息窗格中,单击“ task_sequence (,其中task_sequence 是安装设备驱动程序应用程序) 所需的部署任务序列。
在操作窗格中,单击“属性”。
在 “task_sequenceProperties ”对话框中,单击“ 任务序列 ”选项卡。
在详细信息窗格中,转到“状态还原/hardware_specific_group (其中 hardware_specific_group 是硬件特定组的名称,将在其中添加任务序列步骤以) 安装设备驱动程序应用程序。
在“ 任务序列 ”选项卡上,依次单击“ 添加”、“ 常规”和“ 安装应用程序”。
详细信息窗格中将显示 “安装应用程序 ”任务序列步骤。
在详细信息窗格中,单击“ 安装应用程序”。
在“ 属性 ”选项卡上,单击“ 安装单个应用程序”,然后在“ 要安装的应用程序 ”列表中选择“ hardware_application (,其中hardware_application 是用于安装特定于硬件的应用程序) 。
注意
对于部署过程中需要使用的每个设备驱动程序应用程序,必须重复此过程。
在 CustomSettings.ini 中指定设备驱动程序应用程序
LTI 或 ZTI 部署开始时,首先要完成的操作之一是处理BootStrap.ini和CustomSettings.ini控制文件。 这两个文件都包含可用于动态自定义部署的规则。
由于 MDT 处理CustomSettings.ini文件的方式,你可以使用它根据特定条件添加应用程序。 此逻辑将用于在部署期间基于特定硬件类型添加特定于设备驱动程序的应用程序。 应用程序在 CustomSettings.ini中由位于部署共享的 Applications.xml 文件中的应用程序 GUID 引用。
查找导入应用程序的 GUID
在部署服务器的部署共享中,打开 Control 文件夹,例如 D:\Production Deployment Share\Control。
找到并打开Applications.xml文件。
找到所需的应用程序。
通过查找包含在应用程序标记中的行来查找应用程序
<guid>
GUID,例如<application guid={c303fa6e-3a4d-425e-8102-77db9310e4d0}>
。作为初始化过程的一部分,LTI 和 ZTI 进程都收集有关运行它的计算机的信息。 在此过程中,将执行 WMI 查询,并且制造商和制造商 的 Win32_ComputerSystem 类中的值分别填充为变量 %Make% 和 %Model %。
这些值可以在处理CustomSettings.ini文件时使用,以动态读取文件的部分,具体取决于检测到的制造和型号。 以下示例显示了 CustomSettings.ini 文件的示例。
为Hardware-Specific应用程序安装配置的示例CustomSettings.ini
[Settings]
Priority=Make, Default
Properties=MyCustomProperty
[Default]
OSInstall=Y
[Dell Computer Corporation]
Subsection=Dell-%Model%
[Dell-Latitude D620]
MandatoryApplications001={1D7DF331-47B7-472C-87B3-442597EC2F7D}
[Dell-Latitude D610]
MandatoryApplications001={c303fa6e-3a4d-425e-8102-77db9310e4d0}
使用以下属性在 CustomSettings.ini 中指定应用程序:
应用程序。 当部署管理员不希望通过在 CustomSettings.ini 中指定 SkipApplications=YES 来显示应用程序向导作为部署过程的一部分时,可以使用此属性。
MandatoryApplications。 如果部署管理员希望在部署期间显示应用程序向导,以允许部署工程师选择要在部署期间安装的其他应用程序,则可以使用此属性。
如果在不使用 MandatoryApplications 属性的情况下使用应用程序向导, (例如 SkipApplications=NO) ,它将覆盖 由 Applications 属性指定的应用程序。
前面的示例演示如何使用 %Make% 和 %Model% 变量值来动态操作应用程序列表的生成方式。 可以使用以下方法之一查找每种类型的硬件的制造和型号的值:
系统信息工具。 使用此工具中的“系统摘要”节点标识 系统制造商 (使) 和 系统模型 (模型) 。
Windows PowerShell。 使用 Get-WMIObject –class Win32_ComputerSystem cmdlet 确定计算机的制造和型号。
Windows Management Instrumentation 命令行。 使用 CSProduct Get Name, Vendor 返回名称 (模型) 和供应商 () 计算机的名称。
修改CustomSettings.ini以添加特定于硬件的逻辑
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share (其中 ,deployment_share 是要配置) 的部署共享的名称。
在操作窗格中,单击“属性”。
单击“ 规则 ”选项卡。
在此选项卡上键入的信息存储在 CustomSettings.ini 文件中。 修改CustomSettings.ini文件条目,以便为每个具有特定于设备驱动程序的应用程序的硬件模型添加逻辑,如 将设备驱动程序应用程序指定为任务序列的一部分中所述。
单击“ 确定” 提交更改。
在详细信息窗格中,单击“ deployment_share (,其中 deployment_share 是要配置) 的部署共享的名称。
在“操作”窗格中,单击“ 更新部署共享”。
“更新部署共享向导”将启动。
在 “选项” 页上,选择用于更新部署共享的所需选项,然后单击“ 下一步”。
在 “摘要 ”页上,验证详细信息是否正确,然后单击“ 下一步”。
在“确认”页上,单击“完成”。
默认情况下,在 LTI 部署期间,所有可用的应用程序都显示在 Windows 部署向导中。 由于特定于设备驱动程序的应用程序仅适用于特定硬件类型,因此你可能不希望它们一直显示。 通过在 CustomSettings.ini 中指定特定于设备驱动程序的应用程序包,可以使用应用程序配置中的 “在部署向导中隐藏应用程序 ”选项隐藏应用程序。
在部署向导中隐藏应用程序
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share/Applications (其中 deployment_share 是要配置) 的部署共享的名称。
在详细信息窗格中 ,单击device_driver_application (其中device_driver_application 是要从部署向导) 隐藏的应用程序。
在操作窗格中,单击“属性”。
在“ 常规 ”选项卡上,选中“ 在部署向导中隐藏应用程序 ”复选框。
单击“ 应用”,然后关闭“ 属性 ”对话框。
在 MDT DB 中指定设备驱动程序应用程序
MDT DB 是 CustomSettings.ini 文件的数据库版本,可在部署时查询在部署期间使用的信息。 有关使用 MDT DB 的详细信息,请参阅“选择应用配置设置的方法”。
在部署时查询 MDT DB 时,有三种方法可用于标识目标计算机:
使用 MAC 地址、资产标记或类似) 搜索单个计算机 (。
使用默认网关) 搜索计算机 (的位置。
使用 WMI 制造商搜索计算机 (的制造商和型号,或者) 进行和型号查询。
对于创建的每个数据库条目,可以指定部署属性、应用程序、是否使用Configuration Manager包以及管理员。 通过在数据库中创建 make 和 model 条目,可以添加所需的特定于硬件的设备驱动程序应用程序。
在 MDT DB 中创建条目以允许安装设备驱动程序应用程序
注意
对需要设备驱动程序应用程序的每个硬件制造和型号重复此过程。
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share/Advanced Configuration/Database/Make and Model (其中 ,deployment_share 是要配置) 的部署共享的名称。
在“操作”窗格中,单击“ 新建”。
在“ 属性 ”对话框的“ 标识 ”选项卡上的“ 生成 ”框中,键入 make_name (,其中 make_name 是一个易于识别的名称,以便与目标计算机) 的制造商相关联。
在“ 模型 ”框中,键入 model_name (,其中 model_name 是一个易于识别的名称,以便与目标计算机) 的模型相关联。
在“ 应用程序 ”选项卡上,添加该硬件型号所需的每个设备驱动程序应用程序。
使用 Windows 部署服务启动 MDT
Windows Server 2008 使用 Windows 部署服务作为远程安装服务的更新和重新设计版本,远程安装服务是 Windows Server 2003 中带有 SP2 的默认部署工具。 使用 Windows 部署服务,可以使用计算机的已启用 PXE 的网络适配器或启动媒体跨网络部署 Windows 操作系统(尤其是 Windows 7、Windows Server 2008 或更高版本的操作系统)。
在部署 Windows 部署服务之前,请确定以下哪个集成选项最适合你的环境:
选项 1。 在 PXE 中启动计算机以启动 LTI 进程。
选项 2. 从 Windows 部署服务映像存储区部署操作系统映像。
选项 3。 将多播与 MDT 和 Windows Server 2008 Windows 部署服务服务器角色结合使用。
选项 1:在 PXE 中启动计算机以启动 LTI 进程
通过使用 Windows 部署服务与动态主机配置协议启动 MDT 部署过程,帮助最大程度地降低管理操作系统部署的成本。 这样就无需创建可启动媒体并将其传送到每台目标计算机。
创建部署 Workbench Windows PE 映像并将其导入到 Windows 部署服务
创建新的 MDT 部署共享或修改现有 MDT 部署共享时,可以创建自定义 Windows PE 启动映像。 更新部署共享时,会自动生成 Windows PE 启动映像并使用有关部署共享的信息进行更新,并且它将注入部署共享配置期间指定的任何其他驱动程序或组件。
Windows PE 启动映像生成为 ISO 映像文件(可以写入 CD 或 DVD)和可启动 WIM 文件。 可以将 WIM 文件导入 Windows 部署服务,以便可在 PXE 中启动的计算机可以跨用于初始化安装的网络下载和运行 LTI Windows PE 启动映像。
在部署工作台中创建可启动的 Windows PE 映像
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share (其中 ,deployment_share 是要配置) 的部署共享的名称。
在操作窗格中,单击“属性”。
在“ deployment_shareProperties ”对话框中,单击“ Windows PE 平台 设置 ”选项卡, (其中平台是要) 配置的 Windows PE 映像的体系结构。
在 “Lite 触控启动映像设置” 区域中,选中“ 生成 Lite Touch 可启动 RAM 磁盘 ISO 映像 ”复选框。
单击“ Windows PE 平台 组件 ”选项卡, (平台 是要配置) 的 Windows PE 映像的体系结构。
在“ 驱动程序注入 ”部分中,单击要包括的相应驱动程序类型。
注意
如果 Windows PE 已包含必要的设备驱动程序,则不需要执行此步骤。
在 “驱动程序注入 ”部分的 “选择配置文件 ”列表中,选择相应的驱动程序选择配置文件。
在“属性”对话框中,单击“确定”。
注意
如果 Windows PE 已包含必要的设备驱动程序,则不需要执行此步骤。
在详细信息窗格中,单击“ deployment_share (,其中 deployment_share 是要配置) 的部署共享的名称。
在“操作”窗格中,单击“ 更新部署共享”。
“更新部署共享向导”将启动。
在 “选项” 页上,选择用于更新部署共享的所需选项,然后单击“ 下一步”。
在 “摘要 ”页上,验证详细信息是否正确,然后单击“ 下一步”。
在“确认”页上,单击“完成”。
此过程完成后,部署共享中的 Boot 文件夹将包含许多启动映像,例如:
D:\Production Deployment Share\Boot\LiteTouchPE_x64.iso
D:\Production Deployment Share\Boot\LiteTouchPE_x64.wim
D:\Production Deployment Share\Boot\LiteTouchPE_x86.iso
D:\Production Deployment Share\Boot\LiteTouchPE_x86.wim
可以将已生成的 ISO 文件直接写入 CD 或 DVD,或使用它们在新硬件上初始化 LTI 进程。 还可以将启动 WIM 文件导入 Windows 部署服务,以便新计算机无需任何物理媒体即可初始化 LTI 部署过程。
将 Windows PE 映像导入 Windows 部署服务
启动 Windows 部署服务控制台,然后连接到 Windows 部署服务。
在控制台树中,右键单击“ 启动映像”,然后单击“ 添加启动映像”。
浏览到要导入的 WIM 映像,例如 D:\Production Deployment Share\Boot\LiteTouchPE_x86.wim。
导入过程会自动从启动映像读取元数据,但还可以编辑 “映像名称” 和“ 映像说明” 值;当客户端在 PXE 中启动时, 映像名称 会影响 Windows 启动管理器显示的启动选项信息。
导入启动映像后,在 PXE 中启动并从 Windows 部署服务收到回复的任何计算机都将能够下载 LTI 启动映像并启动 LTI 安装。
本指南未介绍安装和配置 Windows 部署服务。 有关 Windows 部署服务的其他信息,请参阅 Windows 部署服务指南。
使用 Windows 部署服务自动检测部署服务器
当 MDT 部署共享与 Windows 部署服务托管在同一服务器上时,使用 Windows 部署服务托管 MDT 启动映像时,可以使用其他选项。
当 PXE 客户端加载 MDT 启动映像时,将捕获托管启动映像的 Windows 部署服务服务器的名称并将其放置在 MDTProperty WDSServer 中。 然后,可以通过 DeployRoot 属性在启动映像的 BootStrap.ini 文件和部署共享的 CustomSettings.ini 文件中引用此属性。 这样做会导致客户端使用 Windows 部署服务服务器上托管的部署共享自动从 Windows 部署服务启动。 这样就无需在任何配置文件中指定服务器名称。
将本地 Windows 部署服务服务器设置为部署服务器
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share/Advanced Configuration/Database (其中 deployment_share 是要配置) 的部署共享的名称。
在操作窗格中,单击“属性”。
单击“ 规则 ”选项卡。
在此选项卡上键入的信息存储在 CustomSettings.ini 文件中。
将 DeployRoot 属性配置为使用 %WDSServer% 变量,例如 DeployRoot=\\%WDSServer%\Deployment$。
单击 “编辑Bootstrap.ini。
通过将 DeployRoot 值添加到 DeployRoot=\\%WDSServer%\Deployment$,将BootStrap.ini配置为使用 %WDSServer% 属性。
在“ 文件 ”菜单上,单击“ 保存 ”以保存对BootStrap.ini文件的更改。
单击“确定”。
需要更新部署共享。
在详细信息窗格中,单击“ deployment_share (,其中 deployment_share 是要配置) 的部署共享的名称。
在“操作”窗格中,单击“ 更新部署共享”。
“更新部署共享向导”将启动。
在 “选项” 页上,选择用于更新部署共享的所需选项,然后单击“ 下一步”。
在 “摘要 ”页上,验证详细信息是否正确,然后单击“ 下一步”。
在“确认”页上,单击“完成”。
将更新的启动 WIM 导入 Windows 部署服务。
选项 2:从 Windows 部署服务存储部署操作系统映像
如果已在使用 Windows 部署服务进行操作系统部署,请通过配置 MDT 来引用已使用的 Windows 部署服务操作系统映像(而不是使用自己的存储)来扩展 MDT 的功能,并使用驱动程序管理、应用程序部署、更新安装、规则处理和其他 MDT 功能来补充 Windows 部署服务部署。 MDT 引用 Windows 部署服务操作系统映像后,可以将其视为已暂存到 MDT 部署共享的任何操作系统。
引用 Windows 部署服务操作系统映像
注意
以下步骤要求至少以前已将一个操作系统映像导入 Windows 部署服务服务器。
通过将以下文件从 Windows 媒体的 Sources 文件夹复制到 Windows 部署服务服务器上的 C:\Program Files\Microsoft Deployment Toolkit\bin 文件夹,更新 MDT 以能够访问 Windows 部署服务映像:
Wdsclientapi.dll
Wdscsl.dll
Wdsimage.dll
Wdstptc.dll (仅当从 Windows Server 2008 源目录复制)
注意
使用的 Windows 源目录必须与安装 MDT 的计算机上运行的操作系统的平台匹配。
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share/Operating Systems (其中 ,deployment_share 是要配置) 的部署共享的名称。
在“操作”窗格中,单击“ 导入操作系统”。
“新建 OS 向导”将启动。
在 “OS 类型” 页上,单击“ Windows 部署服务映像”,然后单击“ 下一步”。
在 “WDS 服务器 ”页上,键入要引用的 Windows 部署服务服务器的名称(例如 WDSSvr001),然后单击“ 下一步”。
在 “摘要 ”页上,验证设置是否正确,然后单击“ 下一步”。
在“确认”页上,单击“完成”。
Windows 部署服务服务器上可用的所有映像现在都可用于 MDT 任务序列。
注意
从 Windows 部署服务导入映像不会将源文件从 Windows 部署服务服务器复制到部署共享。 MDT 继续使用其原始位置的源文件。
选项 3:将多播与 MDT 和 Windows Server 2008 Windows 部署服务角色配合使用
随着 Windows Server 2008 的发布,Windows 部署服务得到了增强,以支持使用多播传输部署映像。 MDT 还包括用于将 MDT 与 Windows 部署服务多播集成的更新。
此外,更新的 Windows 自动安装工具包 (Windows AIK) 版本 1.1 包括Wdsmcast.exe。 这允许手动加入多播会话,并允许启动Wdsmcast.exe的客户端从活动多播会话复制文件。
LTIApply.wsf 脚本在从部署共享访问操作系统源文件时使用 Wdsmcast.exe。 LTIApply.wsf 在 deployment_share\Tools\x86 或 deployment_share\Tools\x64 文件夹中查找部署共享Wdsmcast.exe (其中 deployment_share 是包含部署共享) 的文件系统文件夹的名称,具体取决于正在运行的 Windows PE 版本。
LTIApply.wsf 运行时,它将始终尝试从现有多播流访问和下载 WIM 映像,但如果多播流不存在,它将回退到标准文件副本。
注意
此过程仅适用于 WIM 映像文件。
准备 MDT 多播的部署服务器先决条件包括:
部署服务器必须运行 Windows Server 2008 或更高版本
必须从服务器管理控制台安装 Windows 部署服务角色
必须安装 Windows Server 2008 的 Windows AIK 1.1
必须安装 MDT
与使用 MDT 的任何部署一样,必须至少导入一个操作系统 WIM 映像,要么是作为完整的源文件集,要么是包含安装文件的自定义映像
注意
使用最新版本的 Windows AIK 进行多播非常重要:早期版本的 Windows AIK 中包含的 Windows PE 副本(例如 Windows AIK 1.0)不支持从多播服务器下载。
配置 MDT 以从现有部署共享进行多播
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share (其中 ,deployment_share 是要配置) 的部署共享的名称。
在操作窗格中,单击“属性”。
在“ 常规 ”选项卡上,选中“ 为此部署共享启用多播 (需要 Windows Server 2008 Windows 部署服务) ”复选框。
单击“确定”。
在“操作”窗格中,单击“ 更新部署共享”。
“更新部署共享向导”将启动。
在 “选项” 页上,选择用于更新部署共享的所需选项,然后单击“ 下一步”。
在 “摘要 ”页上,验证详细信息是否正确,然后单击“ 下一步”。
在“确认”页上,单击“完成”。
部署共享现在已针对 Windows 部署服务多播传输进行配置。
此过程创建直接使用现有 MDT 部署共享的自动强制转换 Windows 部署服务多播传输。 MDT 不会创建Scheduled-Cast传输。 另请注意,不会将其他映像导入到 Windows 部署服务中,并且无法对启动映像使用多播,因为多播客户端在运行 Windows PE 之前无法加载。
验证多播传输是否已在 Windows 部署服务中生成
单击“ 开始”,指向 “管理工具”,然后单击“ Windows 部署服务”。
在 Windows 部署服务控制台树中,右键单击“ 服务器”,然后单击“ 添加服务器”。
在 “添加服务器 () ”对话框中,单击“ 本地计算机”,然后单击“ 确定”。
在 Windows 部署服务控制台树中,单击“ 服务器”,然后单击“ server_name (,其中 server_name 是运行 Windows 部署服务) 的计算机的名称。 单击“ 多播传输”。
在详细信息窗格中,将列出部署共享的新自动转换传输,例如 BDD Share Deployment$。
验证 BDD Share Deployment$ Auto-Cast 传输的状态是否设置为 “活动”。
部署计算机后,通过检查 \Windows\Temp\DeploymentLogs 文件夹中的 BDD.log 文件,验证操作系统是否已从多播传输下载。
日志文件夹中将有两个条目,两个条目都以 多播传输开头;检查它们以验证传输是否成功。 有关使用 MDT 和 Windows 部署服务进行多播传输的详细信息,请参阅 MDT 文档使用 Microsoft 部署工具包中的“为 LTI 部署启用 Windows 部署服务多播部署”部分。
使用 MDT (OEM 预加载) 执行分阶段部署
在许多组织中,计算机在部署到生产网络之前会加载操作系统映像。 在某些情况下,加载操作系统映像由组织中负责在过渡环境中生成计算机的团队执行。 在其他情况下,加载操作系统映像由计算机硬件供应商执行,也称为 原始设备制造商 (OEM) 。
注意
MDT 中仅支持使用 LTI 执行的部署的 OEM 预加载过程。 对于Configuration Manager,请使用预留媒体功能。
MDT 中的 OEM 预加载过程概述
OEM 预加载过程分为三个阶段:
阶段 1。 创建要应用于过渡环境中的引用计算机的基于媒体的图像。
阶段 2。 将引用计算机映像应用于过渡环境中的目标计算机。
阶段 3。 在生产环境中完成目标计算机的部署。
阶段 1 和阶段 3 通常由部署组织执行。 根据组织中 OEM 预加载过程的使用情况,第 2 阶段可能由组织或提供计算机的计算机硬件供应商执行。 如果组织执行阶段 2,则过渡环境位于组织内。 如果 OEM 执行阶段 2,则过渡环境位于 OEM 的环境中。
OEM 预加载过程中的 MDT 配置文件概述
在 OEM 预加载过程的阶段 1 和阶段 3 期间,任务序列使用单独的 MDT 配置文件 (CustomSettings.ini 和 Bootstrap.ini) 。 但是,这两个配置文件同时存在于不同的文件夹结构中。
在第一阶段,配置文件在创建引用计算机期间使用,并存储在特定于该阶段中使用的任务序列的文件夹中。 OEM 预加载过程第三阶段和最后一个阶段中使用的配置文件存储在特定于该阶段中使用的任务序列的文件夹中。
对配置文件进行修改时,请确保对配置文件所做的更改对应于每个 OEM 预加载过程阶段中的相应任务序列。
OEM 预加载过程中的 MDT 日志文件概述
在 OEM 预加载过程的阶段 1 和阶段 3 期间生成单独的 MDT 日志文件:
阶段 1 的 MDT 日志文件存储在 C:\MININT 和 C:\SMSTSLog 文件夹中。
阶段 3 的 MDT 日志文件存储在基于 x86 的部署的 %WINDIR%\System32\CCM\Logs 文件夹中,或存储在基于 x64 的部署的 %WINDIR%\SysWow64\CCM\Logs 文件夹中。
诊断或排查与 MDT 相关的部署问题时,请使用相应的文件夹。
使用 LTI 的暂存部署
对于 LTI 部署,请使用 可移动媒体 (媒体) 部署共享类型执行 OEM 预加载过程。 OEM 预加载过程不支持其他部署共享类型。
若要执行 OEM 预加载过程,请基于 Litetouch OEM 任务序列任务序列模板创建任务序列,以及将用于部署目标操作系统的任何任务序列。 然后,创建 可移动媒体 (媒体) 部署共享,该共享最终将基于目标计算机的处理器平台) 创建部署共享内容的 ISO 文件,特别是LiteTouchPE_x86.iso 文件或 LiteTouchPE_x64.iso 文件 (。 部署共享更新过程还会创建可用于创建通用磁盘格式媒体的文件夹结构。
LTI OEM 预加载过程 - 阶段 1:创建Media-Based映像
部署组织在 OEM 预加载过程中执行第一阶段。 此阶段的最终可交付结果是可启动映像 (,例如 ISO 文件) 或媒体 ((如 DVD) ),发送到 OEM 或部署组织内的过渡环境。 其中大多数步骤都在 Deployment Workbench 中执行。
创建基于媒体的映像以传送到 OEM 或部署组织中的过渡环境
在 Deployment Workbench 中为部署共享填充以下节点:
操作系统
应用程序
包
现装驱动程序
有关执行此步骤的详细信息,请参阅 MDT 文档使用 Microsoft部署工具包中的“管理部署工作台中的部署共享”部分。
基于 Deployment Workbench 中的 Litetouch OEM 任务序列任务序列模板创建新的任务序列。
有关执行此步骤的详细信息,请参阅 MDT 文档使用 Microsoft Deployment Toolkit 中的“在部署工作台中配置任务序列”部分。
创建一个或多个任务序列,用于在生产环境中部署后在目标计算机上部署目标操作系统。
有关执行此步骤的详细信息,请参阅 MDT 文档使用 Microsoft Deployment Toolkit 中的“在部署工作台中配置任务序列”部分。
创建一个选择配置文件,其中包括 OEM 部署所需的应用程序、操作系统、驱动程序、包和任务序列。
有关执行此步骤的详细信息,请参阅 MDT 文档中使用Microsoft部署工具包中的“管理选择配置文件”部分。
创建部署媒体。
有关执行此步骤的详细信息,请参阅 MDT 文档中使用Microsoft部署工具包中的“管理 LTI 部署媒体”部分。
更新在上一步的 Deployment Workbench 中创建的部署媒体。
更新部署媒体时,Deployment Workbench 会创建 LiteTouchMedia.iso 文件。 有关执行此步骤的详细信息,请参阅 MDT 文档中使用 Microsoft 部署工具包中的“管理 LTI 部署媒体”部分。
刻录在上一步中创建的 LiteTouchMedia.iso 文件的 DVD。
注意
如果将 ISO 文件传送到 OEM 或组织的过渡环境,则不需要执行此步骤。
将 ISO 文件或 DVD 传送到 OEM 或组织的过渡环境。
LTI OEM 预加载过程 - 阶段 2:将映像应用到目标计算机
OEM 预加载过程的第二阶段由 OEM 或部署团队在部署组织的过渡环境中执行。 在此过程的此阶段,在阶段 1 中创建的 .iso 文件或 DVD 将应用于目标计算机。 此阶段的可交付结果是部署在目标计算机上的映像,以便它们准备好在生产环境中部署。
将映像应用到目标计算机
使用阶段 1 中创建的媒体启动目标计算机。
Windows PE 启动,然后启动 Windows 部署向导。
在 Windows 部署向导中,单击 “暂存环境的 OEM 预安装任务序列 ”任务序列。
任务序列将启动,可启动媒体的内容将复制到目标计算机的本地硬盘。
当完成 用于暂存环境的 OEM 预安装任务序列 任务序列的 Windows 部署向导时,硬盘将准备好通过运行用于部署操作系统的其他任务序列的 Windows 部署向导来启动部署过程的其余部分。
暂存环境的 OEM 预安装任务序列任务序列负责将映像部署到目标计算机并启动 LTI 过程。 Windows 部署向导将再次启动,以运行用于在目标计算机上部署操作系统的任务序列。
根据需要,将第一个硬盘的内容克隆到过渡环境中尽可能多的目标计算机。
目标计算机将传递到生产环境进行部署。
LTI OEM 预加载过程 - 阶段 3:完成目标计算机部署
OEM 预加载过程的第三阶段也是最后一个阶段在部署组织的生产环境中执行。 在此过程的此阶段,将启动目标计算机,并在上一阶段期间放置在暂存环境中的硬盘上的可启动媒体映像启动。
在生产环境中完成目标计算机的部署
启动目标计算机。
Windows PE 启动,然后启动 Windows 部署向导。
使用每个目标计算机的特定配置信息完成 Windows 部署向导。
有关完成此步骤的详细信息,请参阅 MDT 文档中使用Microsoft部署工具包中的“运行部署向导”部分。
完成此阶段后,目标计算机将准备好在生产环境中使用。
使用Windows PowerShell执行常见任务
Deployment Workbench 中的 MDT 管理任务由基础Windows PowerShell cmdlet 执行,这些 cmdlet 可用于自动执行管理任务,如以下部分中的任务。
可以通过执行以下步骤自动执行 MDT 管理:
创建新的部署共享,如 创建新的部署共享中所述。
如创建文件夹中所述,在部署共享中创建 文件夹。
从部署共享中删除文件夹,如 删除文件夹中所述。
如导入设备驱动程序中所述,将 设备驱动程序导入部署共享。
从部署共享中删除设备驱动程序,如 删除设备驱动程序中所述。
如导入操作系统包中所述,将操作系统 包导入部署共享。
从部署共享中删除操作系统包,如 删除操作系统包中所述。
按照导入 操作系统中所述,将操作系统导入部署共享。
从部署共享中删除操作系统,如 删除操作系统中所述。
如创建应用程序中所述,在部署共享中创建 应用程序。
如删除应用程序中所述,从部署共享 中删除应用程序。
如创建任务序列中所述,在部署共享中创建 任务序列。
从部署共享中删除任务序列,如 删除任务序列中所述。
按照创建 MDT DB 中所述 创建 MDT DB。
按照创建选择配置文件中所述 创建选择配置文件。
更新部署共享,如 更新部署共享中所述。
按照创建链接部署共享中所述 创建链接部署共享。
更新链接的部署共享,如 更新链接部署共享中所述。
删除链接的部署共享,如 删除链接的部署共享中所述。
按照创建媒体中所述创建部署 媒体。
按照生成媒体中所述生成部署 媒体。
删除部署媒体,如 删除媒体中所述。
创建新的部署共享
以下Windows PowerShell命令在名为 Production$ 的 D:\Production Deployment Share 处创建新的部署共享。 新的部署共享将在 Deployment Workbench 中显示为“生产”。
Add-PSSnapIn Microsoft.BDD.PSSnapIn
New-PSDrive -Name "DS002" -PSProvider "MDTProvider" -Root "D:\Production Deployment Share" -Description "Production" -NetworkPath "\\Deployment_Server\Production$" -Verbose | add-MDTPersistentDrive -Verbose
创建文件夹
以下Windows PowerShell命令在 Deployment Workbench/Deployment Share/Production/Applications 的 Deployment Workbench 控制台树中创建 Adobe 文件夹。
Add-PSSnapIn Microsoft.BDD.PSSnapIn
New-PSDrive -Name "DS002" -PSProvider MDTProvider -Root "D:\Production Deployment Share"
New-item -path "DS002:\Applications" -enable "True" -Name "Adobe" -Comments "This folder contains Adobe software" -ItemType "folder" -Verbose remove-psdrive DS001 -Verbose
注意
将“remove-psdrive”添加到脚本可确保后台进程在继续之前完成。
删除文件夹
以下Windows PowerShell命令删除 Deployment Workbench/Deployment Shares/Production/Applications/Adobe 文件夹。
Add-PSSnapIn Microsoft.BDD.PSSnapIn
New-PSDrive -Name "DS002" -PSProvider MDTProvider -Root "D:\Production Deployment Share"
Remove-item -path "DS002:\Applications\Adobe" -Verbose
注意
如果文件夹不为空,脚本将失败。
导入设备驱动程序
以下Windows PowerShell命令会将 Dell 2407 WFP 监视器设备驱动程序导入生产部署共享。
Add-PSSnapIn Microsoft.BDD.PSSnapIn
New-PSDrive -Name "DS002" -PSProvider MDTProvider -Root "D:\Production Deployment Share"
Import-mdtdriver -path "DS002:\Out-of-Box Drivers\Monitor" -SourcePath "D:\Drivers\Dell\2407 WFP" -Verbose
删除设备驱动程序
以下Windows PowerShell命令从生产部署共享中删除 Dell 2407 WFP 监视器驱动程序。
Remove-item -path "DS002:\Out-of-Box Drivers\Dell Inc. Monitor 2407WFP.INF 1.0" -Verbose
导入操作系统包
以下Windows PowerShell命令导入位于 D:\汇报\Microsoft\Vista 下的所有操作系统包。 这些操作系统包将存储在生产部署共享中,该共享位于 D:\Production Deployment Share 中。
Add-PSSnapIn Microsoft.BDD.PSSnapIn
New-PSDrive -Name "DS002" -PSProvider MDTProvider -Root "D:\Production Deployment Share"
Import-mdtpackage -path "DS002:\Packages" -SourcePath "D:\Updates\Microsoft\Vista" -Verbose
删除操作系统包
以下Windows PowerShell命令从生产部署共享中删除指定的操作系统包。
Remove-item -path "DS002:\Packages\Package_1_for_KB940105 neutral x86 6.0.1.0 KB940105" -Verbose
导入操作系统
以下Windows PowerShell命令导入位于 D:\Operating Systems\Windows Vista x86 中的 Windows Vista 操作系统。 操作系统将存储在生产部署共享中,该共享位于 D:\Production Deployment Share 中。
Add-PSSnapIn Microsoft.BDD.PSSnapIn
New-PSDrive -Name "DS002" -PSProvider MDTProvider -Root "D:\Production Deployment Share"
Import-mdtoperatingsystem -path "DS002:\Operating Systems" -SourcePath "D:\Operating Systems\Windows Vista x86" -DestinationFolder "Windows Vista x86" -Verbose
删除操作系统
以下Windows PowerShell命令从生产部署共享中删除 Windows Vista HOMEBASIC 操作系统。
Remove-item -path "DS002:\Operating Systems\Windows Vista HOMEBASIC in Windows Vista x86 install.wim" -Verbose
创建应用程序
以下Windows PowerShell命令使用 D:\Software\Adobe\Reader 9 中的源文件创建 Adobe Reader 9 应用程序。 应用程序将存储在生产部署共享中,该共享位于 D:\Production Deployment Share 中。
Add-PSSnapIn Microsoft.BDD.PSSnapIn
New-PSDrive -Name "DS002" -PSProvider MDTProvider -Root "D:\Production Deployment Share"
Import-MDTApplication -path "DS002:\Applications" -enable "True" -Name "Adobe Reader 9" -ShortName "Reader" -Version "9" -Publisher "Adobe" -Language "" -CommandLine "setup.exe" -WorkingDirectory ".\Applications\Adobe Reader 9" -ApplicationSourcePath "D:\Software\Adobe\Reader 9" -DestinationFolder "Adobe Reader 9" -Source ".\Applications\Adobe Reader 9" -Verbose
删除应用程序
以下Windows PowerShell命令从生产部署共享中删除 Adobe Reader 9 应用程序。
Remove-item -path "DS002:\Applications\Adobe Reader 9" -Verbose
创建任务序列
以下Windows PowerShell命令在位于 D:\Production Deployment Share 中的生产部署共享中创建 Windows Vista 生产生成任务序列。
Add-PSSnapIn Microsoft.BDD.PSSnapIn
New-PSDrive -Name "DS002" -PSProvider MDTProvider -Root "D:\Production Deployment Share"
Import-mdttasksequence -path "DS002:\Task Sequences" -Name "Windows Vista Business Production Build" -Template "Client.xml" -Comments "Approved for use in the production environment. This task sequence uses the Standard Client task sequence template" -ID "Vista_Ref" -Version "1.0" -OperatingSystemPath "DS002:\Operating Systems\Windows Vista BUSINESS in Windows Vista x86 install.wim" -FullName "Fabrikam User" -OrgName "Fabrikam" -HomePage "http://www.Fabrikam.com" -AdminPassword "secure_password" -Verbose
删除任务序列
以下Windows PowerShell命令从生产部署共享中删除 Windows Vista 生产生成任务序列。
Remove-item -path "DS002:\Task Sequences\Windows Vista Business Production Build" -force -Verbose
创建 MDT DB
以下Windows PowerShell命令在生产部署共享的 deployment_server 服务器上创建新的 MDT DB。 数据库连接将通过 TCP/IP 进行。
Add-PSSnapIn Microsoft.BDD.PSSnapIn
New-PSDrive -Name "DS002" -PSProvider MDTProvider -Root "D:\Production Deployment Share"
New-MDTDatabase -path "DS002:" -SQLServer "DeploymentServer" -Netlib "DBMSSOCN" -Database "MDT2010" -SQLShare "DB_Connect" -Force -Verbose
创建选择配置文件
以下Windows PowerShell命令创建新的应用程序选择配置文件。
Add-PSSnapIn Microsoft.BDD.PSSnapIn
New-PSDrive -Name "DS002" -PSProvider MDTProvider -Root "D:\Production Deployment Share"
New-item -path "DS002:\Selection Profiles" -enable "True" -Name "Applications" -Comments "" -Definition "<SelectionProfile><Include path="Applications" /></SelectionProfile>" -ReadOnly "False" -Verbose
更新部署共享
以下Windows PowerShell命令更新 D:\Production Deployment Share 中的生产部署共享。
Add-PSSnapIn Microsoft.BDD.PSSnapIn
New-PSDrive -Name "DS002" -PSProvider MDTProvider -Root "D:\Production Deployment Share"
Update\-MDTDeploymentShare \-path "DS002:" \-Verbose
创建链接部署共享
以下Windows PowerShell命令创建一个部署共享,该共享链接到生产部署共享,并驻留在 \\remote_server_name\Deployment$ 共享下。 “所有内容”选择配置文件用于确定哪些内容复制到链接的部署共享。 生产部署共享中的内容将与 \\remote_server_name\Deployment$ 共享中已存在的内容合并。
Add-PSSnapIn Microsoft.BDD.PSSnapIn
New-PSDrive -Name "DS002" -PSProvider MDTProvider -Root "D:\Production Deployment Share"
New-item -path "DS002:\Linked Deployment Shares" -enable "True" -Name "LINKED001" -Comments "" -Root "\\RemoteServerName\Deployment$" -SelectionProfile "Everything" -Replace "False" -Verbose
更新链接部署共享
以下Windows PowerShell命令更新 LINKED001 部署共享。
Add-PSSnapIn Microsoft.BDD.PSSnapIn
New-PSDrive -Name "DS002" -PSProvider MDTProvider -Root "D:\Production Deployment Share"
Replicate-MDTContent -path "DS002:\Linked Deployment Shares\LINKED001" -Verbose
删除链接部署共享
以下Windows PowerShell命令删除 LINKED001 部署共享。
Add-PSSnapIn Microsoft.BDD.PSSnapIn
Remove-item -path "DS002:\Linked Deployment Shares\LINKED001" -Verbose
创建媒体
以下Windows PowerShell命令创建一个源文件夹,其中包含用于创建可启动媒体的内容。 生产部署共享将用作源。 “所有内容”选择配置文件确定媒体内容文件夹中放置的内容。 生成媒体时,将创建 LiteTouchMedia.iso 文件。 媒体将同时支持 x86 和 x64 平台。
Add-PSSnapIn Microsoft.BDD.PSSnapIn
New-PSDrive -Name "DS002" -PSProvider MDTProvider -Root "D:\Production Deployment Share"
New-item -path "DS002:\Media" -enable "True" -Name "MEDIA001" -Comments "some comment here" -Root "D:\Media" -SelectionProfile "Everything" -SupportX86 "True" -SupportX64 "True" -GenerateISO "True" -ISOName "LiteTouchMedia.iso" -Verbose
New-PSDrive -Name "MEDIA001" -PSProvider "MDTProvider" -Root "D:\Media\Content" -Description "Embedded media deployment share" -Force -Verbose
生成媒体
以下Windows PowerShell命令在 D:\Media 中创建 LiteTouchMedia.iso 文件,该文件将使用 MEDIA001 媒体源文件夹中的内容。
Add-PSSnapIn Microsoft.BDD.PSSnapIn
New-PSDrive -Name "DS002" -PSProvider MDTProvider -Root "D:\Production Deployment Share"
Generate-MDTMedia -path "DS002:\Media\MEDIA001" -Verbose
删除媒体
以下Windows PowerShell命令从生产部署共享中删除 MEDIA001 介质。
Remove-item -path "DS002:\Media\MEDIA001" -Verbose
延迟域加入以避免应用组策略对象
组策略是一种丰富而灵活的技术,它能够通过集中式一对多模型有效地管理大量 Active Directory 域服务 (AD DS) 计算机和用户对象。 组策略设置包含在组策略对象 (GPO) 中,并关联到一个或多个AD DS服务容器—站点、域和组织单位 (OU)。
某些组织组策略限制性设置,在操作系统部署期间可能会导致问题。 例如,以下组策略设置可能会中断自动登录过程:
自动登录限制
管理员帐户重命名
法律横幅和标题
限制性安全策略 (例如,专用安全性 - 受限功能 [SSLF] 策略)
解决 GPO 在部署过程中可能导致的问题的一种方法是在部署过程中尽可能晚地将计算机加入域。 可以使用运行 ZTIDomainJoin.wsf 脚本的自定义任务序列步骤完成此联接。
若要将目标计算机加入域,ZTIDomainJoin.wsf 脚本使用 DomainAdmin、 DomainAdminDomain、 DomainAdminPassword、 JoinDomain 和 MachineObjectOU 属性。 可以使用 Windows 部署向导、部署共享规则、MDT DB 以及Configuration Manager计算机和集合规则声明这些属性。 使用的帐户必须具有在域中创建和删除计算机对象所需的权限。
通常,ZTIConfigure.wsf 脚本使用这些属性指定的值更新 Unattend.xml 或 Unattend.txt 文件。 然后,Windows 安装程序会分析这些设置,并且系统会在部署过程的早期尝试加入域。 这样做会使目标计算机受域 GPO 中指定的设置的约束,并可能导致部署过程失败。
若要在部署过程中有意延迟将目标计算机加入域,可以从 Unattend.xml 文件中删除某些元素。 如果文件中缺少关联的属性元素,ZTIConfigure.wsf 脚本将跳过将属性写入Unattend.xml文件。
注意
此示例解决方法仅在部署 Windows 7、Windows Server 2008 或 Windows Server 2008 R2 操作系统时有效。
准备unattend.xml文件,以便目标计算机在 Windows 安装过程中不尝试加入域
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share/Task Sequences/task_sequence (其中 ,deployment_share 是部署共享的名称, task_sequence 是要) 配置的任务序列的名称。
在操作窗格中,单击“属性”。
在“ OS 信息 ”选项卡上,单击“ 编辑”Unattend.xml。
Windows 系统映像管理器 (Windows SIM) 启动。
在 “应答文件 ”窗格中,转到 “4 个专门/标识/凭据”。 右键单击“ 凭据”,然后单击“ 删除”。
单击“是”。
保存应答文件,然后退出 Windows SIM。
在任务序列“属性”对话框中单击“确定”。
Credentials
由于 unattend.xml 文件中缺少元素,ZTIConfigure.wsf 脚本无法在 Unattend.xml 文件中填充域加入信息,这将阻止 Windows 安装程序尝试加入域。添加将目标计算机加入域的任务序列步骤
单击“ 开始”,然后指向“ 所有程序”。 指向Microsoft部署工具包,然后单击“部署工作台”。
在 Deployment Workbench 控制台树中,转到 Deployment Workbench/Deployment Shares/deployment_share/Task Sequences/task_sequence (其中 ,deployment_share 是部署共享的名称, task_sequence 是要) 配置的任务序列的名称。
在操作窗格中,单击“属性”。
在“ 任务序列 ”选项卡上,转到并展开“状态还原”节点。
验证是否存在 “从域恢复” 任务序列步骤。 如果是,请继续执行步骤 9。
在任务序列 “属性 ”对话框中,单击“ 添加”,转到 “设置”,然后单击“ 从域恢复”。
将“ 从域恢复 ”任务序列步骤添加到任务序列编辑器。 验证步骤是否位于任务序列中的所需位置。
验证 是否已将“从域恢复” 任务序列步骤的设置配置为满足你的需求。
在任务序列“属性”对话框中单击“确定”以保存任务序列。