使用 Configuration Manager 2012 OSD 启动 Windows Defender Offline Scan

在 System Center 2012 Endpoint Protection Status 监视仪表板中,一个疑似恶意软件的修复状态是 [Offline Scan Required](需要脱机扫描)。这是什么意思,如何解除此状态?首先,它的意思是没有完全清理某个特定的恶意软件,需要在整个操作系统之外对计算机进行扫描和清理才能完成修复。这需要重启进入 Windows 预安装环境 (WinPE),打开 Windows Defender Offline 扫描工具来清理包括 Rootkit 在内的垃圾软件。

Windows Defender Offline 扫描工具是一个免费工具,可在此处下载,该工具作为可启动 Windows Imaging 格式 (WIM) 文件提供,您可以将其放在介质(USB 或 DVD)上并插入被感染计算机。不过,手里拿着介质走到计算机前安装太过时了,何不使用 Configuration Manager 的 OSD 功能为您执行此操作?在本篇博文中,我将向您介绍执行此操作的具体步骤,作为一个示例同时作为另一种方法来说明同一产品中的管理和安全功能是如此出色和方便。

构建 Windows Defender Offline WIM

首先,您需要从这里为 32 位64 位操作系统下载启动 WIM(注意:System Center 2012 SP1 Configuration Manager Beta 客户需要使用新版本的 WIM,在这里下载 32 位新版本,在这里下载 64 位新版本)。下载之后就可以看到 imagepackage32.exe 和 imagepackage64.exe,启动文件之后将会提取内容,这里您需要从源文件夹中选取 boot.wim。另外,还需要下载最新的完整定义文件(请在这里下载 32 位版本文件,请在这里下载 64 位版本文件)。两个体系结构的文件名相同,因此,请将它们保存到不同的文件夹中。此外,还可以参考我的有关使用 OSD 任务序列部署 Endpoint Protection 客户端博文,了解有关使用脚本自动执行完整定义文件下载的详情/链接。对于 Windows Defender Offline 定义,您可以使用该进程下载的相同定义。在拥有所需的文件之后,请执行以下步骤。

注意:这里仅以 64 位版本为例进行介绍 - 32 位版本的步骤与此相同,只不过在 32 位工作流中不需要重命名定义文件。

  1. 将您为 Windows Defender Offline 下载的 64 位 boot.wim 文件放入源目录,您将使用 Configuration Manager 在该目录中导入和分发完成的 WIM(在我们修改之后)。

  2. 接下来,使用部署映像服务和管理 (DISM) 工具装载 WIM,以便可以访问文件结构。您需要执行此操作才能在卸载前将最新的定义文件放入 WIM,并通过 Configuration Manager 进行分发。在命令提示符下,根据 WIM 的源目录运行以下命令,并将其装载到预先创建的独立目录中:

     DISM /mount-wim /wimfile:%file%\boot.wim /mountdir:%file% /index:1
    

    例如,下面是此命令在我的测试系统上的情形,您可以看到进度指示器:

     

  3. 装载 WIM 之后,转到在上一步中指定的文件夹,如下面的屏幕截图所示。如果在 WinPE 中使用 Windows Defender Offline 浏览 Program Files\Microsoft Security Client,则可以看到用于扫描的文件。

  4. 接下来,需要将 64 位版本的定义文件放在此目录的根目录中。此外,还需要将此文件的名称 mpam-fe.exe 改为 mpam-fex64.exe。如果不重命名此文件(仅在 64 位上需要重命名,在 32 位上请保留原名称 mpam-fe.exe),Offline 扫描将失败!

     

  5. 然后,确保关闭可能为源 WIM 或装载的 WIM 打开的任何文件夹,否则下一步卸载 WIM 和提交更改将会失败。继续操作并使用以下命令卸载 WIM 和提交更改:

     DISM /unmount-wim /mountdir:%file% /commit
    

  6. 现在您拥有一个适用于 Windows Defender Offline 的可启动参考 WIM,其中包括最新的定义,因此已经做好导入 Configuration Manager 的准备。

  7. 注意:每周应至少重复一次此过程,并将更新的 WIM 文件分发到分发点,确保在进程需要时为脱机扫描提供最新的定义。

将 WIM 导入 Configuration Manager

