troubleshooting

  

HOWTO: 解决无法打开 Excel 表格中 URL 的故障问题

  

        最近遇到一个比较典型的故障问题,排错过程跌宕起伏,事后感觉挺有代表性,决定拿出来与大家分享。故障环境是一台 Windows 10 + Office 2016 的加域设备。用户打开一个 Excel 文档,表中有一列文本包含 URL 超链接,可通过点击该文本启动 IE 去访问指定的网址。但是实际在点击链接后会提示“无法打开http://……无法下载您要求的信息。”

  

image

  

        对其他链接进行了尝试,均提示相同的警告,但是手工新增加一个文本链接,却访问正常。之后将故障网址复制出来,粘贴到 IE 中再次访问,发现能够到达对方的服务器,但返回了“403 Forbidden”,可是将网址复制到其他浏览器,如:Edge、Chrome 中访问却是正常的。再回顾 IE 访问故障界面,发现地址栏中的中文路径在403反馈中显示的是一段乱码。说明故障的原因是由网址中包含的中文字符导致的,通常这类问题是由字符编码错误引发的。

  

image

  

        为了求证错误,gOxiA 对正常和异常访问的 Web 数据进行了抓包,以做进一步的分析。如下结果,分析发现中文字符确实被进行了编码,但是异常访问的 Web 数据中所包含的第二次 URL 请求出现了变化,编码字符有异常,前后不符。

  
      
  • 正常访问:
  

image

  
      
  • 异常访问:
  

image

  

        另外比较奇怪的是为什么会发起两次 HTTP 请求呢?!对两次访问的发起代理程序进行了分析,发现用户在 Excel 中点击 URL 时,Excel 发起了 HTTP 请求,且提交的 URL 编码是正确的。

  

image

  

        但是,在传递给 IE 后,却被 IE 重新编码成了错误的 URL 。

  

image

  

        至此,可以判定是因为 IE 提交的含中文字符 URL 的编码问题引发的此次故障。而中文编码问题通常出在 Windows 和 Linux 系统之间,多数原因是 Windows 提供的中文编码默认为 GB2312,而 Linux 使用的是 UTF-8,所以需要强制 IE 使用 UTF-8 来提交 URL,即可解决该问题。

  

        但是,在执行配置操作时发现,IE 的“以 UTF-8 形式发送 URL 路径”选项被锁定了,无法修改!且明确提示“某些设置由系统管理员进行管理”。做进一步分析,确认系公司域下发的组策略所谓,不知道为什么要禁用这个选项,实属奇葩!

  

image

  

        通知 AD 运维团队修改 GPO 不切实际,只能另寻出路!于是对 Excel 中点击 URL 的操作进行了抓包,筛选出来4000多行数据,“功夫不负有心人”在位于“HKCU\Software\Microsoft\Office\16.0\Common\Internet”下发现了一个有价值的注册表键“Encoding”,既然隶属于 Office,也就意味着可以通过 Office 选项对文档的编码进行定义。

  

image

  

image

  

        最后,在 Excel 高级选项的 Web 选项中找到了切换文档编码的设置。即,进入 Excel 选项,依次点击“文件-选项-高级”,在右侧窗口中向下拖动至“常规”,找到“Web选项”,进入。

  

image

  

        在“Web选项”下,切换至“编码”选项卡,找到“将此文档另存为”选项,从下拉框中找到“Unicode(UTF-8)”,点击“确定”完成设置,保存当前文档重新打开再点击 URL 尝试,故障消失。

概览 Windows 10 内置的 OpenSSH 功能

        回顾 gOxiA 早在2005年撰写的一篇日志,曾提到 SSH 才是王道,现在看来也不为过,命令行的魅力和实用性无法替代,不会随着科技的发展而消亡。对于管理 Linux 系统,命令行则更加至关重要,SSH 也是最佳的远程管理方式。过去要在 Windows 上使用 SSH Client 通常要找第三方工具,如 Putty,或者 Xshell,前者官方访问受阻,还被搞出过一次安全事件;后者又是需要付费的产品,实在令人难以选择。

        但是现在 Windows 10 原生支持 OpenSSH Client,此外还支持 OpenSSH Server,也就是说我们无需再借助第三方的 SSH 软件去管理 Linux。需要注意的是由于 Windows 10 内置的 OpenSSH 还处于 Beta 阶段,所以微软并不建议你应用在生产环境。

        迫不及待,那么我们该如何启用 OpenSSH 功能呢?!非常简单,通过系统栏的通知图标选择”所有设置“导航至”应用-应用和功能“,点击”管理可选功能“-”添加功能“,选择”OpenSSH Client (Beta)“。

ssh0

        如果希望借助命令行方式来安装,有两种方法可以参考:

一、 通过 PowerShell,可以使用如下命令行获取 OpenSSH 功能的完整名称,然后再进行安装。

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

get-windowscapability

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

二、通过 DISM 进行安装,过程与 PowerShell 类似,都要先找到 OpenSSH 对应的安装组件名称,再进行安装。

dism /Online /Get-Capabilities | findstr OpenSSH

dism_get-capabilities

dism /Online /Add-Capability /CapabilityName:OpenSSH.Client~~~~0.0.1.0

        OpenSSH Client 安装完毕后,可以通过 CMD 执行 SSH 调用,例如要远程登录 name.cloudapp.net 的 SSH,则执行” ssh account@name.cloudapp.net“,域名首部附加 account@ 是告知所要登录的用户名,等同于 -l 参数,否则将会使用当前的 Windows 登录账号去执行 SSH 验证。

        如下图所示,gOxiA 通过 ssh 命令行登录到了 远在墙外的 Azure Ubuntu 虚拟机。

ssh1

        Windows 10 当前内置的 OpenSSH Client 版本,满足基本的操作还是没问题的,但是诸如 nano、rz  等程序指令还不能完好的支持。考虑是不是可以尝试给 Azure Ubuntu VM 添加个简单的图形界面,能够以 RDP 协议登录?!

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"”。

分页: 36/146 第一页 上页 31 32 33 34 35 36 37 38 39 40 下页 最后页 [ 显示模式: 摘要 | 列表 ]