ADS | WDS | BDD2007 | MDT 2008 | MDT 2010

HOWTO: 为 Windows 自动添加配置无线网络

        由于 Windows 应答文件(Unattend.xml)中并未包含自动配置 WiFi 的选项,而在企业中确实存在为定制的标准化系统映像预先添加企业 WiFi 的需求,或者希望将一个脚本包发给用户,可以自动添加和配置无线网络。为此,微软在 Windows 10 上推出了新的配置工具 WICD,即:Windows 映像和配置设计器,可以轻松实现多种场景需求。

        以自动添加和配置无线网络为例,新建一个“高级预配”,然后在左边配置列表中找到“运行时设置-ConnectivityProfiles-WLAN-WLANSetting”,根据需要添加并设置其下的参数。如果要配置的 WiFi 不允许自动连接,可将“AutoConnect”设置为“FALSE”;一些企业默认的办公用途公共 WiFi 通常会进行隐藏,所以为此需要为此类型的 WiFi 启用“HiddenNetwork”;“SecurityType”和“SecurityKey”这是 WiFi 网络的安全协议和密钥。

ICD_AdvPreCon

ICD_WLANSetting

        当配置工作完成后,便可以导出这个预配包,格式为 .PPKG,可以在 Windows 10 系统上执行运行。

ICD_Export

ppkg_detail

        因为配置包通常都非常小,IT人员可以通过邮件发送给用户自助执行,当然也可以使用 DISM 在向标准化映像添加,或在映像初始化中自动执行,具体的命令行参考如下:

DISM.exe /online /Add-ProvisioningPackage /PackagePath:C:\oem.ppkg

        企业 IT 人员对于早期的 Windows 系统版本,如 Windows 7,也有非常高的需求。那么该如何实现呢?!

        使用 Netsh 可以在 Windows 7 上轻松实现以上的过程。首先找一台电脑连接到 WiFi,之后执行以下命令行,将无线配置导出为一个 xml 文件。

netsh wlan export profile name=\"SSIDNAME\" folder=d:\WiFiProfiles interface=\"Wireless Network Connection\" key=clear

        如果要在其他电脑上导入这个 WiFi 配置,则需要执行以下命令。

netsh wlan add profile filename=d:\WiFiProfile\SSIDNAME.xml

        在应用无线配置文件时,需要注意,如果当前 WiFi 是一个隐藏网络,且不允许自动连接,那么需要检查无线配置文件,并对主要参数进行修改。对于隐藏网络,需要将“nonBroadcast”设置为“TRUE”;而连接模式“connectionMode”设置为“manual”。

wlanprofile

  

        WDS(Windows Desployment Services)即 Windows 部署服务,其架构需求简单,配置灵活,使用起来轻松直观,所以深受企业 IT 服务台的青睐,常用于简单需求的 Windows 桌面系统安装场景。在一些管理级别不高的企业,为了简化管理和部署过程,WDS 中的系统安装映像通常使用的是集成了万能驱动的版本,但是对于复杂多样的企业 IT 环境,此法反而弄巧成拙,导致交付到用户手里的 Windows 设备经常会出现蓝屏、性能低下等异常的故障。

  

        其实 WDS 本身也提供驱动部署的支持,只是基于数据库结构管理,所以刚上手的用户可能对其操作流程并不适应,时常会因操作出错,而需删除已有的配置重新来过。今天 gOxiA 将与大家分享 WDS 驱动管理方面的知识和经验,为了方便说明专门整理了一张图希望能够让更清晰明了的让大家了解。

  

WDS 驱动管理

  

        WDS驱动管理是基于数据库结构管理的,对于驱动文件本身的管理其实非常简陋,并不是很智能。其完全依赖筛选器来进行管理和部署驱动,而筛选器可提供的选项又并非满足大家的需要,所以在使用WDS进行驱动管理时应该遵循如下的流程规范:

  

1、先创建驱动组,驱动组基于设备机型及系统架构来创建,例如我们要通过 WDS 为 ThinkPad X270 部署 Windows 10 Pro x64,那么我们可以先创建名为“Lenovo-X270-Win10x64”的驱动组。为了确保该组下所有的驱动都能被正确安装,所以建议选择“安装此组中的所有驱动程序包”。

  

