使用 Provisioning Packages 帮助企业 IT 人员快速交付 Windows 10 设备
使用 Provisioning Packages 帮助企业 IT 人员快速交付 Windows 10 设备
在前段时间 gOxiA 分享了一篇文章 - “虚拟环境下在 Windows 10 OOBE 阶段测试部署 PPKG”,详细介绍了如何在虚拟机环境下 OOBE 阶段测试 PPKG 的方法。并且还分享了一些重点知识。今天我们将介绍使用 Provisioning Packages(预配包)帮助企业 IT 人员快速交付 Windows 设备。
在过去的传统部署方案中,企业IT通常会根据组织的需求和规则策略重新定制标准化系统映像,在新设备到来后首先会进入 IT 桌面部门,通常会在 IT 服务台使用 WDS、MDT 或 SCCM OSD 等方案,重新为设备部署 Windows 操作系统。并且 IT 桌面部门还需要根据其他诸如业务或安全部门不断提出的新需求或变更重新生成映像。可以想象这是一件非常庞大且复杂的项目工作。
自 Windows 10 发布以来,提出了 WaaS – Windows 即服务的概念,随之为这一“现代桌面”提供了一系列的“现代部署”方案可满足不同场景的需求。在这些方案中,IT 人员可以利用“动态部署方案”轻松便捷地为企业交付新的 Windows 10 设备。
假设我们有一个场景,企业订购了一批新的 Surface 设备,其预装了 Windows 10 的专业版,随机搭载了 Office 应用程序,并且设备驱动也是内置的,由于随机系统非常干净,而且是最佳的运行状态,企业希望基于现有的系统进行定制和交付,由于 OEM 系统不支持映像的重新定制和生成,按照过去传统的做法企业IT桌面人员需要使用批量授权重新为 Surface 生成定制的企业标准化映像,这一过程所付出的工作量是相当繁重的,而且企业可能会重复使用专业版的授权。最后,企业IT桌面部门还需要不基于网络的部署。
在以上这种场景下,如何选择一种快速高效的部署方法呢?!
综合比较动态部署方案中的 Provisioning Packages(预配包)更容易满足这一部署场景的需求。利用预配包我们可以快速配置新的设备,而无需完成准备和安装新映像的过程;生成的预配包可以配置多个设备来节省时间;在准备和部署过程中不需要设备管理基础架构;预配包可以应用在没有网络连接的设备上。由于预配包是一个扩展名为 PPKG 的文件,我们可以多种形式进行预配包的分发,如:可移动磁盘,电子邮件,网络共享等。部署方式也随之灵活许多,除了可以双击预配包手动安装,也可以利用命令行编写脚本,尤为重要的是在 Windows 10 的 OOBE 阶段也可以应用预配包,这样一来我们就可以实现自动化的部署交付过程。
到这里,您可能希望知道预配包都能为我们做些什么?是否可以像以往的部署方案那样利用 Unattend 实现无应答安装和配置,加载一系列的脚本程序进行高级的自动化配置……等等?!
Provisioning Packages 为我们提供了丰富的预配设置选项,可以分配设备名称、输入产品密钥以升级 Windows,删除预安装的软件,连接到 WiFi,加入到 AD 或侦测到 AAD,当然也可以创建本地账号,还可以添加应用程序、证书……更多具体的细节可以参考微软官方文档。https://docs.microsoft.com/en-us/windows/configuration/wcd/wcd
那么我们如何生成预配包(Provisioning Packages - PPKG)呢?如果您是一位经验丰富的桌面标准化 IT 人员,应该知道 Windows ADK,其中的“配置设计器”(Windows Configuration Designer - ICD)便是 PPKG 的生成工具。我们也可以在“Microsoft Store”中安装它“Windows Configuration Designer”。
打开 ICD,默认会提供几个预配模板,如果是新手可以先从“预配桌面设备”开始,它提供了向导式的配置过程,可满足基本需求。通常 gOxiA 会使用“高级预配”来创建 PPKG 以满足不同的需求。
在“高级预配”模式下,通过左边提供的配置项来进行预配设置,如果您所需的需求未能满足,则需要考虑配合其他方法,如:命令行、脚本……或基于 AD 的组策略进行后续的配置管理。当预配包设计完毕后,就可以利用导出功能生成 PPKG 文件,在生成过程中我们可以为预配包起一个便于识别的名称,版本号会根据每次生成递增,利用“所有者”和“等级”我们可以为当前预配包设置优先级别。
创建好的PPKG就可以按照前文介绍的那样以不同形式分发给用户,或在 OOBE 阶段应用。
HOWTO: 使用 USMT 捕获指定的用户注册表数据
HOWTO: 使用 USMT 捕获指定的用户注册表数据
USMT (User State Migration Tool),即用户状态迁移工具,其历史悠久且一直免费,可帮助企业 IT 人员在大型的 Windows 部署场景下简化用户数据的迁移过程。USMT 能够从现有系统环境下捕获用户账户、用户文件、操作系统设置和应用程序设置,然后将其迁移到新的 Windows 系统中。
如果您是第一次听说 USMT,是不是很心动?!希望尽快了解并上手操作,但可惜的是可能会令看官失望了,因为今天的分享恐怕仅适用于已经入门的 USMT 用户。
是这样,前段时间有位网友向 gOxiA 咨询了 USMT 相关的使用问题,说在手工创建自定义的捕获配置文件后,无法正常迁移数据,遇到 0x0803wa 警告,具体内容是:Registry location HKCU\Software\Microsoft\Internet Explorer\Main [Search Page] is considered invalid in the current context. 如下图所示:
大致的意思就是注册表位置在当前的上下文是无效的,排除了注册表路径问题,那问题应当就出在自定义的捕获配置文件(.xml)上。下面 gOxiA 提供了正确的文件内容截图。
在 component 字段,由于没有强制指定上下文,所以其默认为 UserandSystem,所以我们需要在 rules 中强制为 Uesr 上下文,这样才能捕获到我们当前指定的注册表数据。
另外一个不能忽视的问题,由于当前捕获的数据是隶属 Internet Explorer,其默认属于系统设置,所以我们需要先使用 genconfig 参数生成可选的 config.xml 文件,然后将默认要迁移的系统设置都改为 “no”,这样在捕获的时候即可不迁移系统设置,且仅按照指定的捕获配置文件进行迁移。
scanstate /vsc /o /config:config.xml /i:ie_searchpage.xml /ue:*\* /ui:domain\sufan /v:13 /l:scanstate.log w:\usmtdata
这样就仅迁移出来了指定用户的指定数据,捕获出来的数据包将会非常小。当需要迁移到用户的新环境下,则可以参考如下命令行。
loadstate /i:ie_searchpage.xml /ue:*\* /ui:domainsufan /l:loadstate.log w:\usmtdata
[MAP] Microsoft Assessment and Planning Toolkit - 收集数据
Microsoft Assessment and Planning Toolkit - 收集数据
在上个月 gOxiA 与大家分享了两篇 Microsoft Assessment and Planning Toolkit(以下简称:MAP)的日志,如需回顾可点击下面的日志链接。
整体来说 MAP 的安装和使用还是非常简便的,并没有太多的需求,也不需要复杂的配置过程,对于 IT 专业人员能够很快上手。今天 gOxiA 将介绍如何使用 MAP 收集数据。在 MAP 安装完毕后,可以从程序组中找到并打开它,在首次启动 MAP 时会自动弹出数据库创建选项,由于 MAP 默认安装了 LocalDB 支持,所以 Data source 为 LocalDB,只需在 Create an inventory database 下的 Name 文本框输入数据库名称即可。
数据库创建完毕后,会进入 MAP 程序界面,在 Overview 可以通过 Perform an inventory 启动数据收集向导。
在 Inventory Scenarios 选项中,选择 Windows computers,此方案将使用 WMI 来收集硬件、设备和软件等信息,以帮助 IT 人员进行分析和评估,是常用的收集方案。
在 Discovery Methods 选项中,可以通过 ADDS(Use ActiveDirectory Domain Services) 或 IP 地址范围(Scan an IP address range)来探索目标,当然还提供了其他的选项,本例中将使用 IP 地址范围进行目标的探索和收集。
在 Scan an IP Address Range 选项下,我们可以添加多个 IP 地址段。
因为前面我们选择了 Windows Computers 的收集方案,所以在 All Computers Credentials 选项下需要创建可 WMI 远端计算机的用户账号,为了方便起见在这里可以输入域管理员的账号信息,对于权限细化的 IT 环境可能会需要添加多个访问账号。在后续的 Credentials Order 选项中可以调整账号的使用顺序,否则可快速略过。
当我们完成上述的配置后,数据收集任务便开始自动执行,等待的时间并不长,很快收集工作便会结束。(PS:MAP 数据收集不依赖独立的客户端代理,但仍能在很短的时间内完成收集工作!)
数据完成收集后,我们便可以在不同的评估场景下看到分析数据,例如在 Desktop 下可以看到 Windows 10 Readiness 和 Office 2016 Readiness 等常见的评估方案概览数据。
点击每个方案便可进入其详细页,可以使用 Options 下的 Generate Windows 10 Readiness Report 生成更为详尽的表格文件。
以 Office 2016 Readiness 为例,我们可以从详细信息中了解到当前有1台设备无法满足 Office 2016 的需求,为此我们可以生成报表查看详情。
打开 Office 2016 Readiness 的报表(PS:生成的报表通常位于用户文档目录下的MAP目录,按照数据库名称命名子文件夹。)在 Office2016Assessment 工作表中可以筛选出 Not Office 2016 Ready 的计算机,在 Reasons for Recommendation 下记录了原因,在本示例中为满足 Office 2016 需求的设备是因为操作系统未受支持导致的,因为这计算机的当前系统是 Windows XP Pro w/SP3。
MAP 虽然是免费的,但它的潜在价值非常大,如果能在合适的场景下应用,必定事半功倍!!!
[MAP] Microsoft Assessment and Planning Toolkit - 安装
Microsoft Assessment and Planning Toolkit - 安装
上一篇文章《Microsoft Assessment and Planning Toolkit - 概览》我们对 MAP Toolkit 有了简要的认识,今天将要学习如何安装 MAP Toolkit。
获取 MAP Toolkit,建议从微软官方网站获取最新版本。
https://www.microsoft.com/en-us/download/details.aspx?id=7826
MAP Toolkit 支持以下操作系统:
- Windows 10
- Windows 8/8.1
- Windows 7 SP1
- Windows Server 2008 R2 SP1
- Windows Server 2012/R2
- Windows Server 2016
注:操作系统需安装 .NET Framework 4.5;如果使用 SQL 实例,应使用"SQL_Latin1_General_CP1_CI_AS"排序。
MAP Toolkit 硬件需满足以下最低需求:
- 双核 1.5GHz 处理器
- 2.0 GB 内存
- 1 GB 硬盘空间
- 网卡
- 1024*768 分辨率
准备就绪后我们便可以开始安装,本例选择使用 MAP Toolkit 自带的 LocalDB 数据库,这样可以更快地安装 MAP,且无需 SQL Server,当然使用 LocalDB 将仅支持 10GB 以内的数据量。
整个安装过程非常简单,跟随向导一路“下一步”即可。
[MAP] Microsoft Assessment and Planning Toolkit - 概览
Microsoft Assessment and Planning Toolkit - 概览
当我们的 IT 部门决定要为企业 PC 升级他们的操作系统时,就会面临很大的挑战,除了要确保现有 PC 的硬件能够满足新操作系统的需求外,还要识别出现有应用程序是否能够运行在新操作系统之上,以及为新操作系统提供新应用程序的必要性。所以,在部署新操作系统之前,应当仔细评估和规划应用程序和硬件与新操作系统的兼容性。微软为用户提供了一款免费的工具 - Microsoft Assessment and Planning Tookit(微软评估和规划工具包),以下简称 MAP。
MAP 顾名思义即一种用于评估和生成报告的工具,以帮助企业 IT 人员评估当前的 IT 基础架构,规划未来的系统和应用升级工作。MAP 使用 Windows 管理规范(WMI),以及活动目录服务(ADDS)和其他技术来收集企业环境中的数据,而无需在目标计算机上安装任何代理客户端软件,所以我们可以安全、快速地评估各种平台迁移的 IT 环境:
- Windows 10, Windows 8.1, Windows 7
- Office 2013, 2016 和 Office 365
- Windows Server 2012, 2012R2 和 2016
- SQL Server 2014 和 2016
- Hyper-V
- Microsoft Private Cloud Fast Track
- Azure
在为企业实施 Windows 10 升级时,可以使用 MAP 扫描和评估当前 PC 的就绪情况,并生成我们所需的 Word 或 Excel 格式的报告。
微软为使用 MAP 制定了六个关键阶段,以帮助我们能够正确有效地使用 MAP。
第1阶段:选择您的目标
第2阶段:收集您的数据收集需求
第3阶段:准备您的环境
第4阶段:安装 MAP Toolkit
第5阶段:收集数据
第6阶段:审查报告
有关上述6个阶段的详细信息建议参考微软官方文档:
https://social.technet.microsoft.com/wiki/contents/articles/17804.how-to-use-the-map-toolkit.aspx
在第1阶段,我们可以收集和评估哪些清单数据?!微软在 WiKi 中也给出了详细的说明资料:
https://social.technet.microsoft.com/wiki/contents/articles/17806.choose-your-map-toolkit-goal.aspx
如果您正打算收集企业中 IE 部署的情况,或者了解现有硬件是否可以运行 Windows 10 或者 Office 2016/365,都可以借助 MAP Toolkit 来收集清单并进行有效性评估,其自动生成的报告极大地简化了我们的数据收集和分析的工作,减少了投入的精力和成本。
在后续的文章 gOxiA 将与大家分享 MAP 的安装和使用经验!
HOWTO: 使用 Windows ADK 生成 ADKTools
HOWTO: 使用 Windows ADK 生成 ADKTools
Windows ADK 即 Windows 评估和部署工具包(Windows Assessment and Deployment Kit),可用于自定义和部署 Windows 10 映像的部署工具,其中 WinPE、USMT、DISM 等工具是桌面运维人员最为常用的部署工具,其中的 DISM 更是有别与 Windows 系统内置的 DISM,前者功能更强大,因为可以用于创建和部署 Siloed Provisioning Packages(SPP)。
(注意:自 Windows 10 1809 开始 PE 与 ADK 分开发布)
前面已经提到,ADK 中包含了桌面运维人员最为常用的部署工具,如果要在不同的设备上使用,默认则需要安装 Windows ADK,这样执行效率就大打折扣。其实 Windows ADK 中的工具多数都支持免安装运行,我们只需要在一台设备上安装完毕后,将所需的工具复制出来即可,但是手动复制各个工具所涉及的文件非常不便。
其实,Windows ADK 中内置了一个脚本,可以方便我们生成所需的 ADKTools,其中包含了 DISM、USMT,以及 Windows Setup 的相关文件。要使用该脚本,需要从 Windows Kits 程序组中找到“Deployment and Imaging Tools Environment”(部署和映像工具环境)并运行它。
然后,键入“CopyDandI.cmd amd64 d:adktools”执行自动复制,脚本会将适用于 64位系统的相关文件统一复制到指定的目录中。
最后我们将这个目录放到一个共享位置,或 U盘中即可,当然也可以集成到 PE Boot.wim 中。有了这个 ADKTools 后,我们就可以创建和部署 SPP,以及执行用户数据迁移等工作。
HOWTO: 解决 WDS 无法导入 Realtek PCIe GBE Family Controller 驱动的问题
HOWTO: 解决 WDS 无法导入 Realtek PCIe GBE Family Controller 驱动的问题
一台基于 Windows Server 2012 的 WDS 服务器,为 Lenovo M910t 机型添加驱动,发现 Realtek PCIe GBE Family Controller 驱动无法导入,其文件名为 rt64win7.inf,属于 64位体系架构驱动。
在添加过程中仅提示某些程序包无法添加到服务器中,但并没有给出具体的失败原因。可参考的常见原因是驱动未签名,驱动程序包损坏或网络连接问题。
经测试,该驱动可直接集成到系统映像(WIM)中正常安装和使用,检查发现驱动签名也是正常的,极有可能是该驱动与 WDS 不兼容,也尝试下载了其他版本的驱动发现均发生此类问题。由于 PE10 引导后可正常驱动该网卡,所以临时的解决方案即在 WIM 中集成该驱动。在 Windows 10 中由于 DISM 可以直接管理 WIM,所以 IT 人员可以直接使用 DISM Mount WIM,并将驱动集成到映像中,操作过程中使用到的命令行参考如下:
- Dism /mount-image /imagefile:d:\goldimages\customizeos.wim /index:1 /mountdir:c:\mount\windows
- Dism /image:c:\mount\windows /add-driver /driver:d:\drivers\realtek /recurse
- Dism /unmount-image /mountdir:c:\mount\windows /commit
若要使用命令行对 WDS 已经添加的安装映像可使用 wdsutil /replace-image命令,参考命令行:
- wdsutil /replace-image /image:"Windows 10 Pro x64" /imagetype:install /replacementimage /imagefile:"d:\goldimages\customizeos.wim
近期从 Realtek 官方下载了最新发布的网卡驱动,发现在驱动程序包中有一个提示文本文件,如下图所示!
按照 Realtek 官方的建议,将 Realtek PCIe GBE Family Controller 驱动包中的 WinPE 驱动添加到 WDS,此问题即可解决,且网卡也能正常使用。
微软发布 MDT 8456
微软发布 MDT 8456
中国当地时间1月26日,正值周末,也临近新年,但 gOxiA 早已养成早起的习惯,上了推才发现圈内人士都在转发 MDT 的最新推文,原来是微软发布了 Microsoft Deployment Toolkit 的最新版本 MDT 8456。
在这一版开始支持 Windows 10 / Server 2019 的 1809版本,并且可与 Configuration Manager 1810 进行集成。功能方面并没有带来太多的惊喜,嵌套任务序列的支持是本次更新带来的新功能。此外,MDT 8456 仍继续支持部署 Windows 7 操作系统,所以 IT 人员不要犹豫,为了能够提供更完善的 Windows 10 部署,建议升级到 MDT 8456。有关本次更新版本的具体信息,可参考微软官方文档。
https://docs.microsoft.com/en-us/sccm/mdt/release-notes
升级到 MDT 8456 非常容易,从微软下载中心拿到 MDT 8456 后可直接在当前 MDT 环境执行升级安装,他会自动卸载当前旧的 MDT 版本,并使用新版替代。
在完成升级安装后,打开 MDT 的 Deployment Work Bench 会看到提示,要求对当前部署点进行更新。我们可以在左侧的部署共享列表中选中部署点然后执行“Upgrade Deployment Share”,这样就会自动更新部署点内的相关脚本和文件。
在部署点升级完毕后,我们仍旧需要执行“Update Deployment Share”来更新我们的 LTI PE,如果之前有创建过媒体部署,也需要进行更新。
MDT 8456 下载地址:https://aka.ms/mdtdownload
HOWTO: 使用 DISM 配合脚本批量删除驱动程序
HOWTO: 使用 DISM 配合脚本批量删除驱动程序
利用 DISM 或 Pnputil 我们已经能够实现脱机或在线模式批量安装硬件的驱动程序,那么如何能够实现批量卸载已经集成到映像中的驱动程序呢?!
假设我们的映像编制人员为 Surface 设备创建了定制化的系统映像,并集成了 Surface 的设备驱动程序,现在我们希望编制好的映像可以作为通用映像部署在其他计算机上,这时我们就需要清理已经集成在映像内的驱动程序。
要卸载映像内集成的第三方驱动程序,我们首先需要列表出来它们,所以为此我们执行如下命令行。
利用上述的参考命令我们可以检索到当前映像中已经安装的硬件驱动程序,其中“已发布的名称:oemX.inf”是我们需要记录的数据。接下来使用下例命令行就可以从映像中卸载驱动。
细心和已经在使用该命令管理的驱动的朋友会注意到,由于映像中第三方驱动可能会很多,有时多大近70个,那么我们就需要一次一次执行上面的卸载驱动命令,将 oemX.inf 从映像中删除,这将是一件令人崩溃的任务。有些朋友可能会利用 Excel 批量转换和生成指令,其实我们完全可以利用批处理命令“For ... Do ...”来实现。
实现逻辑就是利用 DISM 的 Get-Drivers 参数获取驱动列表,并查找其中的唯一特征,例如下图所示我们能看到所有被列出的第三方驱动程序都不是“内置驱动程序”,那么可以用它来作为检索关键词。
[code]dism /image:c:\ /get-drivers /format:table
我们有了用于检索的关键词,就可以使用“find”来获得准确的驱动列表,可创建变量以生成动态驱动列表,便可以实现动态批量卸载驱动,参考脚本如下:
以上脚本可以从 gOxiA 的 Github 获取。https://github.com/goxia/ITSM/blob/master/remove_driver.bat
[MDT]HOWTO: 解决 LiteTouch OEM 发生 0xC000014C 引导故障
HOWTO: 解决 LiteTouch OEM 发生 0xC000014C 引导故障
通过 LiteTouch OEM 默认任务序列制作好 Media,拿到客户端实施,LiteTouch OEM Media 引导正常,也执行了 LiteTouch OEM 任务序列,正常结束并关机。再次开机后,引导过程中发生 0xC000014C 故障,具体错误可参考下图。
该问题通常发生在 UEFI 引导类型的机器上,这是因为 LiteTouch OEM 默认的任务序列中使用的是基于 MBR 类型的分区方案,只有一个 NTFS 格式的分区卷,所以到客户端引导时就会发生故障。
解决办法很简单,在现有“Format and Partition Disk”任务上将其改名为“Format and Partition Disk (BIOS)”,然后根据需要重新划分磁盘分区,再在“Options”选项下添加变量:“IsUEFI not equals True”。
同理再新添加一个磁盘任务序列,命名为“Format and Partition Disk (UEFI)”,定制好分区后,也添加一个变量“IsUEFI equals True”。
最后重新生成 Media,即可解决 0xC000014C 故障问题,且同时支持 BIOS 和 UEFI 类型的计算机。