Windows XP | Windows Vista | Windows 7 | Windows 8 | Windows 10

troubleshooting

定制 Windows10 开始界面时 Import-StartLayout 的常见问题

        在部署 Windows 10 前,IT人员通常会生成自定义的 Windows 10 参考映像,为了提升用户体验并满足企业桌面标准化,都会对 Windows 10 的开始界面进行定制,添加符合规范的程序图标并进行分组排列和组合。想必大家已经踩坑,自 16299 开始通过在应答文件中启用 CopyProfile 来实现开始界面的统一已经失效,所以必须借助组策略强制部署 StartLayout,或通过 PPKG 实现。当然,也可以使用 Import-StartLayout 导入 StartLayout.xml 为用户指定默认的开始界面布局,但是该方法对已生成用户配置文件的用户是无效的。对于不能通过组策略实现开始界面统一部署的用户,在 OOBE 阶段使用 Import-StartLayout 也是一个不错的选择,gOxiA 就是通过这个方法实现所有新登录用户使用统一的开始界面布局。

        但是在实践 Import-StartLayout 过程中,也遇到一些比较典型的问题,会比较常见,特以此文分享于大家。

import-startlayout

        Import-StartLayout 命令行通常为“Import-StartLayout -LayoutPath C:\startlayout.xml -MountPath C:\”,其中 -LayoutPath 是指定开始界面布局配置文件所在路径,-MountPath 是指定系统卷。在上面的截图中有展示的是三个常见故障:

  • Import-StartLayout :文件 不是有效的布局文件
    该问题通常是因为修改了 StartLayout.xml 导致的,其中包含了未满足规范的语句,这就需要进行具体的检查。
  • Import-StartLayout :未能找到路径 的一部分
    其中路径类似“D:\Users\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.xml”,通常这个故障是因为 IT人员在 Unattend 中重新指定了用户配置文件目录导致的,开始界面定制文件默认会应用到 Default 对应目录中,所以处理该故障就要先确定 Default 所在的卷。
  • Import-StartLayout :对路径 的访问被拒绝
    此故障很容易理解,要执行 Import-StartLayout 需要管理员权限运行,如果系统启用了 UAC,要执行它就必须提权运行。

        最后,额外分享一下开始界面布局文件中需要注意的事项,有些 IT人员会在布局配置中添加任务栏图标的定制(CustomTaskbarLayoutCollection),那么必须要对 CustomTaskLayoutCollection 进行声明,即添加“xmlns:taskbar="http://schemas.microsoft.com/Start/2014/TaskbarLayout"”。

troubleshooting

HOWTO: 解决 Outlook 邮件正文无法正确插入UNC类型快捷方式链接的问题

        实在想不出更准确的题目,所以在分享前,gOxIA 觉得很有必要详细描述一下这个故障现象。用户环境是 Windows 7 + Office 2010(经典组合),在其桌面上有一个文件夹快捷方式(.lnk),目标指向到的是一个 UNC 路径,结构基本就是“\\\\10.0.0.1\\aaa\\bbb\\ccc\\ddd\\eee”这个样子,当然示例路径中的字母在实际环境下是中文+符号。如下图所示:

1

        故障现象:用户在 Outlook 中撰写一封邮件,在正文部分使用“插入——超链接”功能,添加这个桌面快捷方式的地址。正常情况下,“插入超链接”窗口中的“地址”中显示的应该是这个快捷方式(lnk)的实际 UNC 路径,确定后邮件正文中添加的也应该是这个 UNC 路径。

2

        但是在用户故障环境下,显示和插入的结果却是这个快捷方式(lnk)的本地路径,如下图所示:

