<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[gOxiA=苏繁=SuFan Blog]]></title> 
<link>https://sufan.maytide.net/index.php</link> 
<description><![CDATA[gOxiA,苏繁,sufan,Microsoft MVP]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[gOxiA=苏繁=SuFan Blog]]></copyright>
<item>
<link>https://sufan.maytide.net/read.php/1842.htm</link>
<title><![CDATA[深入探讨 网站想要使用你计算机上的程序打开Web内容]]></title> 
<author>gOxiA &lt;sufan_cn@msn.com&gt;</author>
<category><![CDATA[Windows Client]]></category>
<pubDate>Mon, 10 Jul 2017 02:37:21 +0000</pubDate> 
<guid>https://sufan.maytide.net/read.php/1842.htm</guid> 
<description>
<![CDATA[ 
	<p><a href="http://goxia.maytide.net/ftpup/2017/6c7b0873933a_8272/ie_logo.png"><img title="ie_logo" style="background-image: none; display: inline; border-image: none" border="0" alt="ie_logo" src="http://goxia.maytide.net/ftpup/2017/6c7b0873933a_8272/ie_logo_thumb.png" width="300" height="133"></a></p> <p><font color="#fd3f0d" size="4"><strong>深入探讨 网站想要使用你计算机上的程序打开Web内容</strong></font></p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://goxia.maytide.net" target="_blank">gOxiA</a> 因为工作需要最近在做与桌面虚拟化相关的技术内容，期间就遇到了“<font style="background-color: rgb(255,255,0)">网站想要使用你计算机上的程序打开 Web 内容</font>”的问题。具体是在用户安装 VDA 客户端后，通过 IE 访问 VDI 门户时会弹出这个提示，如下图所示。其实问题是比较简单的，为了避免下次再弹出提示框，我们通常会复选“<font style="background-color: rgb(255,255,0)">不再对此程序显示此警告</font>”，然后点击“<font style="background-color: rgb(255,255,0)">允许</font>”。这样在访问 VDI 门户后就会直接启动 VDA 客户端正常访问。</p> <p><a href="http://goxia.maytide.net/ftpup/2017/6c7b0873933a_8272/snipaste20170630_091127.png"><img title="snipaste20170630_091127" style="background-image: none; display: inline" border="0" alt="snipaste20170630_091127" src="http://goxia.maytide.net/ftpup/2017/6c7b0873933a_8272/snipaste20170630_091127_thumb.png" width="543" height="371"></a></p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 之后 gOxiA 又用 Microsoft Edge 访问测试了一下，会直接提示下载一个扩展名为 ICA 的文件，而这个 ICA 在当前系统上被注册为使用一个特定的应用程序打开。</p> <p><a href="http://goxia.maytide.net/ftpup/2017/6c7b0873933a_8272/snipaste20170710_093642.png"><img title="snipaste20170710_093642" style="background-image: none; display: inline" border="0" alt="snipaste20170710_093642" src="http://goxia.maytide.net/ftpup/2017/6c7b0873933a_8272/snipaste20170710_093642_thumb.png" width="634" height="439"></a></p> <p><a href="http://goxia.maytide.net/ftpup/2017/6c7b0873933a_8272/snipaste20170710_093721.png"><img title="snipaste20170710_093721" style="background-image: none; display: inline" border="0" alt="snipaste20170710_093721" src="http://goxia.maytide.net/ftpup/2017/6c7b0873933a_8272/snipaste20170710_093721_thumb.png" width="604" height="385"></a></p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 也就是说在整个访问过程中是浏览器下载了一个文件，然后由指定的应用程序打开它，当在 IE 浏览器环境下时可通过复选“<font style="background-color: rgb(255,255,0)">不再对此程序显示此警告</font>”然后“<font style="background-color: rgb(255,255,0)">允许</font>”来实现通过应用程序直接打开文件的操作，这样用户体验就会更顺畅。</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 那么问题来了，用户说如果我复选了“<font style="background-color: rgb(255,255,0)">不再对此程序显示此警告</font>”，然后点击了“<font style="background-color: rgb(255,255,0)">不允许</font>”，可发现是误操作了该怎么办呢？该如何恢复呢？为此，gOxiA 检查了 IE 设置还真的不像禁用弹出窗口、或兼容性视图设置那样会有明确的设置选项且支持修改操作。由于通常也都是习惯于正确的操作，确实会忽略掉如果复选不再显示警告并点击了不允许会有什么结果。</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 期间也有咨询过微软支持，但也没有准确的解答，无奈只能自己研究 。使用 Procmon 抓包来看看这一设置都做了什么操作？！</p> <p><a href="http://goxia.maytide.net/ftpup/2017/6c7b0873933a_8272/snipaste20170630_092434.png"><img title="snipaste20170630_092434" style="background-image: none; display: inline" border="0" alt="snipaste20170630_092434" src="http://goxia.maytide.net/ftpup/2017/6c7b0873933a_8272/snipaste20170630_092434_thumb.png" width="634" height="61"></a></p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 还挺轻松立刻就锁定了位置，当我们在弹出“网站想要使用你计算机上的程序打开Web内容”的警告窗体上，复选“不再对此程序显示次警告”，并点击“允许“后，iexplore 进程会在注册表的 “HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\” 下生成一个新的 GUID 项，并写入该程序的相关键值。其中 AppPath 和 AppName 是容易理解的，也没有什么特殊之处，而 Policy 则是非常关键，默认键值为”3“。如果我们修改了这个值，例如：2，那么再下次访问时又会重新弹出警告让用户选择，只有值为3时才会默认通过安装的应用打开下载的 ICA，而不再弹出任何提示。此外，在重新复选并允许后 iexplore 进程并不会修改之前已经添加的项和对应的键值，而是会重新生成一个新的项，很有意思！</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 接下来 gOxiA 又重新做了一次抓包，但这次操作是复选不再提示后不允许运行，但在抓包数据中分析发现，执行这一操作并不会写入任何设置。也就是说即使用户复选了不再提示，只要点击的是不允许，那么前面的复选设置是不会起到任何效果的。</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 至此，答案已经出来，我们也不必担心用户是否会进行误操作，如果出现 IE 访问 VDI 门户没有启动 VDA 客户端的故障问题，那么直接从 VDA 下手排错即可，无需再在 IE 身上徘徊！</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 后来微软支持也给找到了一篇文档，原来早在2009年时就有微软人士详细讲解过这个安全功能，具体可参考下面这篇 Blog ：</p> <p><a title="https://blogs.msdn.microsoft.com/ieinternals/2009/11/30/understanding-the-protected-mode-elevation-dialog/" href="https://blogs.msdn.microsoft.com/ieinternals/2009/11/30/understanding-the-protected-mode-elevation-dialog/">https://blogs.msdn.microsoft.com/ieinternals/2009/11/30/understanding-the-protected-mode-elevation-dialog/</a></p>
]]>
</description>
</item>
</channel>
</rss>