AddDriverOptionals

  

2、导入驱动包,将厂商发布的 Drivers Pack解压缩,并添加到WDS中,因为是要批量导入驱动,所以选择“从文件夹中选择所有驱动程序”,这样向导将遍历目标路径下的所有子目录添加驱动。如果企业驱动库位于一个UNC路径,可先通过资源管理器访问并复制路径填写到位置栏。

  

AddDrivers-1

  

        可用的驱动程序包界面可看到搜索到可添加到WDS驱动库的驱动程序,大家会注意到体系结构包含x64、x86,甚至有些还会包含IA64,如果要导入的驱动数量较少,或者你不嫌麻烦,可以在如下图步骤中去除那些不适用于X64架构的驱动,因为大家应该记得,前面的驱动组添加过程中我们配置为“安装此组中的所有驱动程序包”,如果导入的驱动不适用于X64架构,如包含了X86或IA64驱动,将导致WDS部署客户端操作系统时,在“特殊化”阶段报错,导致安装失败。

  

AddDrivers-2

  

AddDrivers-3

  

        导入驱动后,可能会提示部分驱动无法导入到WDS驱动库中,这是因为部分驱动未包含签名,可能会导致设备出现意外故障。通常我们可以忽略,如果在WDS部署客户端设备后发现有未知设置未能成功安装驱动,可单独联系厂家获取驱动。

  

AddDrivers-4

  

        添加到驱动组这一步非常重要,WDS的运维人员在这一步的操作一定要谨慎,不要出错,因为WDS的驱动管理完全依赖筛选器,如果这一步出现错误,可能会导致我们要推翻之前所有的驱动操作,重新来过一遍。

  

AddDrivers-5

  

3、修改驱动组筛选器,前面的步骤我们已经完成了对应设备机型的驱动组及其对应驱动的添加,那么如何确保创建的驱动组能正确匹配到要部署系统的客户端设备上呢?!为此,我们需要为驱动组添加一些筛选器,确保其与设备和映像匹配。为了确保设备机型与驱动组匹配,需要为驱动组添加“制造商”和“型号”筛选器。

  

WDSDriverGroupFilter-1

  

        制造商即设备的品牌,如本例中 Thinkpad X270 的制造商为 LENOVO,而其型号却为 20K6A00DCD,那么我们该如何确认一个设备的制造商和型号信息呢?!有两个办法,从包装盒获取,不同时期发布的产品或批次,这些名称可能都不会相同;另一个办法是使用 WMIC 指令,如:“wmic csproduct get …”其中 … 为 vendor 时是提取设备制造商名称,而为 name 时是提取设备型号。

  

        在制造商和型号通过筛选器匹配后,我们还需要确保驱动组与映像进行匹配,所以我们继续添加如下筛选器:“OS版本”和“映像ID”,其中 OS版本 可在安装映像属性中查看到,但是需要注意筛选器中的OS版本包含两个信息,一个是映像版本,还需要加上 Service Pack 级别,以本案中的 Windows 10 为例,那么其最终的 OS版本号应为 10.0.16299.0。

  

OSVerison

  

WDSFiliter

  

        而映像ID 获取相对来说就较为繁琐了,在 WDS 管理器中是无法查看映像ID的,需要通过命令行进行操作,参考如下:

  

ImageID

  

        借助 WDS 的命令行获取映像ID,“wdsutil /get-image /image:”Windows 10 Pro” /imagetype:install /imagegroup:”Windows 10 x64”,gOxiA 建议获取到的映像ID单独存储在一个文本文件中,便于日后查看。此外,映像ID是添加映像文件(WIM)到WDS时产生的唯一值,如果你删除重新添加了映像那么其ID便会变更,但是如果你使用替换映像的操作方式,则不会影响到映像ID。

  

WDSDriversFiliterImageID

  

4、删除驱动,前面的三个步骤完成后驱动的导入即告结束,但请不要忘记因为我们导入的驱动包含X86和IA64,所以我们需要使用WDS的删除驱动功能来帮我们从驱动组剔除掉无用的驱动程序。过程很简单。打开删除驱动对话框,添加搜索筛选器,选择要从哪个驱动组删除驱动,并指定要删除的驱动架构版本,搜索到后便可批量删除。这里需要注意的是,虽然我们能够通过筛选器来删除特定组中的驱动,但是如果其他组有相同的驱动时,执行删除的操作也会从在其他组中生效。

  

