Создание и удаление нескольких поисков содержимого, а также получение отчетов по ним

Быстрое создание операций поиска и отчетов по ним часто является важным этапом обнаружения электронных данных и исследования, который позволяет получить сведения о данных и качестве поиска. Чтобы упростить этот процесс, Центр безопасности и соответствия требованиям Office 365 включает набор командлетов Windows PowerShell, которые автоматизируют задачи поиска контента, отнимающие много времени. Эти сценарии позволяют быстро и легко создать несколько операций поиска, а затем запустить отчеты по предполагаемым результатам, чтобы определить объем данных. Вы также можете использовать сценарии для создания разных версий поиска, чтобы сравнить их результаты. Эти сценарии помогут вам быстрее и эффективнее находить и выбирать данные.

В этой статье описываются сценарии, которые можно выполнять для создания, запуска, удаления операций поиска и подготовки отчетов по ним. Процесс включает следующие этапы:

Шаг 1. Создание CSV-файла, который содержит сведения о нужных операциях поиска

Шаг 2. Подключение к Центру безопасности и соответствия требованиям с помощью удаленной командной оболочки PowerShell

Шаг 3. Выполнение сценария для создания и запуска поиска

Шаг 4. Выполнение сценария для создания отчета о предполагаемых результатах поиска

Шаг 5. Выполнение сценария для удаления поиска

Подготовка

  • Для запуска сценариев, описанных в этом разделе, вы должны быть участником группы ролей "Диспетчер eDiscovery" в Центре безопасности и соответствия требованиям.

  • Чтобы собрать список URL-адресов для сайтов OneDrive для бизнеса в организации, который нужно добавить в CSV-файл на этапе 1, используйте сценарий из действия 2 в статье Назначение разрешений на обнаружение электронных данных на сайтах OneDrive для бизнеса. Этот сценарий создает текстовый файл, содержащий список всех сайтов OneDrive для бизнеса. Чтобы запустить этот сценарий, необходимо установить и использовать командную консоль SharePoint Online (см. действие 1 в предыдущем разделе). Эти URL-адреса используются в CSV-файле, который создается на этапе 1.

  • Сохраните все созданные файлы в той же папке. Это упростит запуск сценария.

  • Сценарии включают минимальную обработку ошибок. Их основное назначение — быстро создавать и удалять несколько операций поиска контента, а также формировать отчеты по ним.

  • Примеры сценариев, содержащиеся в этой статье, не поддерживаются стандартными программами и службами поддержки Майкрософт. Они предоставляются как есть безо всяких гарантий. Кроме того, корпорация Майкрософт отказывается от всех подразумеваемых гарантий, включая, но не ограничиваясь указанным, все подразумеваемые гарантии пригодности для продажи или определенной цели. Все риски, возникающие в результате использования примеров сценариев и документации, берет на себя пользователь. Корпорация Майкрософт, авторы или другие люди, участвовавшие в создании, разработке и предоставлении сценариев, ни при каких обстоятельствах не несут ответственности за любой ущерб (включая, но не ограничиваясь указанным, ущерб в результате потери прибыли, перерыва в работе, потери бизнес-информации или другой материальный ущерб), вызванный использованием примеров сценариев или документации либо невозможностью их использовать, даже если корпорация Майкрософт была уведомлена о возможности такого ущерба.

Шаг 1. Создание CSV-файла, который содержит сведения о нужных операциях поиска