3

        问题虽小,但用户重视程度之高,在其他用户电脑上测试发现显示的确实为 UNC 路径,那么说明这个问题是一个故障。在打 Office 补丁,甚至重装了 Office 后,故障仍未解决。从故障看很可能是一直问题,所以决定寻求官方支持,但结果是 by design,或第三方插件干扰,实在无法接受这个解释!从经验来看这个问题很明显是一个故障,并且很可能是产品的已知问题。

        看来必须要在自己的测试环境下重现故障,才能更好的寻找根因!随即开了一台虚拟机配置好了环境,但未重现故障,对比版本后得到如下信息:

用户环境:系统6.1.7601.17567    Office14.0.7015.1000

测试环境:系统6.1.7601.23537    Office14.0.7181.5000

        基本可以确认用户环境肯定是缺少了什么补丁所致,因为Office 2010也有安装 SP2,而后续的零星补丁又太琐碎,也尝试直接覆盖文件,但并未解决,可以判定该问题与 Office 补丁无关,那肯定就出在系统上面了。

        随后,重新搭建了测试环境,为虚拟机安装 RTM 版操作系统和 Office,果然重现了故障。RTM 环境下的版本信息如下:

RTM环境:系统6.1.7601.17514    Office14.0.7015.1000

        至此已经明确了故障问题,用户因缺少某个系统补丁,导致在插入一个 UNC 类型的快捷方式时,会出现未达预期的结果。通过测试,并不是所有的 UNC 快捷方式都会出现这个问题,难道是中文长路径所致?但长度并未超过 256,且字符也属常见类型,看来只能通过 Process Monitor 抓包进行分析。

4

        在抓包的数据中发现了问题!当添加超链接时,进程会遍历这个 lnk 所对应的 UNC 路径,但此时却出现了拒绝访问,如上图所示。根据分析的结果对这个 lnk 对应的 UNC 每一级目录进行了访问测试,果然如此!这个 UNC 路径“\\\\10.0.0.1\\aaa\\bbb\\ccc\\ddd\\eee”中,其中 DDD 和 EEE 是允许用户访问的,而上一级目录则禁止当前用户访问。

        这也进一步验证了,该故障属于一个 Windows 的已知问题,接下来就是对更新补丁进行验证。将 RTM 测试环境接入内网 WSUS,拿到了 103 个补丁,这些补丁包含了安全和质量更新,还有汇总更新补丁。在一次打完所有补丁后进行测试发现故障消除! Great,可算有了里程碑式的进展,那么这 100 多个补丁中哪个才是修复当前故障问题的补丁呢?

        要对 103 个补丁进行测试真的是一个巨大、枯燥,令人抓狂的工作,最终锁定 KB4022722 这个补丁!!!至此故障彻底解除,结尾要与大家分享一个重要的经验,在处理 Windows 故障,尤其涉及更新补丁时,在关键节点判断问题类型十分重要,如果分析归类为已知问题,应确认该问题是属于安全的还是质量的,这样才能有效减少工作量!!!(:-P)

troubleshooting

  

HOWTO: 解决 外部数据库驱动程序 (1) 中的意外错误

  

        前几天遇到一个用户故障,Windows 7 系统运行一个第三方开发的打印小工具,之前运行正常,这几天总是在选择 Excel 文件后报错,导致无法正常打印。具体的报错提示“外部数据库驱动程序(1)中的意外错误”,如下图所示:

  

