Windows_Defender

通过 WDS 环境应用 Windows Defender Offline

        上一篇文章“通过 WDS 环境应用 Windows Defender Offline - 上”,gOxiA 分享了如何制作 Windows Defender Offline 的 ISO 镜像,而今天这篇将开始我们的主题。在 WDS 环境下应用 Windows Defender Offline(以下简称:WDO),可以极大方便用户使用 WDO,通过企业网络 PXE 引导 WDO,比起 UFD 更安全也更高效。

        但是,当我们将 WDO 的启动 WIM 文件添加到 WDS Boot Image,在用户端引导 WDO 后会发现,无法正常执行扫描工作,因为 Virus and spyware definitions: Out of date,即病毒特征库过期。如此,在 WDO 启动的初始化界面实际上是在加载最新的病毒特征库。

snipaste20170222_163746

        为了进行论证对 WDO 的 ISO 进行了分析,发现在 ISO 根目录中有一个名为 mpam-fex64.exe 文件,该文件就是最新的病毒特征库,那么接下来就要搞清楚 WDO 是如何调用这个病毒特征库的,首先要看看 Winpeshl.ini 是否定义了命令行,参考下图,确实调用了 Windows Defender 相关的执行命令,从文件名看是个专为 Offline 编写的命令,而且没有加参数,gOxiA 猜测对 mpam-fex64.exe 的调用是写在内部代码里的。

snipaste20170222_164807

snipaste20170223_083939

        既然是固化在内部代码中的,就要确定调用特征库的具体路径,以便为后续能在 WDS 中应用 WDO 奠定基础。为此使用了 Sysinternals 工具集中的 Strings 对 OfflineScannerShell.exe 进行了分析,果然不出所料,特征库名称是固定的,但是没能找到定义路径。

snipaste20170223_091439

snipaste20170223_091307

        重新分析 ISO 文件结构发现 mpam-fex64.exe 存储位置还包含一个 FilesList64.dll,从名字看貌似与遍历有关,难不成 WDO 是通过遍历目录寻找名为 mpam-fex64.exe 的文件,既然已经走到这一步,只能实验出结果,将 WDO 的

WIM 文件通过 DISM 命令 Mount 出来,然后直接将 FileList64.dll 和 mpam-fex64.exe 拷贝到 WDO 的 WIM 映像根目录中,保存更新添加到 WDS 启动映像,找台客户端开机 PXE 引导测试,通过!!!

snipaste20170222_164914 

        问题解决,以后只需要手工下载最新版的 mpam-fex64.exe 打包到 WDO 的 WIM 中即可。Windows Defender 的最新特征库可以从下面的官方网站下载到,不要忘记将下载的文件名改为 WDO 定义的名字。

Updating your Microsoft antimalware and antispyware software:

https://www.microsoft.com/security/portal/definitions/adl.aspx

Windows_Defender

通过 WDS 环境应用 Windows Defender Offline

        在开写本文前,gOxiA 觉得很有必要先介绍一下什么是 Windows Defender Offline?!以及如何获得 Windows Defender Offline?!然后再与大家分享通过 WDS 环境应用 Windows Defdender Offline。

        Windows Defender 相信使用 Windows 的朋友并不会感到陌生,它是一款微软研发的 Windows 实时保护软件,用于检测和减少可能危害 Windows 及用户安全的软件,不论威胁是来自电子邮件,还是内网或互联网,它都能够检测并删除病毒、间谍软件和恶意软件。Windows Defender 历史悠久,支持 Windows XP/Vista/7/8,直至现在的 Windows 10。gOxiA 从 XP 时代就开始使用 Windows Defender(那时它还不叫这个名字,一路更名,过去的它就简称 MSE 吧!),非常值得信赖,在个人认为是安全软件里做的最有良心的,没有之一!!!(PS:评价就是如此之高)如果你希望更深入的了解 Windows Defender 技术方面的细节,请一定不要错过“Windows Defender 技术概述”这篇官方文档。

        而 Windows Defender Offline 其实是 Windows Defender 的一个功能,或理解为一种运行时态,即离线扫描。通过专用的工具可从微软官方下载最新的安全威胁特征库,并为其创建一个受信任的运行环境,从而无需启动操作系统,便可对该操作系统进行扫描和查杀安全威胁。Windows Defender Offline 尤其针对那些 rootkit 等及其顽固的恶意软件。下图便是 Windows Defender Offline 正在运行时的样子,首先会执行初始化,之后自动开始执行扫描,在联网环境下还支持更新特征库,而且也支持自定义扫描!