DeleteDrivers

  

        对于WDS的驱动管理,基本就是导入和剔除驱动,不要想着可以利用筛选器去满足更多的需求,因为稍有不慎就会导致整个WDS驱动库推翻重来。

image

微软发布 Microsoft Deployment Toolkit 8450

        今天微软通过 Microsoft Download Center 发布了 Microsoft Deployment Toolkit 的最新版本 MDT 8450,本次更新支持最新版的 Windows Assessment and Deployment Kit(ADK)以及 Windows 10,即 1709(10.1.16299.15),同时也支持 Configuration Manager v1710,整体改进了 Windows 10 的部署和升级。

        在 Microsoft Deployment Toolkit Team Blog 上也发布了 MDT 8450 的修订说明。质量改进方面解决了不少已知的 Bug,具体的界面和功能体验还有待测试。

  • Quality updates (titles of bug fixes)
    • Win10 Sideloaded App dependencies and license not installed
    • CaptureOnly task sequence doesn't allow capturing an image
    • Error received when starting an MDT task sequence: Invalid DeploymentType value "" specified. The deployment will not proceed
    • ZTIMoveStateStore looks for the state store folder in the wrong location causing it to fail to move it
    • xml contains a simple typo that caused undesirable behavior
    • Install Roles & Features doesn't work for Windows Server 2016 IIS Management Console feature
    • Browsing for OS images in the upgrade task sequence does not work when using folders
    • MDT tool improperly provisions the TPM into a Reduced Functionality State (see KB 4018657 for more information)
    • Updates to ZTIGather chassis type detection logic
    • Upgrade OS step leaves behind SetupComplete.cmd, breaking future deployments
    • Includes updated Configuration Manager task sequence binaries

        相对于近期呼声较高的现代化 IT 交付技术 - Windows AutoPilot,不少用户产生了疑虑,MDT 是否会被终结?!而这次 MDT 8450 的发布说明中给出了解答,MDT 团队明确了会对这个免费部署工具的持续交付。

        MDT 8450 支持在现有 MDT 上进行升级,一路覆盖安装,在过程中使会通过对比文件 Hash 进行替换,而一些被修改过的文件和必要文件会自动执行备份,之后打开 MDT 管理器会要求对部署节点进行升级,如果一切顺利,最后可以再对部署点执行 Update,重新生成 Litetouch Boot 去替换 WDS 已经导入的 Boot WIM。

1

2

        根据目前初步的测试,MDT 8450 仍旧支持 Windows 7 的部署,所以适合广大的企业IT环境。但是对于国内这种多分区,或固态+机械硬盘且多分区的复杂环境,默认支持或称为流程,还是存在一些问题的,存在差异理论这是问题的根源!

WindowsUpdateLogo

HOWTO: 获取已安装的 Windows Update 列表

        在进行桌面标准化的系统更新补丁阶段,需要对客户端从 Windows Update 或内部 WSUS 安装补丁的相关数据进行整理汇总,便于后续的测试和评估,以确保生成适用于当前企业IT环境的系统版本,打造出卓越的黄金映像。既然要进行整理汇总,就需要将更新的补丁列表导出至文件,但是在“查看更新历史记录”和“已安装更新”中都没有提供导出视图列表的功能。

windowsupdatelist

windowsupdatelist_1

        还好通过 Windows 命令行能够实现,在 PowerShell 下提供了 Get-Hotfix 能够列出当前系统已经安装的更新补丁,如果列表的数据并非我们所需要的那样,可以通过参数自己指定要收集的信息。

get-hotfix

        例如,gOxiA 需要收集更新补丁的安装时间、当前计算机名、更新补丁KB号、更新补丁类型,以及更新补丁的说明网址,那么可以使用 PowerShell 命令行“Get-Hotfix |select-object installedon,csname,hotfixid,description,caption”,之后在利用管道通过 Export-csv 输出为 CSV 格式文档。

