remoteapp-connecting

使用 RemoteApp 方式访问远程桌面上的应用程序

        补充这篇日志纯粹是为了方便自己,经验技巧当然是很早以前的!原因是最近经常要访问笔记本上的应用,但又不想基于远程桌面环境,所以直接以应用窗口模式打开远程桌面上的应用是最为合适的。这里要用的到就是RemoteApp,而该技术在客户端系统上也能够通过修改注册表来实现。

        下面就是一个设置的例子:

  1. 打开注册表编辑器定位到HKLM\software\microsoft\windowsnt\currentversion\terminalserver\tsappallowlist  
  2. 在路径下新建名为 applications 的项,然后在该项下创建需要发布的应用程序的项,名字可自行命名,例如 notepad  
  3. 在 notepad 项下创建名为 name 和 path 的字符串,各自的值分别为 Notepad 和 c:\windows\system32\notepad.exe  
  4. 回到路径 tsappallowlist,修改fdisableallowlist的值为 1  
  5. 现在创建一个远程桌面连接,保存到桌面可命名为remoteapp-notepad.rdp  
  6. 修改和添加该文件内容如下:
    a) remoteapplicationmode:i:1
    b) remoteapplicationprogram:s:notepad
    c) disableremoteappcapscheck:i:1
    d) alternate shell:s:rdpinit.exe

        OK,双击这个 RDP 便可直接打开远程桌面环境下的 Notepad 程序,显示的界面仅仅是 Notepad 的窗体,这样可方便的在本地和远程之间切换使用,像使用本地程序一样。运行状态如下面截图所示:

snipaste20161208_113207

        目前尚未解决的问题是无法执行 Office 应用程序,可能受限于授权模式,还有待继续研究!但是可以通过运行的Notepad调用Explorer定位到Office2016的程序路径打开执行。

Co3p9r4XYAAb_t8

针对 Windows 10 访问 Outlook 中 URL 的问题补充

        问题回顾《HOWTO: 解决 Windows 10 访问 Outlook 中的 URL 时提示"你要如何打开此文件" 》,微软官方的 KB3094186 确认Outlook 2007/2010 在 Windows 10 上设置 IE11 为默认浏览器时会导致相关注册表数据丢失而引发故障的发生。解决途径是使用微软的 easyfix 20155 进行修复,该修复工具其实是在注册表中对HTMLFILE新增了的“新开”指令。即“HKCR\htmlfile\shell”下新建名为“opennew\command”的项,其默认值为一段 CMD 指令“cmd /c start %1”,微软解释添加该指令后便可解决在 Outlook 中打开 URL 时总提示用哪个浏览器打开的问题,并且打开的 URL 会在当前 IE 的新选项卡中打开,以避免每点击一次 URL 都打开一个新的 IE 进程。当然,如果不介意的话,也可以直接指定 iexplore.exe %1 来执行。

        早先看到这个解决方案的时候就挺纳闷,为了解决是新选项卡还是新窗口打开就要通过 cmd 调用 start 来执行,有违程序设计和开发常理,实在不够严谨。果然,后续就遇到了问题!!!如果 Outlook 中邮件内容里的 URL 包含 & 符号,那么最终被打开的 URL 将会被自动截断,这是因为 CMD 环境下,也就是我们常说的命令行会将 & 符号识别为连续执行命令符号,也就是说会把 & 符号后面的内容识别为一段命令,结果可想而知!IE 在经过 CMD 和 Start 的辗转调用后,最终得到的 URL 已经面目全非!

error-demo

        如果我们试图为 %1 添加双引号,那么 Outlook 中的 URL 会完整的传递给 start ,但由于地址在双引号中,所以低级的 start 已经无法识别这个链接中的 http://,也就不会自动调用 IE 去打开 http 协议类型的内容,除非双引号中只有地址,例如:http://”www.contoso.com/index.do?method=view&fdid=158&notifytype=2”,可是要实现这样的格式写法恐怕不现实!(开发人员不会放过你的 Smile with tongue out

        折中的办法就是修改调用命令,改用 iexplore.exe %1 来执行,但引发的问题就是每次都要打开一个新 IE 进程,否则就改回 Edge 浏览器,因为使用 Edge 绝对不会遇到这个问题。鉴于 Office 2007 /2010 的主流支持生命周期因素,在 Windows 10 上还是尽量使用最新版的 Office 最为妥当!

hero_edge_sufandesktop