snipaste20170222_160614

snipaste20170222_160713

snipaste20170222_160734

snipaste20170222_161031

        看完上面的介绍,是不是心里顿生想法,尤其是 ITer 一定要有个 Windows Defender Offline 傍身才好!接下来跟随 gOxiA 的节奏一起来尝试创建 Windows Defender Offline。需要注意,如果你是 Windows 10 用户,可在“所有设置”-“更新和安全”-“Windows Defender”下找到“Windows Defender Offline”的“脱机扫描”按钮,点击它之后系统会在一分钟后重启进入 Windows Defender Offline 环境。

snipaste20170223_211537

        如果你是 Windows 老版本的用户,又或者极其想拥有一个独立于当前系统的 Windows Defender,那么可以继续往下看了!首先下载 Windows Defender Offline 创建工具:

        下载到本地后便可直接运行它,启动创建向导以便完成 Windows Defender Offline 的制作,向导支持 CD、DVD、UFD 以及 ISO 格式,如果你不熟悉如何将 ISO 转为 UFD,那么建议你在后续过程中插入一个 U盘选择对应的方式创建,而本文则是以 ISO 来演示的。

DefenderOfflineTools-1

DefenderOfflineTools-2

        这一步是关键,三种创建方式,根据自己的实际情况选择,本文则选在 ISO 文件。

DefenderOfflineTools-3

        选择 ISO 的存储位置,为了方便查找,可直接保存在桌面上。

DefenderOfflineTools-4

        创建开始,此时请确保你有一个高速互联网,否则区区不到 300MB 的数据也够你受的!(PS:由于 Windows Defender Offline 资源使用了某司的CDN,虽然进行了分流优化,但实际上国内的网络还是非常之慢!)

DefenderOfflineTools-5

        OK,在经过漫长的等待过程后,ISO 便创建好了,有了 ISO 文件,ITer 应用起来就得心应手了许多,可以先载入到虚拟机下感受感受。

DefenderOfflineTools-6

        休息一下,接下来我们本文的重点将是在 WDS 环境下应用 Windows Defender Offline!这个场景更多的是在企业环境中……(未完待续!)

newofficebanner

Office Deployment Tool 相关配置参考信息

        通过 Office Deployment Tool(ODT)安装的 Office 有一个显著优势就是日后更新非常便捷,只需在 Office 账户下通过更新选项即可将当前 Office 升级到最新版本,而且利用 ODT 还可以下载安装最新的 Build。gOxiA 曾分享过两篇有关的文章“HOWTO: 从本地位置部署 Office365 ProPlus”、“Office 2016 Deployment Tool 现已发布”。

        使用 ODT 不仅可以针对企业级部署和安装 Office 365 ProPlus 这些主要商用版本,还能获取到更多的 SKU 以及更多的语言版本。而要获得更多的资源就依赖特定的配置信息,例如要获取 32 或 64 位版本,我们需要使用“OfficeClientEdition”,值 = 32 或者 64 即可。

        对于要获得更多 SKU,即 Edition 发行版本,则需要指定“Product ID”,下面列出了各 Edition 所对应的值。

Edition

Value