get-hotfix1

        此外,我们也可以使用 WMIC 提供的 qfe 命令参数进行处理,命令行非常简单"wmic qfe list /format:csv > c:\WAU_List.csv",相比较起来 Get-Hotfix 更灵活,但是 WMIC 便捷性更强些。

wmic_qfe_list_format_csv

        导出后的 CSV 可以利用 Excel 2016 内置的 PowerBI 功能通过查询方式从 CSV 中提取数据进行分析和列表的完善。

SearchCSV

Windows KMS Client Setup Keys

[ 2017/11/28 14:10 | by gOxiA ]

MSFT_logo_rgb_C-Gray_D

备忘专用,以后没有大的变更,将仅更新这篇日志。

Windows Server, version 1709

Operating system editionKMS Client Setup Key
Windows Server Datacenter6Y6KB-N82V8-D8CQV-23MJW-BWTG6
Windows Server StandardDPCNP-XQFKJ-BJF7R-FRC8D-GF6G4

Windows Server 2016

Operating system editionKMS Client Setup Key
Windows Server 2016 DatacenterCB7KF-BWN84-R7R2Y-793K2-8XDDG
Windows Server 2016 StandardWC2BQ-8NRM3-FDDYY-2BFGV-KHKQY
Windows Server 2016 EssentialsJCKRF-N37P4-C2D82-9YXRT-4M63B

Windows 10, version 1709

Operating system editionKMS Client Setup Key
Windows 10 Professional WorkstationNRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J
Windows 10 Professional Workstation N9FNHH-K3HBT-3W4TD-6383H-6XYWF

Windows 10

Operating system editionKMS Client Setup Key
Windows 10 ProfessionalW269N-WFGWX-YVC9B-4J6C9-T83GX
Windows 10 Professional NMH37W-N47XK-V7XM9-C7227-GCQG9
Windows 10 EnterpriseNPPR9-FWDCX-D2C8J-H872K-2YT43
Windows 10 Enterprise NDPH2V-TTNVB-4X9Q3-TJR4H-KHJW4
Windows 10 EducationNW6C2-QMPVW-D7KKK-3GKT6-VCFB2
Windows 10 Education N2WH4N-8QGBV-H22JP-CT43Q-MDWWJ
Windows 10 Enterprise 2015 LTSBWNMTR-4C88C-JK8YV-HQ7T2-76DF9
Windows 10 Enterprise 2015 LTSB N2F77B-TNFGY-69QQF-B8YKP-D69TJ
Windows 10 Enterprise 2016 LTSBDCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ
Windows 10 Enterprise 2016 LTSB NQFFDN-GRT3P-VKWWX-X7T3R-8B639

Windows Server 2012 R2 and Windows 8.1

Operating system editionKMS Client Setup Key
Windows 8.1 ProfessionalGCRJD-8NW9H-F2CDX-CCM8D-9D6T9
Windows 8.1 Professional NHMCNV-VVBFX-7HMBH-CTY9B-B4FXY
Windows 8.1 EnterpriseMHF9N-XY6XB-WVXMC-BTDCT-MKKG7
Windows 8.1 Enterprise NTT4HM-HN7YT-62K67-RGRQJ-JFFXW
Windows Server 2012 R2 Server StandardD2N9P-3P6X9-2R39C-7RTCD-MDVJX
Windows Server 2012 R2 DatacenterW3GGN-FT8W3-Y4M27-J84CP-Q3VJ9
Windows Server 2012 R2 EssentialsKNC87-3J2TX-XB4WP-VCPJV-M4FWM

Windows Server 2012 and Windows 8

Operating system editionKMS Client Setup Key
Windows 8 ProfessionalNG4HW-VH26C-733KW-K6F98-J8CK4
Windows 8 Professional NXCVCF-2NXM9-723PB-MHCB7-2RYQQ
Windows 8 Enterprise32JNW-9KQ84-P47T8-D8GGY-CWCK7
Windows 8 Enterprise NJMNMF-RHW7P-DMY6X-RF3DR-X2BQT
Windows Server 2012BN3D2-R7TKB-3YPBD-8DRP2-27GG4
Windows Server 2012 N8N2M2-HWPGY-7PGT9-HGDD8-GVGGY
Windows Server 2012 Single Language2WN2H-YGCQR-KFX6K-CD6TF-84YXQ
Windows Server 2012 Country Specific4K36P-JN4VD-GDC6V-KDT89-DYFKP
Windows Server 2012 Server StandardXC9B7-NBPP2-83J2H-RHMBY-92BT4
Windows Server 2012 MultiPoint StandardHM7DN-YVMH3-46JC3-XYTG7-CYQJJ
Windows Server 2012 MultiPoint PremiumXNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G
Windows Server 2012 Datacenter48HP8-DN98B-MYWDG-T2DCC-8W83P

