使用合规性搜索搜索Exchange Server中的所有邮箱

Exchange Server 中的合规性搜索功能允许搜索组织中的所有邮箱。 与最多可以搜索 10000 个邮箱的“就地电子数据展示”不同,此功能一次搜索的目标邮箱数量没有限制。 对于需要您执行组织范围内搜索的方案,您可以使用 New-ComplianceSearch cmdlet 来搜索所有邮箱。 然后,可以使用 In-Place 电子数据展示的工作流功能来执行其他与电子数据展示相关的任务,例如将邮箱置于保留状态和导出搜索结果。 例如,假设您需要搜索所有邮箱以确定可以响应某法律案件的特定监护人。 可以使用 New-ComplianceSearch cmdlet 搜索组织中的所有邮箱,以识别响应案例的邮箱。 然后,您可以将管理员邮箱列表用作“就地电子数据展示”的源邮箱。 使用 In-Place 电子数据展示还可以保留这些源邮箱、将搜索结果复制到发现邮箱以及导出搜索结果。

本主题包括一个脚本,您可以通过使用源邮箱和搜索查询(来自通过运行 New-ComplianceSearch cmdlet 创建的合规性搜索)列表运行此脚本来创建“就地电子数据展示”搜索。

步骤 1:运行 New-ComplianceSearch cmdlet 以搜索所有邮箱

第一步是使用 Exchange 命令行管理程序创建合规性搜索,用于搜索组织中的所有邮箱。 对于单个合规性搜索的邮箱数没有限制。 指定适当的关键字查询(或针对敏感信息类型的查询),以便搜索仅返回与您的调查相关的源邮箱。 如有必要,优化搜索查询来缩小返回的搜索结果以及源邮箱的范围。

注意

如果源合规性搜索操作未返回任何结果,则在步骤 3 中运行该脚本时不会创建“就地电子数据展示”。 您可能必须修改搜索查询,然后重新运行合规性搜索以返回搜索结果。

下面是使用 New-ComplianceSearch cmdlet 搜索组织中所有邮箱的示例。 搜索查询返回 2015 年 10 月 1 日和 2015 年 10 月 31 日之间发送的所有邮件以及主题行中包含短语“财务报告”的邮件。 第一个命令创建搜索,第二个命令运行搜索。

New-ComplianceSearch -Name "Search All-Financial Report" -ExchangeLocation all -ContentMatchQuery 'sent>=01/01/2015 AND sent<=06/30/2015 AND subject:"financial report"'
Start-ComplianceSearch -Identity "Search All-Financial Report"

有关详细信息,请参阅 New-ComplianceSearch

重要

使用 New-ComplianceSearch cmdlet 创建符合性搜索时,会 (创建一个影子 In-Place 电子数据展示搜索,但不会) 启动,并显示在 Exchange 管理中心 (EAC) 的 就地电子数据展示 & 保留 页上。 也可以使用 Get-MailboxSearch cmdlet 来返回。 此邮箱搜索名为 ComplianceSearchName -shadow。 我们建议您删除卷影“就地电子数据展示”搜索,并在步骤 3 中使用该脚本创建“就地电子数据展示”搜索。 在 Exchange 2016 的累积更新中,将删除创建阴影搜索的功能。

合规性搜索将返回最多 500 个包含搜索结果的源邮箱。 如果有超过 500 个邮箱包含与搜索查询匹配的内容,则只有含最多搜索结果的前 500 个邮箱会包含在您在上一步中创建的合规性搜索中。 因此,如果超过 500 个邮箱包含搜索结果,其中某些邮箱将不会包括在源邮箱列表中(这些源邮箱会复制到在步骤 3 中创建的新“就地电子数据展示”搜索中)。

为了帮助您创建包含不超过 500 个源邮箱的合规性搜索,请按照下列步骤运行一个脚本,将显示您在步骤 1 中创建的合规性搜索返回的源邮箱(包含搜索结果)数量。

  1. 使用 .ps1 文件名后缀将以下文本保存到 Windows PowerShell 脚本文件。 例如,您可以将其保存到名为 SourceMailboxes.ps1 的文件中。

    [CmdletBinding()]
    Param(
         [Parameter(Mandatory=$True,Position=1)]
         [string]$SearchName
    )
    $search = Get-ComplianceSearch $SearchName
    if ($search.Status -ne "Completed")
    {
                    "Please wait until the search finishes.";
                    break;
    }
    $results = $search.SuccessResults;
    if (($search.Items -le 0) -or ([string]::IsNullOrWhiteSpace($results)))
    {
                    "The compliance search " + $SearchName + " didn't return any useful results.";
                    break;
    }
    $mailboxes = @();
    $lines = $results -split '[\r\n]+';
    foreach ($line in $lines)
    {
        if ($line -match 'Location: (\S+),.+Item count: (\d+)' -and $matches[2] -gt 0)
        {
            $mailboxes += $matches[1];
        }
    }
    "Number of mailboxes that have search hits: " + $mailboxes.Count
    
  2. 在 Exchange 命令行管理程序中,转到在上一步中创建的脚本所在的文件夹,然后运行该脚本:例如:

    .\SourceMailboxes.ps1
    
  3. 当脚本发出提示时,请键入您在步骤 1 中创建的合规性搜索的名称。

    该脚本会显示包含搜索结果的源邮箱的数量。