Office 2013/2016 Home and Student HomeStudentRetail
Office 2013/2016 Personal PersonalRetail
Office 2013/2016 Home and Business HomeBusinessRetail
Office 2013/2016 Professional ProfessionalRetail
Office 2013/2016 Professional Plus ProPlusRetail
Office 365 Home Premium O365HomePremRetail
Office 365 Small Business Premium O365SmallBusPremRetail
Office 365 Business O365BusinessRetail
Office 365 Professional Plus O365ProPlusRetail
Access 2013/2016 AccessRetail
Excel 2013/2016 ExcelRetail
InfoPath 2013/2016 InfoPathRetail
OneNote 2013/2016 OneNoteRetail
Outlook 2013/2016 OutlookRetail
PowerPoint 2013/2016 PowerPointRetail
Publisher 2013/2016 PublisherRetail
Word 2013/2016 WordRetail
SharePoint Designer 2013 SPDRetail
Project 2013/2016 Standard ProjectStdRetail
Project 2013/2016 Professional ProjectProRetail
Project 2013/2016 Standard volume license ProjectStdXVolume
Project 2013/2016 Professional volume license ProjectProXVolume
Visio 2013/2016 Standard VisioStdRetail
Visio 2013/2016 Professional VisioProRetail
Visio 2013/2016 Standard volume license VisioStdXVolume
Visio 2013/2016 Professional volume license VisioProXVolume
Skype for Business Basic 2015 (Office 2013) LyncEntryRetail
Skype for Business 2015 (Office 2013) LyncRetail
Skype for Business Basic 2016 (Office 2016) SkypeforBusinessEntryRetail
Skype for Business 2016 (Office 2016) SkypeforBusinessRetail  

        而下表则是语言版本,即“Language ID”所对应的值。

Language

Value

Arabic (Saudi-Arabia) ar-sa
Bulgarian (Bulgaria) bg-bg
Chinese, simplified (PR China) zh-cn
Chinese, traditional (Taiwan) zh-tw
Croatian (Croatia) hr-hr
Czech (Chech Replublic) cs-cz
Danish (Denmakr) da-dk
Dutch (Netherlands) nl-nl
English (USA) en-us
Estonian (Estonia) et-ee
Finnish (Finland) fi-fi
French (France) fr-fr
German (Germany) de-de
Greek (Greece) el-gr
Hebrew (Israel) he-il
Hindi (India) hi-in
Hungarian (Hungary) hu-hu
Indonesian (Indonesia) id-id
Italian (Italy) it-it
Japanese (Japan) ja-jp
Kazakh (Kazakhstan) kk-kz
Korean (Republic of Korea) ko-kr
Latvian (Latvia) lv-lv
Lithuanian (Lithuania) lt-lt
Malay (Malaysia) ms-my
Norwegian, Bokmål (Norway) nb-no
Polish (Poland) pl-pl
Portuguese (Brazil) pt-br
Portuguese (Portugal) pt-pt
Romanian (Romania) ro-ro
Russian (Russian Federation) ru-ru
Serbian, Latin (Serbia / Montenegro) sr-latn-cs
Slovakian (Slovakia) sk-sk
Slovenian (Slovenia) sl-si
Spanish (Spain) es-es
Swedish (Sweden) sv-se
Thai (Thailand) th-th
Turkish (Turkey) tr-tr
Ukrainian (Ukraine) uk-ua
Vietnamese (Vietnam) vi-vn  

Image_Create_428x247

解决 Office Outlook 邮件不显示图片内容

        首先声明这是一个不是“问题”的“问题”,之所以这么讲是因为在 Outlook 中阅览邮件内容时发现图片内容无法显示,只显示一个图片框。而这一问题的原因其实是设计使然,即它是一个功能,而并非真正的故障,具体的表现如下图所示。

{792AA519-4E11-4473-BB06-DB41E1B100BF}

        在对这个问题进行排错的时候可谓艰辛,翻遍了整个 Outlook 设置,终于在邮件撰写窗体的编辑器高级选项下找到了对应的设置“显示图片框”,在选项旁边的注释中明确了该功能所产生的“影响”,但是一般用户还真不会注意到。要不是针对这一问题为用户排错,连 gOxiA 自己也未必真实了解。

snipaste20170106_113430

        自 Office 2007 开始到 Office 2016 版,这个功能一直存在!!!当勾选“显示图片框”后,邮件内容中的图片会用空白框来代替,从而提高滚动性能。因为它不是一个全局设置,所以在 Outlook 选项中是找不到的,必须新建一封邮件,在邮件撰写窗体下进入选项,在编辑器高级选项中才能找到这个设置。(PS:隐藏至深,所以也会被一些国内的软件商利用,目前常见的Windows系统故障或应用软件故障通常都是安装国产第三方类似应用后被恶意篡改设置而引发的故障,致使用户放弃正在使用的应用程序……)

