Co3p9r4XYAAb_t8

        一台 Windows 10 计算机,通过 Windows 更新独立安装程序手工安装 MSU 更新包,在安装过程中出现错误提示“安装程序遇到错误: 0x80070422”,使用 Windows 更新功能执行在线检查也一样提示“0x80070422”故障。

snipaste20161216_140811

        0x80070422 其实是非常典型的简单故障,错误提示页面下的中文解释已经非常到位,即相关的服务无法启动,通常造成服务无法启动的原因就是服务被禁用掉,用户只需要通过services.msc启动服务管理器将 Windows Update 服务改为手工,再次执行安装程序即可解决问题。

        如果服务启动失败,可以通过“依存关系”对当前服务依赖的组件进行基础检查。另外,gOxiA 不建议在 Windows 10 上禁用 Windows Update 服务,因为即使要手工安装 Windows 更新补丁包,也需要启动 Windows Update 服务;此外,Windows 激活时同样依赖 Windows Update 服务。

        最后分享一篇资料非常有价值,便于我们快速诊断错误代码代表的原因。

        IUTool error codes:

        https://msdn.microsoft.com/en-us/windows/hardware/commercialize/manufacture/mobile/iutool-error-codes

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

Co3p9r4XYAAb_t8

使用 Windows 10 的连接应用轻松演示移动设备内容

        Windows 10 周年更新(1607)中包含了一款系统应用 - 连接,恐怕很少用户会关注到这款应用,而它确实就在那里!如果你正迫切需要通过电脑屏幕来展示自己的移动设备内容,不论你是 Windows Phone 还是 Android,那么“连接”将轻松实现你的需求,并且是通过无线技术将移动设备内容展示在电脑屏幕上。正如下图所示,gOxiA 正使用小米的红米Note3通过无线方式将手机的界面投放到了Windows 10系统上,这一功能对于那些移动开发者来讲,相信非常有价值。

20161202_140659862_iOS

        要使用这一功能,需要确保移动设备支持无线显示协议,通常大部分的主流 Android 都支持这一功能。为了能够获得最佳的体验,Windows 10 设备最好也要支持无线显示技术,否则可能投影过来只有内容而没有声音,起码在 gOxiA 的 T420 上虽然能够播放移动设备端的视频内容,如:Youku 视频,但却没有声音;此外 Windows 也会提示无法使用系统鼠标对投放过来的移动内容进行操作。

connect-1

connect-2

        最后让我们来了解一下无线显示技术,在 Windows 和 Android 平台最为常见的无线显示技术当属 Intel WirelessDisplay(WiDi),全称为无线高清技术,通过 WiFi 信号来实现电脑和显示设备的无线连接。

remoteapp-connecting

使用 RemoteApp 方式访问远程桌面上的应用程序

        补充这篇日志纯粹是为了方便自己,经验技巧当然是很早以前的!原因是最近经常要访问笔记本上的应用,但又不想基于远程桌面环境,所以直接以应用窗口模式打开远程桌面上的应用是最为合适的。这里要用的到就是RemoteApp,而该技术在客户端系统上也能够通过修改注册表来实现。

        下面就是一个设置的例子:

  1. 打开注册表编辑器定位到HKLM\software\microsoft\windowsnt\currentversion\terminalserver\tsappallowlist  
  2. 在路径下新建名为 applications 的项,然后在该项下创建需要发布的应用程序的项,名字可自行命名,例如 notepad  
  3. 在 notepad 项下创建名为 name 和 path 的字符串,各自的值分别为 Notepad 和 c:\windows\system32\notepad.exe  
  4. 回到路径 tsappallowlist,修改fdisableallowlist的值为 1  
  5. 现在创建一个远程桌面连接,保存到桌面可命名为remoteapp-notepad.rdp  
  6. 修改和添加该文件内容如下:
    a) remoteapplicationmode:i:1
    b) remoteapplicationprogram:s:notepad
    c) disableremoteappcapscheck:i:1
    d) alternate shell:s:rdpinit.exe

        OK,双击这个 RDP 便可直接打开远程桌面环境下的 Notepad 程序,显示的界面仅仅是 Notepad 的窗体,这样可方便的在本地和远程之间切换使用,像使用本地程序一样。运行状态如下面截图所示:

snipaste20161208_113207

        目前尚未解决的问题是无法执行 Office 应用程序,可能受限于授权模式,还有待继续研究!但是可以通过运行的Notepad调用Explorer定位到Office2016的程序路径打开执行。

Co3p9r4XYAAb_t8

针对 Windows 10 访问 Outlook 中 URL 的问题补充

        问题回顾《HOWTO: 解决 Windows 10 访问 Outlook 中的 URL 时提示"你要如何打开此文件" 》,微软官方的 KB3094186 确认Outlook 2007/2010 在 Windows 10 上设置 IE11 为默认浏览器时会导致相关注册表数据丢失而引发故障的发生。解决途径是使用微软的 easyfix 20155 进行修复,该修复工具其实是在注册表中对HTMLFILE新增了的“新开”指令。即“HKCR\htmlfile\shell”下新建名为“opennew\command”的项,其默认值为一段 CMD 指令“cmd /c start %1”,微软解释添加该指令后便可解决在 Outlook 中打开 URL 时总提示用哪个浏览器打开的问题,并且打开的 URL 会在当前 IE 的新选项卡中打开,以避免每点击一次 URL 都打开一个新的 IE 进程。当然,如果不介意的话,也可以直接指定 iexplore.exe %1 来执行。

        早先看到这个解决方案的时候就挺纳闷,为了解决是新选项卡还是新窗口打开就要通过 cmd 调用 start 来执行,有违程序设计和开发常理,实在不够严谨。果然,后续就遇到了问题!!!如果 Outlook 中邮件内容里的 URL 包含 & 符号,那么最终被打开的 URL 将会被自动截断,这是因为 CMD 环境下,也就是我们常说的命令行会将 & 符号识别为连续执行命令符号,也就是说会把 & 符号后面的内容识别为一段命令,结果可想而知!IE 在经过 CMD 和 Start 的辗转调用后,最终得到的 URL 已经面目全非!

error-demo

        如果我们试图为 %1 添加双引号,那么 Outlook 中的 URL 会完整的传递给 start ,但由于地址在双引号中,所以低级的 start 已经无法识别这个链接中的 http://,也就不会自动调用 IE 去打开 http 协议类型的内容,除非双引号中只有地址,例如:http://”www.contoso.com/index.do?method=view&fdid=158&notifytype=2”,可是要实现这样的格式写法恐怕不现实!(开发人员不会放过你的 Smile with tongue out

        折中的办法就是修改调用命令,改用 iexplore.exe %1 来执行,但引发的问题就是每次都要打开一个新 IE 进程,否则就改回 Edge 浏览器,因为使用 Edge 绝对不会遇到这个问题。鉴于 Office 2007 /2010 的主流支持生命周期因素,在 Windows 10 上还是尽量使用最新版的 Office 最为妥当!

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/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]