Snipaste_2017-11-10_13-18-27

  

        将该工具拷贝到我的环境下运行(Windows 10)也一样报错,即使设置兼容性模式也无济于事。用户反馈之前只更新过补丁,没有做过任何系统变更。为了快速定位根因所以先从补丁入手,经过测试基本锁定了三个更新补丁,后来在虚机测试环境下锁定了 KB4041678,并重现了故障。

  

        在 KB4041678 中微软声明了该补丁存在已知问题,会导致基于Microsoft JET 数据库引擎(Microsoft Access 2007 和更低版本或非 Microsoft 应用程序)的应用程序无法创建或打开 Microsoft Excel.xls 文件。错误消息为“外部数据库驱动程序 (1) 中的意外错误。(Microsoft JET 数据库引擎)。

  

        微软提供的临时解决方案是下载并安装 Microsoft Access 数据库引擎 2010 可再发行软件包,然后在 Microsoft Excel 中修改 DB 连接字符串以将 ACE 用作提供程序。示例:将 Provider=Microsoft.Jet.OLEDB.4.0 更改为 Provider=Microsoft.ACE.OLEDB.12.0。

  

        同时微软也正寻求一种解决方案,相信在不久的将来就会提供更新。但是,当下要解决用户问题,只能卸载 KB4041678,因为内网用户通过 WSUS 更新补丁,意味着将会有更多的用户遇到这个问题!是否可以找到被更新的文件做替换来解决这个故障呢?!尝试方法这样展开,先用 Application Verifier 和 WinDBG 去找验证这个应用程序,并截获断点。

  

        结果是,Application Verifier 收集到的日志中,并未发现什么异常,反而在 WinDBG 中发现了断点,如下图所示在载入模块“msexcl40.dll”时出现了问题。检查文件日期确实是10月份有更新过,尝试用正常 Windows 7 环境下的 msexcl40.dll 对故障Windows 7 系统和 Windows 10 系统进行替换,故障解除!

  

Snipaste_2017-11-10_13-28-20

  

        使用 Process Monitor 抓包观察,发现 msexcl40.dll 开始到操作结束出现了一系列的错误,具体可参考下图。

  

Snipaste_2017-11-10_15-06-00

  

Snipaste_2017-11-10_15-05-18

windows-10-fall-creators-update

HOWTO: 解决 Your Organization used Windows Defender Application Control to block this app

        gOxiA 前段时间为手上的 Dell Venue 8 Pro 全新安装 Windows 10 v1709(Fall Creators Update),没想到装完后竟然无法运行 EXE 程序,期间重装系统进行测试无数次(话说现在Windows安装起来实在太轻松了)。本以为是最初安装了 Windows 10 S 版导致的,后来又单独安装 Home、Pro 或者断网执行 OOBE,或者直接从 Home 升级到 Pro,清理组策略,几乎能想到的办法都试过了,可结果都令人失望。

        具体的错误信息如下图,提示“您的组织使用 Windows Defender 应用程序控制限制了该应用”,系统上几乎所有的 EXE 程序都无法正常运行,就像是安装 Windows 10 S 一样。

defender_warning

        最后向微软开了 Case,沟通中提到之前一些硬件需要关闭主板的 Secure Boot,才能正常运行 Windows 10,果然!在禁用 Dell Venue 8 Pro 后,EXE 程序可以启动了。

dell_venue_8_pro_sysinfo

        这款设备是个平板,采用了 Intel Atom Z Series 架构,记得早前就有公告提到过 Windows 10 与 Intel Atom Z3xxx 存在兼容性问题,没想到还真遇到了。虽然通过禁用 Secure Boot 能够运行系统内置的 EXE 命令,但是当安装其他应用软件时也会报 CPU 兼容性限制。

cpu_warning

        作为一款 4年前的 8寸 Windows 平板设备,还能有什么过高的要求呢?!现在倒是很期望微软后续的新型态移动 Windows 设备。

        如果大家跟我一样遇到了因 Windows Defender 限制 EXE 程序运行的问题,不妨尝试关闭 Secure Boot。此外利用固件限制 Windows 运行方式也是一种不错的选择,未来也许对企业非常用价值!