2017-02-01

        对于“显示图片框”这个选项所对应的配置文件位置或注册表位置,倒是一直没有时间用抓包工具深入研究,因为在实际排错时发现该选项在去除勾选后,关闭再打开 Outlook 会重新生效,而最快的解决办法是重建了Windows 用户配置文件,如果您对这一问题有深入研究,还望不吝赐教!

Co3p9r4XYAAb_t8

HOWTO: 解决 Windows DISM error ID3 0x80070003 故障

        DISM error ID3 的故障描述,自定义的 Windows 7 标准化系统映像测试正常,封装后在测试环境中部署时发现在 offline mode 下使用 DISM 对系统进行管理时操作失败,如下图所示 DISM 未能找到有效的 Windows 目录,但是当前系统路径确实是有效的,本以为是封装前的系统出现了异常,也反复进行了原始映像的测试,并对当前系统进行了检查并未发现有什么可疑的地方,无奈只能重点排查 DISM 日志!

snipaste20170116_111632

        在对 dism.log 文件进行了分析后,发现了详细的报错信息,DISM 在对脱机映像执行操作时发生了错误,“DISM OS Provider: PID=1420 Failed to mount the remote registry...(hr:0x80070003)”!复查系统映像创建中的配置修改以及后续部署时无人应答文件的设置,可算找到了线索在应答文件中对用户配置文件进行了重定向,该设置会将 Users 目录移动到其他分区,这就导致“All Users” 和“Default”目录也被移动,而 Default 目录包含默认的注册表数据文件(NTUSER.DAT),当 DISM 对脱机映像管理时会去 Mount 这个注册表数据文件,所以最终导致操作失败。

dism_error_cbs_log

        而要解决这个问题的办法还是相当简单的,就是在系统所在分区创建一个相同的目录结构(C:\Users\Default\), 并将 Windows 安装源(Install.wim)中的 NTUSER.DAT 文件拷贝过去即可。在微软官方的知识库(KB2293874)中确认了这是一个已知的问题。

        随后 gOxiA 在 Windows 10 上也重现了这个故障问题,dism.log 中记录的错误提示稍有区别,但意思完全相同,所以解决方法一致。为什么时隔7年这个问题仍旧没有解决,恐怕也只有产品组的人员知道!不过也完全可以理解,在企业环境中要重定向用户配置文件目录通常会使用组策略进行设置,此法不会移动系统级的目录;而直接通过应答文件的做法恐怕也是极为罕见的场景需求。

UserProfileError

snipaste20170118_164951

Co3p9r4XYAAb_t8

        一台 Windows 10 计算机,通过 Windows 更新独立安装程序手工安装 MSU 更新包,在安装过程中出现错误提示“安装程序遇到错误: 0x80070422”,使用 Windows 更新功能执行在线检查也一样提示“0x80070422”故障。

snipaste20161216_140811

        0x80070422 其实是非常典型的简单故障,错误提示页面下的中文解释已经非常到位,即相关的服务无法启动,通常造成服务无法启动的原因就是服务被禁用掉,用户只需要通过services.msc启动服务管理器将 Windows Update 服务改为手工,再次执行安装程序即可解决问题。

        如果服务启动失败,可以通过“依存关系”对当前服务依赖的组件进行基础检查。另外,gOxiA 不建议在 Windows 10 上禁用 Windows Update 服务,因为即使要手工安装 Windows 更新补丁包,也需要启动 Windows Update 服务;此外,Windows 激活时同样依赖 Windows Update 服务。

        最后分享一篇资料非常有价值,便于我们快速诊断错误代码代表的原因。

        IUTool error codes:

        https://msdn.microsoft.com/en-us/windows/hardware/commercialize/manufacture/mobile/iutool-error-codes

Co3p9r4XYAAb_t8