Windows 7 and Windows Server 2008 R2

Operating system editionKMS Client Setup Key
Windows 7 ProfessionalFJ82H-XT6CR-J8D7P-XQJJ2-GPDD4
Windows 7 Professional NMRPKT-YTG23-K7D7T-X2JMM-QY7MG
Windows 7 Professional EW82YF-2Q76Y-63HXB-FGJG9-GF7QX
Windows 7 Enterprise33PXH-7Y6KF-2VJC9-XBBR8-HVTHH
Windows 7 Enterprise NYDRBP-3D83W-TY26F-D46B2-XCKRJ
Windows 7 Enterprise EC29WB-22CC8-VJ326-GHFJW-H9DH4
Windows Server 2008 R2 Web6TPJF-RBVHG-WBW2R-86QPH-6RTM4
Windows Server 2008 R2 HPC editionTT8MH-CG224-D3D7Q-498W2-9QCTX
Windows Server 2008 R2 StandardYC6KT-GKW9T-YTKYR-T4X34-R7VHC
Windows Server 2008 R2 Enterprise489J6-VHDMP-X63PK-3K798-CPX3Y
Windows Server 2008 R2 Datacenter74YFP-3QFB3-KQT8W-PMXWJ-7M648
Windows Server 2008 R2 for Itanium-based SystemsGT63C-RJFQ3-4GMB6-BRFB9-CB83V

Windows Vista and Windows Server 2008

Operating system editionKMS Client Setup Key
Windows Vista BusinessYFKBB-PQJJV-G996G-VWGXY-2V3X8
Windows Vista Business NHMBQG-8H2RH-C77VX-27R82-VMQBT
Windows Vista EnterpriseVKK3X-68KWM-X2YGT-QR4M6-4BWMV
Windows Vista Enterprise NVTC42-BM838-43QHV-84HX6-XJXKV
Windows Web Server 2008WYR28-R7TFJ-3X2YQ-YCY4H-M249D
Windows Server 2008 StandardTM24T-X9RMF-VWXK6-X8JC9-BFGM2
Windows Server 2008 Standard without Hyper-VW7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ
Windows Server 2008 EnterpriseYQGMW-MPWTJ-34KDK-48M3W-X4Q6V
Windows Server 2008 Enterprise without Hyper-V39BXF-X8Q23-P2WWT-38T2F-G3FPG
Windows Server 2008 HPCRCTX3-KWVHP-BR6TB-RB6DM-6X7HP
Windows Server 2008 Datacenter7M67G-PC374-GR742-YH8V4-TCBY3
Windows Server 2008 Datacenter without Hyper-V22XQ2-VRXRG-P8D42-K34TD-G3QQC
Windows Server 2008 for Itanium-Based Systems4DWFP-JF3DJ-B7DTH-78FJB-PDRHK
Tags: , ,

win10creatorsupdate1703

