win10creatorsupdate1703

HOWTO: 解决因 ESENT ID49 WebCache 损坏导致的 IE 或 Office 异常故障

        企业环境中通常会使用经过定制的系统作为企业标准化系统映像,用于客户端的操作系统部署和安装。最佳实践中通常会再审计模式下复查或配置用户环境,之后通过启用 CopyProfile 将所有用户桌面统一。但是在审计模式下定制,或之后通过离线模式安装更新补丁,可能会因 WebCache 损坏,导致进程无法正常读写操作 WebCacheV01.dat 文件,从而引发其他用户登录系统后无法正常运行 IE 或 Office Outlook 等异常故障。

        例如在 Administrator 下封装系统打包为 WIM 后进行分发部署,客户端安装后执行后续配置任务,完成后使用域账号或其他本地账号登录,此时会发现点击 IE 图标运行 IE 后其程序界面并未显示,但在任务管理中能看到其进程存在。检查 CPU 和 内存 占用正常,应用和系统事件中没有其他错误或警告记录,唯一可疑的就是来源为ESENT,ID49的错误事件,其内容为 Administrator 对应目录下的 WebCacheV01.dat 损坏,如下图所示。

屏幕截图(1)

        在随后的排错中,在 IE 无运行界面,和 Outlook 挂起的状态下,删除 Administrator 用户配置文件后,所有程序立刻恢复正常,目前分析应与 ESENT 出现的 WebCache 损坏有关。

win10creatorsupdate1703

HOWTO: 使用命令行为 Windows 10 添加备份计划

        还记得 Windows 7 内置的“备份和还原”功能吗?是 Windows 自带的一款用于个人电脑备份和还原的数据备份工具,可根据用户需要创建一次性的系统备份映像,或制定一个备份计划,按照时间备份需要的数据文件。如果还不曾了解这个好功能,可以先看看 gOxiA 早期分享的文章“使用 Windows 备份功能保护硬盘数据”,之后的“使用 webadmin 自动恢复系统备份”则分享了如何利用命令行加参数快速恢复备份。

        虽然在 Windows 7 中备份和还原功能提供了命令行以及一组常用的参数,但是细心的朋友会发现其只提供了创建一次性备份的参数,而缺少重要的计划备份创建参数,这样不利用用户编写命令行脚本以实现自动化的备份需求。

win7_wbadmin

        从 Windows 8 开始”备份和还原”功能被淡化,微软推荐使用“文件历史记录”取而代之,但直至 Windows 10 ”备份和还原“功能仍被保留了下来,说明还是拥有一定用户群的。此外不同于 Windows 7 版,Wbadmin 的命令行参数得到了增强,支持创建或修改每日备份计划,这样将极大方便 IT 人员针对一些特殊用户或场景以命令行脚本方式自动为用户环境配置备份计划。该参数即“ENABLE BACKUP”,可以使用“wbadmin ENABLE BACKUP /?"获取详细的参数说明。

win10_wbadmin

        下面的命令行将创建一个每日11点和23点对指定目录且包含系统状态进行备份,并使用指定账号存储在网络共享的计划备份任务。

wbadmin enable backup -addtarget:\\backupshare\goxia-backup1 -include d:\personal,e:\sources -user:contoso\goxia -password:* -schedule:11:00,23:00 -quiet -allcritical

参考文档:

https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/wbadmin-enable-backup

ie_logo

深入探讨 网站想要使用你计算机上的程序打开Web内容

        gOxiA 因为工作需要最近在做与桌面虚拟化相关的技术内容,期间就遇到了“网站想要使用你计算机上的程序打开 Web 内容”的问题。具体是在用户安装 VDA 客户端后,通过 IE 访问 VDI 门户时会弹出这个提示,如下图所示。其实问题是比较简单的,为了避免下次再弹出提示框,我们通常会复选“不再对此程序显示此警告”,然后点击“允许”。这样在访问 VDI 门户后就会直接启动 VDA 客户端正常访问。

snipaste20170630_091127

        之后 gOxiA 又用 Microsoft Edge 访问测试了一下,会直接提示下载一个扩展名为 ICA 的文件,而这个 ICA 在当前系统上被注册为使用一个特定的应用程序打开。

snipaste20170710_093642

snipaste20170710_093721

        也就是说在整个访问过程中是浏览器下载了一个文件,然后由指定的应用程序打开它,当在 IE 浏览器环境下时可通过复选“不再对此程序显示此警告”然后“允许”来实现通过应用程序直接打开文件的操作,这样用户体验就会更顺畅。

        那么问题来了,用户说如果我复选了“不再对此程序显示此警告”,然后点击了“不允许”,可发现是误操作了该怎么办呢?该如何恢复呢?为此,gOxiA 检查了 IE 设置还真的不像禁用弹出窗口、或兼容性视图设置那样会有明确的设置选项且支持修改操作。由于通常也都是习惯于正确的操作,确实会忽略掉如果复选不再显示警告并点击了不允许会有什么结果。

        期间也有咨询过微软支持,但也没有准确的解答,无奈只能自己研究 。使用 Procmon 抓包来看看这一设置都做了什么操作?!

snipaste20170630_092434

        还挺轻松立刻就锁定了位置,当我们在弹出“网站想要使用你计算机上的程序打开Web内容”的警告窗体上,复选“不再对此程序显示次警告”,并点击“允许“后,iexplore 进程会在注册表的 “HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\” 下生成一个新的 GUID 项,并写入该程序的相关键值。其中 AppPath 和 AppName 是容易理解的,也没有什么特殊之处,而 Policy 则是非常关键,默认键值为”3“。如果我们修改了这个值,例如:2,那么再下次访问时又会重新弹出警告让用户选择,只有值为3时才会默认通过安装的应用打开下载的 ICA,而不再弹出任何提示。此外,在重新复选并允许后 iexplore 进程并不会修改之前已经添加的项和对应的键值,而是会重新生成一个新的项,很有意思!

        接下来 gOxiA 又重新做了一次抓包,但这次操作是复选不再提示后不允许运行,但在抓包数据中分析发现,执行这一操作并不会写入任何设置。也就是说即使用户复选了不再提示,只要点击的是不允许,那么前面的复选设置是不会起到任何效果的。

        至此,答案已经出来,我们也不必担心用户是否会进行误操作,如果出现 IE 访问 VDI 门户没有启动 VDA 客户端的故障问题,那么直接从 VDA 下手排错即可,无需再在 IE 身上徘徊!

        后来微软支持也给找到了一篇文档,原来早在2009年时就有微软人士详细讲解过这个安全功能,具体可参考下面这篇 Blog :

https://blogs.msdn.microsoft.com/ieinternals/2009/11/30/understanding-the-protected-mode-elevation-dialog/

分页: 40/146 第一页 上页 35 36 37 38 39 40 41 42 43 44 下页 最后页 [ 显示模式: 摘要 | 列表 ]