如果源邮箱数量超过 500 个,请尝试创建两个(或更多)合规性搜索。 例如,在一个合规性搜索中搜索一半贵组织的邮箱,然后在另一个合规性搜索中搜索另一半贵组织的邮箱。 您还可以更改搜索条件以减少包含搜索结果的邮箱数量。 例如,可以指定日期范围或优化关键字 (keyword) 查询。

下一步是运行脚本,以将现有合规性搜索转换为“就地电子数据展示”搜索。 以下是脚本的用途:

  • 提示您输入要转换的合规性搜索的名称。

  • 验证合规性搜索是否已完成运行。 如果合规性搜索未返回任何结果,将不会创建就地电子数据展示。

  • 将合规性搜索中包含搜索结果的源邮箱列表保存为一个变量。

  • 使用以下属性创建新的就地电子数据展示搜索。 请注意,新的搜索未启动。 您将在步骤 4 中启动该搜索。

    • 名称:新搜索的名称使用以下格式:<合规性搜索>的名称_MBSearch1。 如果再次运行脚本并使用相同的源符合性搜索,则搜索将命名为<合规性搜索>的名称_MBSearch2。

    • 源邮箱:包含搜索结果的符合性搜索中的所有邮箱。

    • 搜索查询:新搜索使用合规性搜索中的搜索查询。 如果合规性搜索中包括所有内容(其中搜索查询为空),则新搜索也将会有空的搜索查询并将包含源邮箱中找到的所有内容。

    • 仅估计搜索:新搜索标记为仅估计搜索。 启动后,它不会将搜索结果复制到发现邮箱。

  1. 使用 ps1 文件名后缀将以下文本保存到 Windows PowerShell 脚本文件。 例如,您可以将其保存到名为 MBSearchFromComplianceSearch.ps1 的文件中。

    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$True,Position=1)]
        [string]$SearchName,
        [switch]$original,
        [switch]$restoreOriginal
    )
    $search = Get-ComplianceSearch $SearchName
    if ($search.Status -ne "Completed")
    {
       "Please wait until the search finishes";
       break;
    }
    $results = $search.SuccessResults;
    if (($search.Items -le 0) -or ([string]::IsNullOrWhiteSpace($results)))
    {
       "The compliance search " + $SearchName + " didn't return any useful results";
       "A mailbox search object wasn't created";
       break;
    }
    $mailboxes = @();
    $lines = $results -split '[\r\n]+';
    foreach ($line in $lines)
    {
        if ($line -match 'Location: (\S+),.+Item count: (\d+)' -and $matches[2] -gt 0)
        {
            $mailboxes += $matches[1];
        }
    }
    $msPrefix = $SearchName + "_MBSearch";
    $I = 1;
    $mbSearches = Get-MailboxSearch;
    while ($true)
    {
        $found = $false;
        $mbsName = "$msPrefix$I";
        foreach ($mbs in $mbSearches)
        {
            if ($mbs.Name -eq $mbsName)
            {
                $found = $true;
                break;
            }
        }
        if (!$found)
        {
            break;
        }
        $I++;
    }
    $query = $search.KeywordQuery;
    if ([string]::IsNullOrWhiteSpace($query))
    {
        $query = $search.ContentMatchQuery;
    }
    if ([string]::IsNullOrWhiteSpace($query))
    {
       New-MailboxSearch "$msPrefix$i" -SourceMailboxes $mailboxes -EstimateOnly;
    }
    else
    {
       New-MailboxSearch "$msPrefix$i" -SourceMailboxes $mailboxes -SearchQuery $query -EstimateOnly;
    }
    
  2. 在 Exchange 命令行管理程序中,转到在上一步中创建的脚本所在的文件夹,然后运行该脚本:例如:

    .\MBSearchFromComplianceSearch.ps1
    
  3. 当脚本给出提示时,请键入您希望转换为“就地电子数据展示”搜索(例如,您在步骤 1 中创建的搜索)的合规性搜索的名称,然后按“Enter”

    如果脚本成功,将创建新的就地电子数据展示搜索,状态为 NotStarted。 运行 命令 Get-MailboxSearch <Name of compliance search>_MBSearch1 | FL 以显示新搜索的属性。