HOWTO: 快速在 UEFI 启动的 Windows 10 中添加 Native VHD Boot

        今天又要与大家分享关于 Native VHD Boot 的小技巧了,搜索本站 gOxiA 已经写了不少关于 Native VHD Boot 的文章,虽然之前也有撰写“Windows 10 Native VHD Boot 案例分享”,但本文将向大家介绍如何在基于 UEFI 启动的 Windows 10 中添加一个 Native VHD Boot 实例,整个操作过程期间并不需要重启进入PE环境,完全就地解决。

        准备一个准备添加 Native VHD Boot 的安装源,可以是 ISO 也可以是 WIM,前者需要先 Mount ISO 到当前系统,以便于访问其中的 WIM;之后在当前卷新建一个目录用于存放 Native VHD Boot 的 VHD 文件,例如“C:\VHDBoot\”;接下来使用磁盘管理器创建一个 VHD 文件WS2012R2.vhd,存储在前面的目录中,建议使用固定大小,注意请务必转换为GPT磁盘,根据需要进行分区,格式化为NTFS。固定大小的 VHD 虽然占用了不少空间容量,但可避免不必要的麻烦;然后再释放 WIM 映像到这个 VHD 中,方法相信大家已经轻车熟路,使用内置的 DISM 命令即可完成,命令行可参考“dism /apply-image /imagefile:G:\sources\install.wim /index:1 /applydir:V:\”,映像应用完毕即可unmount VHD,现在就差创建启动信息。

        由于是系统在线环境,且引导卷处于隐藏状态,所以最为方便的添加 Native VHD Boot 启动信息的方案就是使用 BCDEdit 工具,基于默认启动项新建一个新的 Native VHD Boot 启动信息,修改 Device 和 OSDevice 选项指定到前面创建的 VHD 路径上,即可完成。为此参考如下命令行执行!

1. bcdedit /copy {default} /d "WS2012R2 Native VHD Boot"

2. bcdedit /set {GUID} device vhd=[c:]\VHDBoot\WS2012R2.vhd

3. bcdedit /set {GUID} osdevice vhd=[c:]\VHDBoot\WS2012R2.vhd

        现在重新启动便可以出现多启动菜单,可选择 Native VHD Boot 来启动系统,UEFI 比较不人性化的是当选择另一个启动项后会再次重启计算机,这个没办法 UEFI 的设计使然。是不是非常简单,只要理解了相关的概念,命令能够做到得心应手,就能针对不同场景制定实现方案!

image

HOWTO: 为 MDT Media LiteTouch 启用 WIM Split

        现在的系统映像容量是越来越庞大,像 Windows Server 2016 的 ISO 要想通过 UFD 以 UEFI 方式来安装,可真是要提前准备一番,2个 UFD 一个是 FAT32 格式的用来做 UEFI 引导,另一个 NTFS 格式的用来存储安装源,没办法WIM 超过了4GB,相信这个场景不少 ITPro 都曾遭遇过!尤其通过 MDT 的 Media LiteTouch 安装系统时,问题尤为突出!虽然前段时间 gOxiA 与大家分享了 Widnows 10 v1703 支持 UFD 创建多分区 的文章,在 MDT 实践中可以通过创建对应目录结构实现 Media LiteTouch 部署大容量自定义系统映像的需求,但之后的维护工作却非常繁琐。其实在 MDT 中已经提供了 WIM 的分卷功能,只是官方很少提及!截止到今日,官方与网上都没有一个明确的说明该如何为 MDT Media LiteTouch 启用 WIM Split。(PS:明显的坑,大坑!)

        gOxiA 抽出时间做了一下功课,对 MDT WIM Split 做个总结。WIMSplit 确实受 MDT 支持,但是官方并没有提供图形化的设置界面,我们需要修改配置文件中对应的选项参数来启用它。这个选项为“ <SkipWimSplit>False</SkipWimSplit>”,位于“settings.xml”中。也就是说只要在 Settings.xml 中将 SkipWimSplit 配置为 False 那么在对 Media 执行刷新时就会自动将大于 4GB 的 WIM 映像进行分拆。而网上普遍存在修改 SkipWimSplit 后并未生效的主要原因是选错了 settings.xml,问题就是这么简单!还没理解?!搜搜 settings.xml 都位于哪几个目录下?去修改主 settings.xml 就会作用到 Media LiteTouch。

        这个问题的起因完全是用户和开发者概念逻辑不统一所致!大家都认为应该修改 Media 下的 Settings,但实际上需要修改部署点的,在刷新 Media 时脚本会将系统映像分拆然后拷贝到 Media 下,完毕后会删除原始位置的 SWM文件。

SkipWimSplit

Co3p9r4XYAAb_t8