Файл с разделителями-запятыми (CSV-файл), созданный на этом этапе, содержит по одной строке для каждого интересующего вас пользователя. Вы можете выполнить поиск в почтовом ящике Exchange Online этого пользователя (в том числе в архивном почтовом ящике, если он включен) и на его сайте OneDrive для бизнеса. Кроме того, можно выполнить поиск только в почтовом ящике или на сайте OneDrive для бизнеса. Вы также можете выполнить поиск на любом сайте SharePoint Online в своей организации. Сценарий, который выполняется на этапе 3, создает отдельный поиск для каждой строки в CSV-файле.

  1. Скопируйте и вставьте следующий текст в TXT-файл, используя Блокнот. Сохраните этот файл в папку на локальном компьютере. Другие сценарии также нужно сохранить в эту папку.

    ExchangeLocation,SharePointLocation,ContentMatchQuery,StartDate,EndDate
    sarad@contoso.onmicrosoft.com,https://contoso-my.sharepoint.com/personal/sarad_contoso_onmicrosoft_com,(lawsuit OR legal),1/1/2000,12/31/2005
    sarad@contoso.onmicrosoft.com,https://contoso-my.sharepoint.com/personal/sarad_contoso_onmicrosoft_com,(lawsuit OR legal),1/1/2006,12/31/2010
    sarad@contoso.onmicrosoft.com,https://contoso-my.sharepoint.com/personal/sarad_contoso_onmicrosoft_com,(lawsuit OR legal),1/1/2011,3/21/2016
    ,https://contoso.sharepoint.com/sites/contoso,,,3/21/2016
    ,https://contoso-my.sharepoint.com/personal/davidl_contoso_onmicrosoft_com,,1/1/2015,
    ,https://contoso-my.sharepoint.com/personal/janets_contoso_onmicrosoft_com,,1/1/2015,

    В первой строке (строке заголовков) файла перечислены параметры, которые будут использоваться командлетом New-ComplianceSearch (на этапе 3) для создания операций поиска. Имена параметров разделены запятыми. Убедитесь, что в строке заголовков нет пробелов. Каждая строка, расположенная под строкой заголовков, содержит значения параметров для каждой операции поиска. Не забудьте заменить заполнители в CSV-файле фактическими данными.

  2. Откройте TXT-файл в Microsoft Excel и добавьте в него сведения об операциях поиска, используя таблицу ниже.

    Параметр

    Описание

    ExchangeLocation

    SMTP-адрес почтового ящика пользователя.

    SharePointLocation

    URL-адрес сайта OneDrive для бизнеса пользователя или URL-адрес любого сайта в вашей организации. Для URL-адресов сайтов OneDrive для бизнеса используйте следующий формат: https://<your organization>-my.sharepoint.com/personal/<user alias>_<your organization>_onmicrosoft_com. Например: https://contoso-my.sharepoint.com/personal/sarad_contoso_onmicrosoft_com.

    ContentMatchQuery

    Поисковый запрос. Дополнительные сведения о создании поисковых запросов см. в статье Запросы с ключевыми словами и условия для поиска контента.

    StartDate

    Для сообщений электронной почты: дата получения или отправки (или более поздняя дата). Для документов на сайтах SharePoint и OneDrive для бизнеса: дата последнего изменения (или более поздняя дата).

    EndDate

    Для сообщений электронной почты: дата отправки (или более ранняя дата). Для документов на сайтах SharePoint и OneDrive для бизнеса: дата последнего изменения (или более ранняя дата).

  3. Сохраните CSV-файл в папку на локальном компьютере. Сценарий, созданный на этапе 3, использует данные из CSV-файла для создания операций поиска.

К началу

Шаг 2. Подключение к Центру безопасности и соответствия требованиям с помощью удаленной командной оболочки PowerShell

Далее необходимо подключить Windows PowerShell к Центру безопасности и соответствия требованиям для вашей организации.

  1. Сохраните указанный ниже текст в файл сценария Windows PowerShell, используя расширение PS1, например: ConnectSCC.ps1. Сохраните файл в той же папке, в которой вы сохранили CSV-файл на этапе 1.

    # Get login credentials 
    $UserCredential = Get-Credential 
    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.compliance.protection.outlook.com/powershell-liveid -Credential $UserCredential -Authentication Basic -AllowRedirection 
    Import-PSSession $Session -AllowClobber -DisableNameChecking 
    $Host.UI.RawUI.WindowTitle = $UserCredential.UserName + " (Office 365 Security & Compliance Center)" 
    
  2. На локальном компьютере откройте Windows PowerShell, перейдите к папке, в которой находится сценарий, созданный на предыдущем этапе, и запустите его, например:

    .\ConnectSCC.ps1

