HOWTO: 解决无法打开 Excel 表格中 URL 的故障问题
HOWTO: 解决无法打开 Excel 表格中 URL 的故障问题
最近遇到一个比较典型的故障问题,排错过程跌宕起伏,事后感觉挺有代表性,决定拿出来与大家分享。故障环境是一台 Windows 10 + Office 2016 的加域设备。用户打开一个 Excel 文档,表中有一列文本包含 URL 超链接,可通过点击该文本启动 IE 去访问指定的网址。但是实际在点击链接后会提示“无法打开http://……无法下载您要求的信息。”
对其他链接进行了尝试,均提示相同的警告,但是手工新增加一个文本链接,却访问正常。之后将故障网址复制出来,粘贴到 IE 中再次访问,发现能够到达对方的服务器,但返回了“403 Forbidden”,可是将网址复制到其他浏览器,如:Edge、Chrome 中访问却是正常的。再回顾 IE 访问故障界面,发现地址栏中的中文路径在403反馈中显示的是一段乱码。说明故障的原因是由网址中包含的中文字符导致的,通常这类问题是由字符编码错误引发的。
为了求证错误,gOxiA 对正常和异常访问的 Web 数据进行了抓包,以做进一步的分析。如下结果,分析发现中文字符确实被进行了编码,但是异常访问的 Web 数据中所包含的第二次 URL 请求出现了变化,编码字符有异常,前后不符。
- 正常访问:
- 异常访问:
另外比较奇怪的是为什么会发起两次 HTTP 请求呢?!对两次访问的发起代理程序进行了分析,发现用户在 Excel 中点击 URL 时,Excel 发起了 HTTP 请求,且提交的 URL 编码是正确的。
但是,在传递给 IE 后,却被 IE 重新编码成了错误的 URL 。
至此,可以判定是因为 IE 提交的含中文字符 URL 的编码问题引发的此次故障。而中文编码问题通常出在 Windows 和 Linux 系统之间,多数原因是 Windows 提供的中文编码默认为 GB2312,而 Linux 使用的是 UTF-8,所以需要强制 IE 使用 UTF-8 来提交 URL,即可解决该问题。
但是,在执行配置操作时发现,IE 的“以 UTF-8 形式发送 URL 路径”选项被锁定了,无法修改!且明确提示“某些设置由系统管理员进行管理”。做进一步分析,确认系公司域下发的组策略所谓,不知道为什么要禁用这个选项,实属奇葩!
通知 AD 运维团队修改 GPO 不切实际,只能另寻出路!于是对 Excel 中点击 URL 的操作进行了抓包,筛选出来4000多行数据,“功夫不负有心人”在位于“HKCU\Software\Microsoft\Office\16.0\Common\Internet”下发现了一个有价值的注册表键“Encoding”,既然隶属于 Office,也就意味着可以通过 Office 选项对文档的编码进行定义。
最后,在 Excel 高级选项的 Web 选项中找到了切换文档编码的设置。即,进入 Excel 选项,依次点击“文件-选项-高级”,在右侧窗口中向下拖动至“常规”,找到“Web选项”,进入。
在“Web选项”下,切换至“编码”选项卡,找到“将此文档另存为”选项,从下拉框中找到“Unicode(UTF-8)”,点击“确定”完成设置,保存当前文档重新打开再点击 URL 尝试,故障消失。
[Tips] 通过 RDP 连接 Azure 中的 Ubuntu 虚拟机
通过RDP连接Azure中的Ubuntu虚拟机
上一回 gOxiA 说到了“概览 Windows 10 内置的 OpenSSH 功能”,文末曾提到用RDP协议(Windows 远程桌面)来访问位于 Azure 中Ubuntu虚拟机桌面的愿景。日志发布之后,便开始了测试并参考了其他网文。最后的测试结果是安装 xubuntu-desktop 可以成功从 RDP 登录。而 gOxiA 早期实践的 mate-desktop 却失败了!安装完毕后能够 RDP 连接并进入登录界面。但在输入账号密码后总提示目录需要读、写权限。安装指令可以参考下图,之前实践过是没有问题的!
懒得折腾 Linux,便尝试通过 xubuntu 实现,首先通过 SSH 连接 Azure Ubuntu VM,执行安装指令,大概2个多GB,做好思想准备!
“sudo apt-get install xubuntu-desktop"
之后,安装 xrdp 以启用 RDP 支持,其实这是整篇的关键!:-P
"sudo apt-get install xrdp"
设置并启动 xrdp。
”echo xfce4-session > ~/.xsession“
"sudo /etc/init.d/xrdp start"
其他网文推荐修改 /etc/xrdp/startwm.sh,在 ./etc/x11/xsession 前插入一行 xfce4-session,但其实不做也能正常使用,没去深究!gOxiA 是在去设置 Azure 防火墙前重启了一次 VM。下面再来说说 Azure 下 VM 的准备步骤,默认 Ubuntu VM 只会开放 22 端口供 SSH 连接访问使用。既然我们在 Ubuntu 上安装了桌面环境和RDP支持,那么要从远程进行访问就必须开放 RDP 端口,即 3389。对于“经典虚拟机”,需要对其“终结点”进行修改,如下图所示。对基于资源管理器模型的 VM,则需要对“网络安装组(NSGs)”进行修改。理解程度上前者更容易理解,但后者更适合颗粒度管理。
终结点的完整帮助可以参考 Microsoft Docs - “How to set up endpoints”。如果要使用 PowerShell 进行操作,则需要先安装 Azure PowerShell 支持组件,对于经典模式虚拟机则需要参考 “安装 Azure PowerShell 服务管理模块”进行操作。之后利用“Add-AzureEndpoint”添加,参考命令行如下。
“Get-AzureVM -ServiceName "ContosoService" -Name "Ubuntu" | Add-AzureEndpoint -Name "RDP" -Protocol "tcp" -PublicPort 3389 -LocalPort 3389 | Update-AzureVM”
完成配置后,便可使用远程桌面工具像连接 Windows 一样去登录 Ubuntu,如下图所示,界面比较丑陋!但登录进入xubuntu后桌面环境还是显得挺简洁的,不过2GB多的内容也是不少。愿意尝鲜的用户倒是可以尝试!
[MDT] 微软发布 Microsoft Deployment Toolkit 8450
微软发布 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。
根据目前初步的测试,MDT 8450 仍旧支持 Windows 7 的部署,所以适合广大的企业IT环境。但是对于国内这种多分区,或固态+机械硬盘且多分区的复杂环境,默认支持或称为流程,还是存在一些问题的,存在差异理论这是问题的根源!