image

        微软已经正式宣布 Windows Phone/Mobile 停止更新并进入维护期,好在提供了 1709 版的更新,OS 版本最终锁定在 10.0.15254.1,这样一些设备如 gOxiA 手中的 Lumia 640 起码能用上拥有 UWP 成熟架构的 Windows 10,一些支持 UWP 的应用可以很好的运行在上面。从目前的测试看,Lumia 640 配合微软的无线显示适配器,还是一个不错的移动办公方案。

        就在这两天微软又针对 Windows 手机设备发布了一款 Over-the-cable Update Tool 软件,可以帮助用户通过线缆将 Windows 手机系统更新到最新版本,而无须等待运营商的推送。该软件需要 dotNet 4.0 的支持虽然是一个命令行工具,但提供了对 Windows 10 系统环境完好的支持,所以可以直接在 Windows 10 系统上运行。

        下面是 gOxiA 拿 Lumia 640 测试的结果,使用 USB 线缆将手机连接到笔记本,以管理员权限启动 CMD 并运行通过下载的程序包释放的命令行工具 otcupdater.exe,就可以自动更新。如果未连接手机先运行了命令,程序会提示连接手机。如果使用程序遇到了问题,可以先看看说明文档。

otcupdatetool-1

otcupdatetool-16

        由于 Lumia 920 没找到,估计要晚些时候再测试,没准能将 920 升级到 Windows 10。

        Over-the-cable Update Tool 下载地址:

https://www.microsoft.com/en-us/download/details.aspx?id=56120&751be11f-ede8-5a0c-058c-2ee190a24fa6=True&e6b34bbe-475b-1abd-2c51-b5034bcdd6d2=True&fa43d42b-25b5-4a42-fe9b-1634f450f5ee=True

Honolulu_logo

Project Honolulu Technical Preview 概览

        九月中旬微软 Windows Server Blog 宣布了全新的 Windows Server Management Experience,并为其开通了专属 Blog。该项目的名称目前叫 Microsoft Project Honolulu

        Project Honolulu 是一个本地化部署,基于浏览器的 Windows Server 管理工具集,可为管理员提供完全控制服务器基础结构的能力,官方称该管理工具更适用于那些未连接到互联网的专用网络上的服务器管理。Project Honolulu 是管理工具的现代演变,如已知的服务器管理器和MMC,它是对系统中心和业务管理套件的一个补充,并非要取代现有的产品。

        Project Honolulu 是一套 Web 应用程序,基于浏览器运行,但目前只支持“现代”浏览器,如:Microsoft Edge 或 Google Chrome,而 IE 不在它的支持范围内,即使是最新版的 IE11 也未能例外。

doesnt_support_ie

        Project Honolulu 除了能够管理 Windows Server 2016 外,还能够管理 Windows Server 2012 R2 和 Windows Server 2012 服务器,该管理工具并不依赖 Windows Server 系统,除了可以安装在 Windows Server 2016 上,还可以安装在 Windows 10 系统上。通过 WinRM 网关实现远程 Powershell和WMI 操作,从而对服务器执行管理。

architecture

        下图就是 Project Honolulu 的运行界面,gOxiA 小试了一下,功能异常强大,几乎可以在浏览器中执行所有的服务器管理操作,基础的如设备基本信息,硬件资源实时监控,修改计算机名,加入到活动目录。还可以管理系统上的证书、硬件设备、日志,甚至还包含了文件管理和注册表管理。而防火墙、用户和组、网络、服务、存储、更新,以及系统角色和功能,也都面面俱到。更强大之处,还包含了对实时进程的管理,可以直接在浏览器中监控和操作远端服务器正在运行的进程;此外如果服务器安装了Hyper-V,还可以通过 Project Honolulu 直接进行平台的配置和虚拟机的管理。

snipaste20170926_154225

        Project Honolulu 安装包区区30MB 多一点,就实现了如此强大的管理功能,并且部署和安装方式简单、便捷,真是难得之作!后续 gOxiA 将分步与大家分享 Project Honolulu 相关资讯,敬请关注!

HOWTO: 获取 Windows 10 Insider Preview Skip ahead

        Windows 10 RS4 已经发布了 17004.1000,相信有不少朋友都想试试下一个版本的 Windows 10,虽然已经是  Windows 10 Insider Preview 成员,但在 Windows 预览体验计划面板中切换到 “Skip ahead to the next Windows release” 后,系统会自动改回当前预览版本,可以在系统栏看到通知提示 “Your Windows Insider Program content settings have been reverted.” 那么该如何强制切换到 Skip ahead 呢?!