К началу

Шаг 3. Выполнение сценария для создания и запуска поиска

Сценарий на этом этапе создает отдельный поиск контента для каждой строки в CSV-файле, созданном на этапе 1. При запуске этого сценария вам будет предложено ввести два значения:

  • Идентификатор группы поиска:   позволяет упорядочить операции поиска, созданные на основе CSV-файла. Каждому создаваемому поиску в качестве имени присваивается идентификатор группы поиска, к которому добавляется номер. Например, если указать ContosoCase в качестве идентификатора группы поиска, операциям поиска будут присвоены имена ContosoCase_1, ContosoCase_2, ContosoCase_3 и т. д. Обратите внимание, что имя вводится с учетом регистра. При применении идентификатора поиска группы на этапах 4 и 5 необходимо использовать тот же регистр, что и при его создании.

  • CSV-файла:   имя CSV-файла, созданного на этапе 1. Укажите полное имя файла, включая расширение CSV, например ContosoCase.csv.

  1. Сохраните указанный ниже текст в файл сценария Windows PowerShell, используя расширение PS1, например: CreateSearches.ps1. Сохраните файл в той же папке, в которой вы сохранили прочие файлы.

    # Get the Search Group ID and the location of the CSV input file
    $searchGroup = Read-Host 'Search Group ID'
    $csvFile = Read-Host 'Source CSV file'
    	
    # Do a quick check to make sure our group name will not collide with other searches
    $searchCounter = 1
    import-csv $csvFile |
    	ForEach-Object{
    	
    	$searchName = $searchGroup +'_' + $searchCounter
    	$search = Get-ComplianceSearch $searchName -EA SilentlyContinue
    	if ($search)
    	{
    	    Write-Error "The Search Group ID conflicts with existing searches.  Please choose a search group name and restart the script."
    	    return
    	}
    	$searchCounter++
    }
    	
    $searchCounter = 1
    import-csv $csvFile |
    	ForEach-Object{
    	
    	# Create the query
    	$query = $_.ContentMatchQuery
    	if(($_.StartDate -or $_.EndDate))
    	{
            # Add the appropriate date restrictions.  NOTE: Using the Date condition property here because it works across Exchange, SharePoint, and OneDrive for Business.
            # For Exchange, the Date condition property maps to the Sent and Received dates; for SharePoint and OneDrive for Business, it maps to Created and Modified dates.
    
            if($query)
            {
                $query += " AND"
            }
    
            $query += " ("
    
            if($_.StartDate)
            {
                $query += "Date >= " + $_.StartDate
            }
    
            if($_.EndDate)
            {
                if($_.StartDate)
                {
                    $query += " AND "
                }
                $query += "Date <= " + $_.EndDate
            }
    
            $query += ")"
    	}
        
        # -ExchangeLocation can't be set to an empty string, set to null if there's no location.
        $exchangeLocation = $null
        if ( $_.ExchangeLocation)
        {
             $exchangeLocation = $_.ExchangeLocation
        }
    	
    	# Create and run the search        
    	$searchName = $searchGroup +'_' + $searchCounter
    	Write-Host "Creating and running search: " $searchName -NoNewline
    	$search = New-ComplianceSearch -Name $searchName -ExchangeLocation $exchangeLocation -SharePointLocation $_.SharePointLocation -ContentMatchQuery $query
    	
    	# Start and wait for each search to complete
    	Start-ComplianceSearch $search.Name
    	while ((Get-ComplianceSearch $search.Name).Status -ne "Completed")
    	{
    	    Write-Host " ." -NoNewline
    	    Start-Sleep -s 3
    	}
    	Write-Host ""
    	
    	$searchCounter++
    }
  2. В Windows PowerShell перейдите к папке, в которой вы сохранили сценарий на предыдущем этапе, и запустите его, например:

    .\CreateSearches.ps1
  3. При запросе идентификатора группы поиска введите имя группы и нажмите клавишу ВВОД, например: ContosoCase. Помните, что имя указывается с учетом регистра, поэтому на дальнейших этапах нужно вводить его точно так же.

  4. При запросе исходного CSV-файла введите имя CSV-файла, включая расширение, например: ContosoCase.csv.

  5. Нажмите клавишу ВВОД, чтобы продолжить выполнение сценария.

    Сценарий отображает ход создания и выполнения операций поиска. По завершении сценария снова появляется запрос.

    Пример результата запуска сценария для создания нескольких поисков соответствия