Surface Pro 4 批量部署系统 - 应答文件优化

        Surface Pro 4 的批量部署工作已经结束,也算有时间能够继续完善这个系列的经验总结。在开始前先回顾一下之前已经发布的两篇文章“Surface Pro 4 批量部署系列 - 驱动程序安装”、“Surface Pro 4 批量部署系列 - Windows 10 激活”。Surface Pro 4 与常规设备系统部署基本一致,主要考虑的问题就是驱动的注入和新系统的激活。驱动的注入主要是考虑提前在映像中安装驱动,以加速部署速度,并可脱离 MDT 进行独立安装;Windows激活主要是考虑新系统只是应用自定义映像,授权方式并不修改,而新 Surface 设备直接重装自定义系统后会导致预激活信息丢失,必须手工提取OA3密钥进行激活。

        剩余的主要考虑事项恐怕就是应答文件的优化,虽然我们会对系统映像进行预先定制和设置,但是为了确保这些修改在后续生效,或者做个双保险,又或者一些设置必须通过应答文件设置,所以我们还是需要针对部署用的应答文件进行修改和完善。

  1. SkipRearm = 1,因为系统映像会阶段性的进行修改、完善,所以会多次进行 Sysprep 操作,为了确保系统保留有效次数的Rearm,建议在 Generalize 阶段跳过 Rearm。  
  2. InputLocale = 0804:00000804
    SystemLocale = zh-cn
    UILanguage = zh-cn
    UserLocale = zh-cn
    由于 MDT 是一种部署加速解决方案,所以它并不会像应用程序那样智能,能够通过当前系统环境来自动配置应答文件中涉及的语言设置,所以默认情况下 MDT 的默认应答文件均以英文环境来进行设置。而我们通常会为客户端部署中文版系统,所以需要对应答文件的几个阶段进行配置修改,它们是:
    1 windowsPE
    3 generalize
    4 specialize
    7 oobesystem  
  3. TimeZone = China Standard Time,原因同上所以我们需要针对  specialize 和 oobesystem 阶段的时区配置进行修正。  
  4. 由于批量部署应用在企业环境下,为了使预定制映像中的系统桌面环境能够应用到每个登录到系统上的用户账号,需要配置 specialize 阶段的 CopyProfile = True,以启用默认用户配置文件拷贝。  
  5. 在 specialize 阶段添加 DisableSR = 1,以禁用系统还原。  
  6. 在 specialize 阶段添加 fDenyTSConnections = false,以启用远程桌面。  
  7. 通常在企业环境中会采用第三方的防病毒软件,那么禁用系统自带的 Windows Defender 是非常必要的,所以在 specialize 阶段添加 DisableAntiSpyware = true。  
  8. 如果你正在使用 SDA,那么需要检查 oobesystem 阶段下的 Display 设置,确认添加如下配置,因为在 SDA 环境下该默认该配置数据缺失,而 Surface Pro 4 的默认分辨率为 2376*1824。
    ColorDepth = 32
    HorizonralResolution = 2376
    RefreshRate = 60
    VerticalResolution = 1824  
  9. 根据需要配置 OEM信息,为此可在 oobesystem 阶段为 OEMInformation 指定相关配置。
    Logo = %windir%OOBEinfoSurface.bmp
    Manufacturer = Microsoft Corporation
    Model = Surface Pro 4
    以及 SupportHours、SupportPhone 和 SupportURL 时间。  
  10. 为了加快 OOBE 的速度减少人为干预,可隐藏 oobesystem 阶段 OOBE 下的相关配置。
    HideEULAPage = True
    HideLocalAccountScreen = True
    HideOEMRegistrationScreen = True
    HideOnlineAccountScreens = True
    HideWirelessSetupInOOBE = True  
  11. 如果要脱离MDT单独部署映像,只需要删除 oobesystem 下的 FirstLogonCommands 项。

image

HOWTO: 解决 Microsoft Deployment Toolkit 8443 出现的 Invalid DeploymentType value 问题

        几天前 gOxiA 与大家分享了“Microsoft Deployment Toolkit (8443) 发布”这篇文章,8443 的升级过程还是非常顺利的,但没想到在后续的实施部署中遇到了问题。具体的故障现象是不论执行哪个任务序列都会提示“Invalid DeploymentType value “” specified. The deployment will not proceed.”最终导致任务失败。

InvalidDeploymentType2

        因为 MDT 在升级部署点后是不能够降级的,所以即使卸载 8443 并重新安装老版本也是无济于事,目前折中的办法是在 CustomSettings 中添加“SkipProductKey=YES”,或者替换 DeployWiz_ProductKeyVista 文件,虽然在微软技术支持论坛中有用户提到替换文件后并未发现什么不良反应,但 gOxiA 认为还是跳过密钥更稳妥!