HOWTO: 解决 Windows DISM error ID3 0x80070003 故障

        DISM error ID3 的故障描述,自定义的 Windows 7 标准化系统映像测试正常,封装后在测试环境中部署时发现在 offline mode 下使用 DISM 对系统进行管理时操作失败,如下图所示 DISM 未能找到有效的 Windows 目录,但是当前系统路径确实是有效的,本以为是封装前的系统出现了异常,也反复进行了原始映像的测试,并对当前系统进行了检查并未发现有什么可疑的地方,无奈只能重点排查 DISM 日志!

snipaste20170116_111632

        在对 dism.log 文件进行了分析后,发现了详细的报错信息,DISM 在对脱机映像执行操作时发生了错误,“DISM OS Provider: PID=1420 Failed to mount the remote registry...(hr:0x80070003)”!复查系统映像创建中的配置修改以及后续部署时无人应答文件的设置,可算找到了线索在应答文件中对用户配置文件进行了重定向,该设置会将 Users 目录移动到其他分区,这就导致“All Users” 和“Default”目录也被移动,而 Default 目录包含默认的注册表数据文件(NTUSER.DAT),当 DISM 对脱机映像管理时会去 Mount 这个注册表数据文件,所以最终导致操作失败。

dism_error_cbs_log

        而要解决这个问题的办法还是相当简单的,就是在系统所在分区创建一个相同的目录结构(C:\Users\Default\), 并将 Windows 安装源(Install.wim)中的 NTUSER.DAT 文件拷贝过去即可。在微软官方的知识库(KB2293874)中确认了这是一个已知的问题。

        随后 gOxiA 在 Windows 10 上也重现了这个故障问题,dism.log 中记录的错误提示稍有区别,但意思完全相同,所以解决方法一致。为什么时隔7年这个问题仍旧没有解决,恐怕也只有产品组的人员知道!不过也完全可以理解,在企业环境中要重定向用户配置文件目录通常会使用组策略进行设置,此法不会移动系统级的目录;而直接通过应答文件的做法恐怕也是极为罕见的场景需求。

UserProfileError

snipaste20170118_164951

Co3p9r4XYAAb_t8

HOWTO:  通过预先配置 TrustedImageIdentifier 以加速 Windows 10 黄金映像

       Windows 10 应答选项中包含一个参数 - "TrustedImageIdentifier",位于 "amd64_Security-Malware-Windows-Defender_neutral"下,利用这个参数设置可以加速 Windows 10 黄金映像的运行速度,即在应答文件中的初始化阶段添加一个 GUID 值,告知 Windows Defender 该系统映像是安全的,这样 Windows Defender 便不会对系统进行扫描。

        使用和维护 Windows Defender 的 IT 人员应该了解,因为 Windows Defender 在初始化的系统上会对系统主要文件进行扫描,以确保文件安全,如果没有单独执行一次完整的扫描,便会在后台进行调度,这样一来便会影响系统的运行速度,所以这就是为什么全新安装的系统在期初运行时会感觉慢的原因。

        要预先配置“TrustedImageIdentifier”需要进行两个步骤,在应答文件中添加 TrustedImageIdentifier 对应的 GUID 值,并为当前参考映像环境的注册表指定位置添加对应的 GUID 值。为此我们执行如下步骤:

        第一步,使用 Windows System Image Manager(该工具位于 WindowsADK 中)先创建或修改 Windows 安装应答文件,在 Windows 编录下的 Components 中找到“amd64_Security-Malware-Windows-Defender_10.0.14393.0_neutral”,将其添加到应答文件的“4 specialize” 阶段,然后为 TrustedImageIdentifier 填入系统的 GUID 值。

TrustedImageIdentifier_GUID

        第二步,在参考映像(即黄金映像)系统中打开注册表编辑器,定位至“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender”,并添加一个新的字符串,命名为“TrustedImageIdentifier”,其值为之前在应答文件中设置的 GUID。

TrustedImageIdentifier_regedit

        完成上面的两个步骤就可以对黄金映像进行打包(Sysprep)以便于分发给最终用户。值得注意的是在修改注册表时管理员是没有修改权限的,所以需要先拿到所有权再进行修改;另外,如果很不幸你在分发部署黄金映像后发现该映像存在安全问题,那么可联系 Windows Ecosystem Engagement team 并提供映像的 GUID 值,这样微软会将这个不安全的 GUID 更新到 Windows Update 中,Windows Defender 在更新后会对当前系统执行完全扫描。

        最后提供两篇微软官方的参考资料:

TrustedImageIdentifier:

https://technet.microsoft.com/en-us/library/hh825450.aspx

Configure a Trusted Image Identifier for Windows Defender:

https://technet.microsoft.com/en-us/library/hh825233.aspx

hero_edge_sufandesktop

Surface Pro 4 批量部署系统 - 应答文件优化

        Surface Pro 4 的批量部署工作已经结束,也算有时间能够继续完善这个系列的经验总结。在开始前先回顾一下之前已经发布的两篇文章“Surface Pro 4 批量部署系列 - 驱动程序安装”、“Surface Pro 4 批量部署系列 - Windows 10 激活”。Surface Pro 4 与常规设备系统部署基本一致,主要考虑的问题就是驱动的注入和新系统的激活。驱动的注入主要是考虑提前在映像中安装驱动,以加速部署速度,并可脱离 MDT 进行独立安装;Windows激活主要是考虑新系统只是应用自定义映像,授权方式并不修改,而新 Surface 设备直接重装自定义系统后会导致预激活信息丢失,必须手工提取OA3密钥进行激活。

        剩余的主要考虑事项恐怕就是应答文件的优化,虽然我们会对系统映像进行预先定制和设置,但是为了确保这些修改在后续生效,或者做个双保险,又或者一些设置必须通过应答文件设置,所以我们还是需要针对部署用的应答文件进行修改和完善。

  1. SkipRearm = 1,因为系统映像会阶段性的进行修改、完善,所以会多次进行 Sysprep 操作,为了确保系统保留有效次数的Rearm,建议在 Generalize 阶段跳过 Rearm。  
  2. InputLocale = 0804:00000804
    SystemLocale = zh-cn
    UILanguage = zh-cn
    UserLocale = zh-cn
    由于 MDT 是一种部署加速解决方案,所以它并不会像应用程序那样智能,能够通过当前系统环境来自动配置应答文件中涉及的语言设置,所以默认情况下 MDT 的默认应答文件均以英文环境来进行设置。而我们通常会为客户端部署中文版系统,所以需要对应答文件的几个阶段进行配置修改,它们是:
    1 windowsPE
    3 generalize
    4 specialize
    7 oobesystem  
  3. TimeZone = China Standard Time,原因同上所以我们需要针对  specialize 和 oobesystem 阶段的时区配置进行修正。  
  4. 由于批量部署应用在企业环境下,为了使预定制映像中的系统桌面环境能够应用到每个登录到系统上的用户账号,需要配置 specialize 阶段的 CopyProfile = True,以启用默认用户配置文件拷贝。  
  5. 在 specialize 阶段添加 DisableSR = 1,以禁用系统还原。  
  6. 在 specialize 阶段添加 fDenyTSConnections = false,以启用远程桌面。  
  7. 通常在企业环境中会采用第三方的防病毒软件,那么禁用系统自带的 Windows Defender 是非常必要的,所以在 specialize 阶段添加 DisableAntiSpyware = true。  
  8. 如果你正在使用 SDA,那么需要检查 oobesystem 阶段下的 Display 设置,确认添加如下配置,因为在 SDA 环境下该默认该配置数据缺失,而 Surface Pro 4 的默认分辨率为 2376*1824。
    ColorDepth = 32
    HorizonralResolution = 2376
    RefreshRate = 60
    VerticalResolution = 1824  
  9. 根据需要配置 OEM信息,为此可在 oobesystem 阶段为 OEMInformation 指定相关配置。
    Logo = %windir%OOBEinfoSurface.bmp
    Manufacturer = Microsoft Corporation
    Model = Surface Pro 4
    以及 SupportHours、SupportPhone 和 SupportURL 时间。  
  10. 为了加快 OOBE 的速度减少人为干预,可隐藏 oobesystem 阶段 OOBE 下的相关配置。
    HideEULAPage = True
    HideLocalAccountScreen = True
    HideOEMRegistrationScreen = True
    HideOnlineAccountScreens = True
    HideWirelessSetupInOOBE = True  
  11. 如果要脱离MDT单独部署映像,只需要删除 oobesystem 下的 FirstLogonCommands 项。
分页: 1/12 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]