К началу

Шаг 4. Выполнение сценария для создания отчета о предполагаемых результатах поиска

После создания операций поиска нужно запустить сценарий, который формирует простой отчет о количестве совпадений для каждого поиска, созданного на этапе 3. В отчете также указывается размер результатов каждого поиска, общее число совпадений и общий размер всех операций поиска. При выполнении сценария отчета вам потребуется указать идентификатор группы поиска и имя CSV-файла, в который нужно сохранить отчет.

  1. Сохраните указанный ниже текст в файл сценария Windows PowerShell, используя расширение PS1, например: SearchReport.ps1. Сохраните файл в той же папке, в которой вы сохранили прочие файлы.

    $searchGroup = Read-Host 'Search Group ID'
    $outputFile = Read-Host 'Enter a file name or file path to save the report to a .csv file. Leave blank to only display the report'
    
    $searches = Get-ComplianceSearch | ?{$_.Name -clike $searchGroup + "_*"}
    
    $allSearchStats = @()
    foreach ($partialObj in $searches)
    {
        $search = Get-ComplianceSearch $partialObj.Name
    
        $sizeMB = [System.Math]::Round($search.Size / 1MB, 2)
    
        $searchStatus = $search.Status
        if($search.Errors)
        {
            $searchStatus = "Failed"
        }elseif($search.NumFailedSources -gt 0)
        {
            $searchStatus = "Failed Sources"
        }
    
        $searchStats = New-Object PSObject
        Add-Member -InputObject $searchStats -MemberType NoteProperty -Name Name -Value $search.Name
        Add-Member -InputObject $searchStats -MemberType NoteProperty -Name ContentMatchQuery -Value $search.ContentMatchQuery
        Add-Member -InputObject $searchStats -MemberType NoteProperty -Name Status -Value $searchStatus
        Add-Member -InputObject $searchStats -MemberType NoteProperty -Name Items -Value $search.Items
        Add-Member -InputObject $searchStats -MemberType NoteProperty -Name "Size" -Value $search.Size
        Add-Member -InputObject $searchStats -MemberType NoteProperty -Name "Size(MB)" -Value $sizeMB
    
        $allSearchStats += $searchStats
    }
    
    # Calculate the totals
    $allItems = ($allSearchStats | Measure-Object Items -Sum).Sum
    
    # Convert the total size to MB and round to the nearst 100th
    $allSize = ($allSearchStats | Measure-Object 'Size' -Sum).Sum
    $allSizeMB = [System.Math]::Round($allSize  / 1MB, 2)
    
    # Get the total successful searches and total of all searches
    $allSuccessCount = ($allSearchStats |?{$_.Status -eq "Completed"}).Count
    $allCount = $allSearchStats.Count
    $allStatus = [string]$allSuccessCount + " of " + [string]$allCount
    
    # Totals Row
    $totalSearchStats = New-Object PSObject
    Add-Member -InputObject $totalSearchStats -MemberType NoteProperty -Name Name -Value "Total"
    Add-Member -InputObject $totalSearchStats -MemberType NoteProperty -Name Status -Value $allStatus
    Add-Member -InputObject $totalSearchStats -MemberType NoteProperty -Name Items -Value $allItems
    Add-Member -InputObject $totalSearchStats -MemberType NoteProperty -Name "Size(MB)" -Value $allSizeMB
    $allSearchStats += $totalSearchStats
    
    # Just get the columns we're interested in showing
    $allSearchStatsPrime = $allSearchStats | Select-Object Name, Status, Items, "Size(MB)", ContentMatchQuery
    
    # Print the results to the screen
    $allSearchStatsPrime |ft -AutoSize -Wrap
    
    # Save the results to a CSV file
    if ($outputFile)
    {
        $allSearchStatsPrime | Export-Csv -Path $outputFile -NoTypeInformation
    }
  2. В Windows PowerShell перейдите к папке, в которой вы сохранили сценарий на предыдущем этапе, и запустите его, например:

    .\SearchReport.ps1
  3. При запросе идентификатора группы поиска введите имя группы и нажмите клавишу ВВОД, например: ContosoCase. Помните, что имя указывается с учетом регистра, поэтому введите его точно так же, как при выполнении сценария на этапе 3.

  4. При появлении запроса Путь к файлу для сохранения отчета в CSV-файл (оставьте пустым, чтобы только вывести отчет) введите полный путь к файлу и его имя (включая расширение CSV), если вы хотите сохранить отчет в CSV-файл. Например, можно ввести ContosoCaseReport.csv, чтобы сохранить файл в текущей папке, или C:\Users\admin\OneDrive for Business\ContosoCase\ContosoCaseReport.csv, чтобы выбрать другую папку. Вы также можете оставить поле пустым, чтобы просмотреть отчет, но не сохранять его в файле.

  5. Нажмите клавишу ВВОД.

    Сценарий отображает ход создания и выполнения операций поиска. По завершении сценария отображается отчет.

    Запуск отчета для отображения ожидаемых показателей для группы поиска