参考资料:https://social.technet.microsoft.com/Forums/en-US/5bba8ffb-227d-40f6-b074-5817fafe3ae8/mdt2013-update-2-invalid-deploymenttype?forum=mdt

troubleshooting

HOWTO: 解决 Windows 10 无法运行 exe 格式安装包

        基于 Windows 10 14393.0 制作用于批量部署的系统参考镜像,除了安装了基本的应用程序外,未安装第三方的防病毒或其他安全软件。但发现在系统上可以执行安装 MSI 格式的安装包,但注入驱动和小应用一类的 exe 格式安装包在双击后不会运行,也没有任何提示,通过任务管理器查看未发现在后台运行。在管理员模式的 CMD 下却能够执行,怀疑与用户账户控制(UAC)有关。随后调整 UAC 设置将从不通知改为默认设置后,exe 安装包能够运行,但是会被 SmartScreen 筛选器拦截,尝试修改 UAC 为从不通知,即关闭 UAC 功能,然后进入 设置 - 隐私 - 常规,关闭 SmartScreen 筛选器。

1

        为了彻底关闭 SmartScreen,还需要进入控制面板 - 安全和维护,更改 Windows SmartScreen 筛选器设置,确认“不执行任务操作(关闭 Windows SmartScreen 筛选器)”。

2

        通过上述步骤调整后,在 UAC 关闭状态下,已经够能正常执行 exe 格式安装包,后续步骤建议对系统完整性进行检测,确保非系统文件破坏所致,为此可执行如下命令行:

    DISM / Online / Cleanup-image / Scanhealth

    DISM / Online / Cleanup-image / Restorehealth

    Sfc / scannow

troubleshooting

HOWTO: 解决 Outlook 运行时打开 IE 提示保存 HTML 文件

        Outlook 2010 运行中打开 IE 会提示保存 HTML 文件,是的你没有看错。这类怪异的问题也让 gOxiA 遇到了,Outlook 只要运行着打开 IE 便会自动下载一个 HTML 文件,如下图所示:

error_OutlookAutoSaveHtml

        抛开恶意软件干扰,排除法测试到最后发现确实是 Outlook 引发的,但 Outlook 启动后并未打开什么异常的邮件,所以不会触发 Web 访问请求。为了解开谜题只能下载这个 HTML 文件进行分析,查看文件源代码发现确实是与 Outlook 有关,因为第一眼看到了 activityfeed 还以为是打开了 Outlook 高级选项里的 RSS 造成的,其实不是!

htmlcon

        目光重新关注到 SocialConnectorRes.dll 这个文件,看来是 Outlook 加载了什么插件引发的问题,随即检查 Outlook 加载项,果然发现了 SocialConnector 插件,禁用重启 Outlook 后故障消失。

image

Microsoft Deployment Toolkit (8443) 发布

        微软近期发布了 Microsoft Deployment Toolkit (MDT)Build 8443 版本,与以往不同的是 MDT 新版不再附加年份版本号,官方解释是为了更好的配合 Windows 10 和 SCCM 的当前分支版本,以简化品牌和发布过程。这一版带来的改进主要如下:

支持 Windows ADK for Windows 10 的 1607 版

支持 Windows 10 1607 版

支持 Windows Server 2016

支持 SCCM 1606 版

        其他改进方面,终于支持高 DPI 设备,Surface Pro 4 部署时向导界面得到改善;针对 Windows 10 就地升级的一些问题修复;ADDS 配置步骤的问题修复;移除 imagex/ocsetup,全面使用 DISM;最新的 SCCM 任务序列支持。

        MDT 8443 下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=54259

        MDT 8443 可直接从当前版本升级,在升级安装完毕后需要对部署点进行升级,并重新生成 Lite Touch PE,根据需要替换 WDS 对应的 WIM。

1

2

3

Co3p9r4XYAAb_t8

HOWTO: 解决 Windows 10 访问 Outlook 中的 URL 时提示“你要如何打开此文件”

        近期部署的 Surface Pro 4 设备上发现大范围的出现一个故障问题,当访问 Outlook 中的 URL 时,系统会提示“你要如何打开此文件”,即使勾选“始终使用此应用”,但下次访问时仍旧会提示。

1

        当恢复默认浏览器为 Edge 后问题消失,对比前后注册表变化也未找到线索,考虑到 Office 不是最新版本,不排除存在兼容性问题。经咨询得知该故障为已知问题,系统环境满足以下条件时,可能会导致注册表数据丢失,故障便会发生。

  • Windows 10
  • 设置默认浏览器为IE11
  • Outlook 2010 或 Outlook 2007

        针对该问题,微软提供了自动修复工具,下载地址:http://aka.ms/easyfix20155 ,或进行手工修复,具体操作步骤如下:
1. 退出Outlook
2. 启动注册表编辑器
3. 定位到“HKEY_CLASSES_ROOThtmlfileshell”
4. 鼠标右键点击shell,选择新建“项”
5. 项名称为“opennew”
6. 在新建的"opennew"项下再新建一个名为“command” 的项
7. 在“command” 项下修改或新建Default字符串,值为“cmd /c start %1”,该命令会在新选项卡上打开超链接页面,如果希望在新窗口中打开超链接页面,则值为“c:\program files\internet explorer\iexplorer.exe” %1
8. 确定修改并退出注册表编辑器。  

hero_edge_sufandesktop

Surface Pro 4 批量部署系列 – Windows 10 激活

        回顾上一篇文章“Surface Pro 4 批量部署系列 - 驱动程序安装 ”我们掌握了 Surface Pro 4 批量部署时驱动程序的处理,并且可以参考“HOWTO: 在执行 Sysprep generalize 后保留预部署的硬件驱动 ”,在执行 Sysprep 时保留驱动,以加速部署速度,接下来我们就可以应用这个映像进行测试。

        Surface Pro 4 随机预装 Windows 10 Pro 版,并支持自动激活,本以为联网激活的时候会自动提取主板固件中的密钥,但实际测试并没有那么智能。所以要实现免序列号自动激活 Surface 必须先解包原厂系统执行 OOBE 联网激活系统一次,否则就需要单独输入有效密钥来激活。

        Windows 10 的激活技术是进行了改进,OEM 版每个主板都内置一个唯一的密钥,而不管是OEM还是零售版,这个密钥在首次激活后会绑定当前设备 GUID 或 LiveID,所以当以后再执行干净安装时就能在联网的时候自动识别,并激活系统。改进的激活技术确实很方便,但对于批量部署的用户来说,将是“噩梦”!单单解包原厂系统就要耗费掉不少时间,更别说后续还要部署定制版系统。

        gOxiA 就经历了这个过程,之前测试环境是一台已经激活的 Surface Pro 4,封装镜像测试激活正常后,开始分发!后续便遇到了新拆封从未激活的Surface设备,起初的报错信息是 0x2a 0x803F7001,中文提示 0x803F7001 在运行 Microsoft Windows 非核心版本的计算机上,按照提示执行 slui 查看具体的错误信息。

IMG_20161011_155900

        从错误信息上看并没有什么价值,难道是序列号对应的 SKU 不对,换了几个密钥均没有解决,随后联系微软技术支持,使用 WCF 的 Error 查看工具分析了代码得知是网络问题,果然在调整 HOSTS 后测试环境下的Surface能够激活了,但发现在分发给新设备后还是会报错误,导致无法激活。

snipaste20161031_135253

        几经折腾,最后才意识到是因为使用通用密钥是无法激活新拆封的设备的。期间也尝试提取原厂系统的文件,发现密钥部分是加密的,而且也证明激活程序不会自动提取主板固件中的 OEM 密钥,那么原厂系统的预置的密钥应该是一个真正意义上的黄金密钥,可惜被加密了,也只能放弃!除了恢复原厂系统,唯一的希望就是从主板固件提取密钥,还好微软为我们预留了 WMI 接口,我们只需要利用 WMI 把 OA3xOriginalProductKey 的值提取出来即可,拿到了唯一的密钥就可以使用 slmgr 来重新激活 Surface Pro 。

        注:OA3xOriginalProductKey 位于 SoftwareLicensingService 下。

Tags: , , , ,

Co3p9r4XYAAb_t8

为 Windows 10 强制启用暗黑主题

        自 Windows 10 年度更新发布后,gOxiA 就喜欢上了全黑色系的暗黑主题(Dark Theme),一股脑的将 Windows 和 Office 都设置为了全黑色,虽然是喜欢但实际使用中还是需要一个过程。默认情况下通过个性化设置众的颜色,便可开启深色主题,也就是我们常说的暗黑主题。但这个选项有时却很诡异的消失了。如下图所示,不知道是打了某个补丁的原因,还是因为更改了系统语言,而且提示貌似也并不搭边。这个时候恐怕只有手工修改注册表,才是最快速解决之道。

sp20161026_163527

        针对当前用户设置,我们只需要启动注册表编辑器,定位到以下路径,新建一个名为“AppUserLightTheme”的 DWORD32 值为“0”即可,这样便可禁用浅色主题模式,并自动开启暗黑主题。

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize 

snipaste20161030_192221

分页: 6/172 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]