您在步骤 3 中运行的脚本将创建一个新的就地电子数据展示搜索,但不会启动该搜索。 下一步是启动该搜索,以便您可以获取搜索结果的估计值。

  1. 在 Exchange 管理中心 (EAC) 中,转到 “合规性管理>就地电子数据展示 & 保留”。

  2. 在列表视图中,选择您在步骤 3 中创建的就地电子数据展示搜索。

  3. 单击“ 搜索 ” (“搜索”图标。) >“估计搜索结果 ”以开始搜索,并返回搜索返回的总大小和项数的估计值。

    估计值显示在详细信息窗格中。 单击“ 刷新 (刷新”图标。) 更新详细信息窗格中显示的信息。

  4. 若要在完成搜索后预览结果,请单击详细信息窗格中的“预览搜索结果”。

提示

或者,可以使用 Exchange 命令行管理程序启动 In-Place 电子数据展示搜索;例如 Start-MailboxSearch -Identity <Name of compliance search>_MBSearch1

创建并启动由步骤 3 中的脚本创建的就地电子数据展示搜索后,您可以使用普通的就地电子数据展示工作流对搜索结果执行不同的电子数据展示操作。

创建就地保留

  1. 在 EAC 中,转到 “合规性管理>就地电子数据展示 & 保留”。

  2. 在列表视图中,选择在步骤 3 中创建的 In-Place 电子数据展示搜索,然后单击 “编辑 ” (“编辑”图标。) 。

  3. 在“就地保留”页面上,选中“将与所选邮箱中的搜索查询匹配的内容置于保留状态”复选框,然后选择以下选项之一:

    • 无限期保留:选择此选项可将搜索返回的项目置于无限期保留状态。 保留的项目将会保持,直到您从搜索中删除邮箱或删除搜索。

    • 指定相对于其接收日期保留项目的天数:选择此选项可保留特定时间段内的项目。 持续时间从接收或创建邮箱项目的日期开始计算。

  4. 单击“保存”创建就地保留并重新启动搜索。

复制搜索结果

  1. 在 EAC 中,转到 “合规性管理>就地电子数据展示 & 保留”。

  2. 在列表视图中,选择您在步骤 3 中创建的就地电子数据展示搜索。

  3. 单击 “搜索 (搜索”图标 。) ,然后单击下拉列表中的“ 复制搜索结果 ”。

  4. 在“复制搜索结果”中,从以下选项中进行选择:

    • 包括不可搜索的项目:选中此检查框可包含无法搜索 (邮箱项目,例如,带有无法由 Exchange 搜索) 编制索引的文件类型附件的邮件。

    • 启用重复数据删除:选中此检查框可排除重复邮件。 仅有邮件的单个实例将被复制到发现邮箱。

    • 启用完整日志记录:选中此检查框以在搜索结果中包含完整日志。

    • 复制完成后向我发送邮件:选中此检查框,在搜索完成后收到电子邮件通知。

    • 将结果复制到此发现邮箱:单击“ 浏览 ”以选择要将搜索结果复制到的发现邮箱。

  5. 单击“复制”开始将搜索结果复制到指定发现邮箱的过程。

  6. 单击“ 刷新 (刷新”图标。) 更新详细信息窗格中显示的复制状态的相关信息。

  7. 复制完成后,单击“打开”打开发现邮箱查看搜索结果。

导出搜索结果

  1. 在 EAC 中,转到 “合规性管理>就地电子数据展示 & 保留”。

  2. 在列表视图中,选择您在步骤 3 中创建的就地电子数据展示搜索,然后单击“导出到 PST 文件”

  3. 在列表视图中,选择要导出结果的就地电子数据展示搜索,然后单击“导出到 PST 文件”

  4. 在“电子数据展示 PST 导出工具”窗口中,执行以下操作:

    • 单击“浏览”指定要下载 PST 文件的位置。

    • 单击“启用重复数据删除”复选框来排除重复的邮件。 Only a single instance of a message will be included in the PST file.

    • Click the Include unsearchable items checkbox to include mailbox items that couldn't be searched (for example, messages with attachments of file types that couldn't be indexed by Exchange Search). 不可搜索的项目会被导出到一个单独的 PST 文件中。

  5. 单击“开始”将搜索结果导出到 PST 文件。

    将显示一个窗口,其中包含有关导出过程的状态信息。