К началу

Примечание : Если один и тот же почтовый ящик или сайт указан как расположение контента для нескольких операций поиска в группе поиска, результаты могут дублироваться в оценке количества элементов и общего размера. Что связано с тем, что сообщения и документы будут учтены несколько раз, если они соответствуют разным операциям поиска в группе.

Шаг 5. Выполнение сценария для удаления поиска

Так как, вероятно, вы будете создавать большое количество операций поиска, этот сценарий позволяет быстро удалять их. Этот сценарий также запрашивает идентификатор группы поиска. При его выполнении будут удалены все операции поиска, в имени которых есть заданный идентификатор.

  1. Сохраните указанный ниже текст в файл сценария Windows PowerShell, используя расширение PS1, например: DeleteSearches.ps1. Сохраните файл в той же папке, в которой вы сохранили прочие файлы.

    # Delete all searches in a search group
    $searchGroup = Read-Host 'Search Group ID'
    Get-ComplianceSearch |
        ForEach-Object{
    
        # If the name matches the search group name pattern (case sensitive), delete the search
        if ($_.Name -cmatch $searchGroup + "_\d+")
        {
            Write-Host "Deleting search: " $_.Name
            Remove-ComplianceSearch $_.Name -Confirm:$false
        }
    }
  2. В Windows PowerShell перейдите к папке, в которой вы сохранили сценарий на предыдущем этапе, и запустите его, например:

    .\DeleteSearches.ps1
  3. При запросе идентификатора группы поиска введите имя группы для операций поиска, которые вы хотите удалить, и нажмите клавишу ВВОД, например: ContosoCase. Помните, что имя указывается с учетом регистра, поэтому введите его точно так же, как при выполнении сценария на этапе 3.

    Сценарий выводит имя каждого удаленного поиска.

    Запуск сценария для удаления поисков в группе

К началу

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×