接下来,在这个步骤中,您将通过导入 Configuration Manager 为 Windows Defender Offline 创建启动映像。

  1. 打开 Configuration Manager 控制台,浏览到“软件库”|“操作系统”|“启动映像”,并选择“添加启动映像”。
  2. 从向导中,浏览到在上一步中保存 boot.wim 的路径。您将在下拉列表中看到适用于正确体系结构(本例中为 x64)的单一启动映像。
  3. 在下一页中,将启动映像命名为一个直观的名称,如“Windows Defender Offline WIM 64 Bit”
  4. 完成此向导(由于导入了 WIM,这可能需要数分钟)。
  5. 在完成之后,继续操作并通过选择 [Distribute Content](分发内容)将 WIM 分发到分发点,然后按照简单的向导操作。

构建任务序列

在下一步中,我们需要使用此启动映像构建任务序列。在此任务序列中(本博文为此任务序列提供了一个可导入示例),我们将按以下顺序添加步骤:禁用 Bitlocker(如果您的环境使用的是 Bitlocker)、重新启动计算机进入 WinPE、从命令行运行 Defender Offline Scan、重新启动计算机进入现有操作系统,然后启用 Bitlocker。要创建此任务序列,只需下载导出的任务序列 zip 文件,并将其导入(该文件在本博文底部提供)。

  1. 从“软件库”|“操作系统”|“任务序列”中,选择“导入任务序列"。

  2. 浏览到保存已下载任务序列的目标 UNC 路径,然后完成此向导。

  3. 在创建的任务序列中,选择“属性”,在“高级”选项卡下,选择“使用启动映像”,然后浏览到在上一步中创建的 WIM。

  4. 在同一选项卡上,选择将按体系结构运行此文件的适当操作系统,以便最终用户在软件中心只能看到一个适用于其系统/操作系统体系结构的选项,单击“确定”。

  5. 如果希望启用/禁用任何步骤或添加自己的步骤,还可以选择编辑这个导入的任务序列。

    注意:您还可以通过创建任务序列向导从头创建自己的任务序列。您希望用于从 WinPE 执行 Defender Offline Scan 的命令行是 "%ProgramFiles%\Microsoft Security Client\OfflineScannerShell.exe" /autoscan。

构建用于定位脱机扫描的动态集合

如果在大量的客户端中不太可能频繁发生需要脱机扫描的客户端,则可能需要有条件地向客户端提供此解决方案。因此,接下来,我们将为具有此特定恶意软件状态的客户端创建一个动态集合,对其动态定位任务序列。这样,只有需要脱机扫描的客户端上的用户才可以在软件中心看到此部署。这可让您确定具体是哪些客户端具有此状态,然后通知终端用户,让他们从软件中心启动此修复,因为只有处于此状态的客户端会看到此部署(如果提供)。

  1. 在 [Assets and Compliance](资产和合规性)| [Device Collections](设备集合)下,选择 [Create a Device Collection](创建设备集合)。
  2. 为该集合提供一个直观的名称,如“需要脱机扫描修复恶意软件”,并选择限制集合。
  3. 选择 [Use incremental updates for this collection](对此集合使用增量更新)和 [Schedule a full update of this collection to occur once a day](将此集合的完整更新安排为每天发生一次),并选择更新发生的时间。
  4. 在成员身份规则下,我们需要选择用于动态构建此集合所依据的恶意软件状态逻辑,以便报告此状态的客户端在十分钟左右内动态地加入此集合,并获取定位在其下一个策略轮询间隔的任务序列(默认轮询间隔为 60 分钟,也可以在客户端上临时强制运行,即通过 Configuration Manager 控制面板小程序强制执行计算机策略刷新)。
  5. 对于成员身份规则,选择“添加规则”,然后选择“查询规则”。将该查询命名为“需要脱机扫描”,然后选择"编辑查询语句"。
  6. 在“查询语句属性”中,选择“条件”选项卡。在该选项卡上单击黄色星号以添加条件。
  7. 保留默认的“简单值”,并选择“选择”。
  8. 从“属性类”下拉菜单中,选择 [Antimalware Infection Status](反恶意软件感染状态),对于属性,选择“PendingOfflineScan”。
  9. 在 [Criterion](条件)属性中,保留默认值等于“True”,并单击 [OK](确定)。
  10. 在“查询语句属性”和“查询规则属性”上单击“确定”。
  11. 完成此向导。现在您将得到一个仅由需要脱机扫描的客户端填充的集合。在完成对这些客户端的脱机扫描之后,系统会自动将它们从此集合中删除,并将清理状态报回给 Configuration Manager 服务器。