1

2

        微软提供了一个注册表键值 “ContentType”,可强制修改获取的版本分支。该键位于“HKLM\SOFTWARE\MicrosoftWindowsSelfHost\Applicability”,默认为“Current”,如果启用预览体验计划,则为“Active”,如果要获取下一个版本则改为 “Skip”。建议在修改时禁用网卡,在重启系统后再连接网络,之后无需再等待2天,即可立即开始更新。

regedit_contenttype

3

win10creatorsupdate1703

HOWTO: 解决 Windows 10 UWP Apps 无法运行

        UWP - Universal Windows  Platform(通用 Windows 平台),自 Windows 10 引入,进一步推动了 WIndows Runtime 模型的发展,一统 Windows 核心。作为核心版的一部分,UWP 现提供了一个可供在每个运行 Windows 10 设备上使用的通用应用平台。

OneWindowsPlatform

        简单理解,就是我们开发一个 UWP 应用即可运行在所有的 Windows 10 设备上,其优势显而易见!有关 UWP 详细的介绍可以移步 https://docs.microsoft.com/zh-cn/windows/uwp/get-started/universal-application-platform-guide 参考。

        而今天 gOxiA 要与大家分享的肯定是与 ITPro 密切相关的内容,正如本期之题目解决 Windows 10 UWP Apps 无法运行。具体的故障现象是点击 UWP Apps 都会没有响应,UWP Apps 不会按照预期那样启动运行。在有些环境下能看到点击 UWP Apps 图标后会显示正在安装一样的进度条,之后再无反应。具体的故障现象可参考下面的动画截图:

errordemo

        但是切换到 Administrator 账户下却能够运行这个 UWP Apps(PS:已经配置了GPO允许本地管理员运行 UWP Apps),唯独无法运行 Microsoft Edge,会出现闪退。检查日志发现来源 Apps,ID 5973 的错误事件,具体错误是“系统找不到指定文件”。难道是应用相关文件损坏?!

log

        使用 PowerShell 命令行对 Microsoft Edge 进行重装测试,结果发现“部署失败,原因是 HRESULT: 0x80073D0A,无法安装该程序包,因为 Windows 防火墙服务未运行。请启用 Windows 防火墙服务并重置。”错误很明确了因为防火墙服务未启动导致!但是,为什么其他 UWP Apps 却能够运行呢?而且使用其他账号又都无法运行呢?!

ps_reinstall_edge

        带着迷惑执行了 PowerShell 命令行对所有系统 UWP Apps 执行重装任务,命令行参考如下:

Get-AppXPackage -AllUsers |Where-Object {$_.InstallLocation -like "*SystemApps*"} | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}

        结果一致,同样提示因 Windows Firewall 服务未启动导致 UWP Apps 无法安装。检查 Windows Firewall 服务确实被禁用,重新启动后故障解除。

        其实这个过程还有另外一个版本,在发现故障的时候是在生产环境下,且之前交付的 Surface Pro 4 都是经过测试的,运行也有近一年突然出现这个问题,还是新装系统后,确实十分诡异!参考映像未有更新,故障现象均发生在加域之后,那必然与域环境有关,首先检查的就是 GPO,是否进行了限制,但经过分析发现是 Windows 防火墙服务启动被配置为禁用,恢复后故障消失,之后再禁用 Windows Firewall 服务进行测试,发现除了 Edge 外其他的 UWP Apps 均可正常运行,怀疑是系统 Bug 向微软开了 Case,引出前面提到的重装应用进行测试,确认 Powershell 命令行执行失败时提示的错误信息,因防火墙服务未运行是导致 UWP Apps 无法启动的根因。

        但该问题是否被确认为系统 Bug,还暂无结果。

win10creatorsupdate1703