HOWTO:  通过预先配置 TrustedImageIdentifier 以加速 Windows 10 黄金映像

       Windows 10 应答选项中包含一个参数 - "TrustedImageIdentifier",位于 "amd64_Security-Malware-Windows-Defender_neutral"下,利用这个参数设置可以加速 Windows 10 黄金映像的运行速度,即在应答文件中的初始化阶段添加一个 GUID 值,告知 Windows Defender 该系统映像是安全的,这样 Windows Defender 便不会对系统进行扫描。

        使用和维护 Windows Defender 的 IT 人员应该了解,因为 Windows Defender 在初始化的系统上会对系统主要文件进行扫描,以确保文件安全,如果没有单独执行一次完整的扫描,便会在后台进行调度,这样一来便会影响系统的运行速度,所以这就是为什么全新安装的系统在期初运行时会感觉慢的原因。

        要预先配置“TrustedImageIdentifier”需要进行两个步骤,在应答文件中添加 TrustedImageIdentifier 对应的 GUID 值,并为当前参考映像环境的注册表指定位置添加对应的 GUID 值。为此我们执行如下步骤:

        第一步,使用 Windows System Image Manager(该工具位于 WindowsADK 中)先创建或修改 Windows 安装应答文件,在 Windows 编录下的 Components 中找到“amd64_Security-Malware-Windows-Defender_10.0.14393.0_neutral”,将其添加到应答文件的“4 specialize” 阶段,然后为 TrustedImageIdentifier 填入系统的 GUID 值。

TrustedImageIdentifier_GUID

        第二步,在参考映像(即黄金映像)系统中打开注册表编辑器,定位至“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender”,并添加一个新的字符串,命名为“TrustedImageIdentifier”,其值为之前在应答文件中设置的 GUID。

TrustedImageIdentifier_regedit

        完成上面的两个步骤就可以对黄金映像进行打包(Sysprep)以便于分发给最终用户。值得注意的是在修改注册表时管理员是没有修改权限的,所以需要先拿到所有权再进行修改;另外,如果很不幸你在分发部署黄金映像后发现该映像存在安全问题,那么可联系 Windows Ecosystem Engagement team 并提供映像的 GUID 值,这样微软会将这个不安全的 GUID 更新到 Windows Update 中,Windows Defender 在更新后会对当前系统执行完全扫描。

        最后提供两篇微软官方的参考资料:

TrustedImageIdentifier:

https://technet.microsoft.com/en-us/library/hh825450.aspx

Configure a Trusted Image Identifier for Windows Defender:

https://technet.microsoft.com/en-us/library/hh825233.aspx

Co3p9r4XYAAb_t8

使用 Windows 10 的连接应用轻松演示移动设备内容

        Windows 10 周年更新(1607)中包含了一款系统应用 - 连接,恐怕很少用户会关注到这款应用,而它确实就在那里!如果你正迫切需要通过电脑屏幕来展示自己的移动设备内容,不论你是 Windows Phone 还是 Android,那么“连接”将轻松实现你的需求,并且是通过无线技术将移动设备内容展示在电脑屏幕上。正如下图所示,gOxiA 正使用小米的红米Note3通过无线方式将手机的界面投放到了Windows 10系统上,这一功能对于那些移动开发者来讲,相信非常有价值。

20161202_140659862_iOS

        要使用这一功能,需要确保移动设备支持无线显示协议,通常大部分的主流 Android 都支持这一功能。为了能够获得最佳的体验,Windows 10 设备最好也要支持无线显示技术,否则可能投影过来只有内容而没有声音,起码在 gOxiA 的 T420 上虽然能够播放移动设备端的视频内容,如:Youku 视频,但却没有声音;此外 Windows 也会提示无法使用系统鼠标对投放过来的移动内容进行操作。

connect-1

connect-2

        最后让我们来了解一下无线显示技术,在 Windows 和 Android 平台最为常见的无线显示技术当属 Intel WirelessDisplay(WiDi),全称为无线高清技术,通过 WiFi 信号来实现电脑和显示设备的无线连接。

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 最为妥当!

分页: 10/176 第一页 上页 5 6 7 8 9 10 11 12 13 14 下页 最后页 [ 显示模式: 摘要 | 列表 ]