部署任务序列

现在您已经创建了启动映像、任务序列和目标集合,我们已做好部署任务序列的准备。在此步骤之后,显示在该集合中的任何客户端都将能够动态部署此任务序列。您还可以向此集合添加直接成员,如果仅希望测试整体进程,而不依赖于获取导致此状态的恶意软件的条件,也可以使用此任务序列定位其他测试集合(带成员)。

  1. 从“软件库”|“操作系统”|“任务序列”中,选择 Windows Defender Offline 64 位任务序列,并选择“部署”。
  2. 指定我们在上一步中创建的集合。
  3. 接下来,选择将此集合指定为可用还是必需。如果将其指定为必需,则可以在下一页中配置用户运行此集合多长时间才能将其变为强制。还可以指定激活此指派的条件,例如用户注销。我们仅将此集合设置为可用,因为此修复类型的发生频率很低,我们的进程可以向用户提供此集合,然后此集合一经在软件中心可以运行时,就立即通过电子邮件通知他们需要运行此集合,以减轻恶意软件的风险。
  4. 如果您希望将此部署提供给 PXE,以便用户可以启动进入脱机扫描,而无需从完整的操作系统启动脱机扫描,请在此页上选择该选项。
  5. 在计划页上,设置将此部署提供给用户的时间,该时间仅应为当前时钟的时间,因为未来获取此部署的任何客户端将在处理策略之后立即提供该部署。
  6. 在“用户体验”页上,保留所有设置的默认值。这有助于用户更好地了解在总体进程中经过了多长时间。如果选择取消选中显示任务序列进度,用户将看不到有关任务序列步骤的细节,但他们仍可以在 Windows Defender Offline 扫描状态用户界面的前台中看到总体进度条。
  7. 由于此类部署的临时特性,在警报页上可能不需要这些信息。
  8. 在分发点页上,在运行任务序列需要时选择本地下载内容,然后选择首选行为,以便客户端远程检索内容,然后完成此向导。

创建任务序列介质(可选步骤)

Configuration Manager 中还有一个从任务序列创建可启动介质的选项,这样您可以将启动映像和步骤导出到一个共享位置(供远程管理员选择和使用)、USB 或 DVD。您可以使用它脱机测试解决方案(独立于 Configuration Manager),还可以为脱机(移动员工)客户端或不想使用 Configuration Manager 将此任务序列部署到的客户端创建临时介质。从任务序列列表中,只需选择 Defender Offline 任务序列,然后选择“创建任务序列媒体”。选择“独立”,然后选择您的首选介质类型并完成此向导。

检查工作

您可能希望端到端验证您完成的工作是否能正常使用,而不是等待出现需要脱机扫描的恶意软件,请继续操作并将此任务序列定位到测试客户端,方法是将该客户端添加到(使用直接成员身份)创建的动态集合,或者创建一个新的部署,将此任务序列部署到测试集合。在部署任务序列之后,转到测试客户端并刷新策略。

等待几分钟,然后打开软件中心,在这里您将看到 Windows Defender Offline Scan 的部署:

 

继续操作并启动安装(在屏幕截图中显示为重新安装,因为我已经运行此安装)。这时将显示一个警告弹出窗口,提示您即将安装一个新的操作系统(实际情况并不是如此),但这是类型为“操作系统”的所有部署的标准弹出窗口。这是一种引起最终用户恐慌的对话框,很遗憾,我们无法控制此情况。这也是我们为什么直接与最终用户协作或者通知他们此进程很关键(例如,避免引起恐慌)。在下载进度指示器完成之后,系统将提供重启倒计时,然后重启进入 WinPE,任务序列将在该环境下启动 Defender Offline Scan:

 

 

在扫描完成之后,系统将重启进入主操作系统,操作至此结束。在数分钟内,[offline scan required](需要脱机扫描)状态会从数据库和控制台中清除,客户端不再显示在集合中,问题得到了解决!您也不必手忙脚乱地到处乱跑或满世界地发送介质解决此问题。只需结合使用 System Center 2012 Configuration Manager 和 System Center 2012 Endpoint Protection 就可以此问题。好管又安全。

--Jason Githens

本篇博文按照“原样”提供,且不提供任何担保和授予任何权利。