HOWTO: 解决简体中文版Windows 10 IE主页和搜索被百度锁定的问题

        微软与百度达成合作,在简体中文版的 Windows 10 中内置了百度主页和搜索,当我们拿到一台装有 Windows 10的新电脑时启动浏览器会发现主页被重定向到了百度,而默认的搜索引擎也是百度。如果你不喜欢完全可以手工重新设定一次,便可改回自己喜欢的主页和搜索。

        但是对于企业IT人员在对Windows进行预定制时,可能会触发浏览器的保护策略。例如IT人员在Sysprep 的 Audit 模式下修改了IE的默认主页为企业内部站点,搜索改回Bing,这一切看起来都是很正常的。但此时如果将当前系统实例连接互联网,会发现再次打开浏览器时保护机制被触发了,系统会提示“由于默认搜索提供程序设置已损坏,Internet Explorer重置了你的默认搜索提供程序,要将默认搜索提供程序更改为Bing吗?”

1

        此外,还会提示“由于主页设置已损坏,Internet Explorer重置了你的主页,要将主页改为XXXX吗?

2

        接下来不论你如何选择,或是修改主页和搜索,都将无济于事,每次打开浏览器都会提示。分析了注册表发现了如下图的注册项”Protected - It is a violation of Windows Policy to modify. See aka.ms/browserpolicy“,确认是定制的主页和搜索触发了保护机制。(PS:百度相当有实力啊,可以让MS这么为他推广)

3

        不管怎样问题还是要解决的,用Procmon进行了抓包,发现了一些线索。当设置主页和搜索时会触发一个名为EUPP的注册表项,看内容其下的 BackupHomePage 和 BackupDefaultSearchScope 十分可疑,由于是16进制的HEX数据,Decode 后发现是加密的,所以无法得到具体的数据。

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\EUPP

        之后也咨询了微软方面,确认了与 EUPP 有关,建议可以修改 DoNotAskAgain 为想要的 URL,并且还需要修改 Hosts 文件添加一条记录 “127.0.0.1 ieonline.microsoft.com”,便可解决 IE 被锁定并重复提示设置主页和搜索的问题。

win10creatorsupdate1703

HOWTO: 为Windows 10开始界面的程序添加 以其他用户身份运行

        Windows 10 Pro v1703 版在未加域前可以在开始界面上鼠标右键点击程序使用更多菜单下的“以其他用户身份运行”(run as a different user)来执行程序。这个功能使在加域的客户端环境下能快速的以不同的域账户身份或本地用户身份去运行一个程序,而无需切换桌面环境。例如安装了 RSAT 当要使用 ADUC 进行管理操作,而当前登录用户又没有对应权限时,就可以利用“以其他用户身份运行”,如下图所示。

RunAsADifferentUserInStart

        令 gOxiA 感到郁闷的是在实际的环境中,一旦客户端加入域后开始界面上的“以其他用户身份运行”就消失了,本以为是域组策略限制了使用,但实际并没有做任何限制。如果要启用这个功能可以通过域组策略进行预配,该选项位于 用户配置/策略/管理模板/“开始”菜单和任务栏/在“开始”中显示“以其他用户身份运行”,启用即可。

GPO-RunAsADifferentUserInStart

        如果无法实施域组策略,那么可以修改本地组策略,或注册表。但实际测试发现,当修改注册表重启计算机后功能虽然生效了,但是第二天貌似又会被覆盖掉。在咨询微软后了解到,虽然该选项属于用户配置,但可以在 HKLM 下创建对应的项和键,除了可以解决所有登录用户都能够在开始界面上显示”以其他用户身份运行“外,也可以避免设置被覆盖。(PS:是不是 Bug 目前不得而知!)

        下面是针对用户配置和计算机配置的对应路径和键值,可参考使用。

  • HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Explorer
  • HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Explorer
  • Name: ShowRunAsDifferentUserInStart
  • Type: REG_DWORD
  • Data: 1
分页: 1/33 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]