Использование функции "Поиск контента" в Office 365 для целевых коллекций

Функция "Поиск контента" в Центре безопасности и соответствия требованиям Office 365 не позволяет выполнять поиск в определенных папках в почтовых ящиках Exchange или на сайтах SharePoint и OneDrive для бизнеса. Тем не менее, можно выполнять поиск в определенных папках (называемых целевая коллекция), указав в синтаксисе поискового запроса идентификатор папки или путь. Поиск контента в целевой коллекции полезен в тех случаях, когда вы уверены, что элементы, относящиеся к делу, или привилегированные элементы расположены в определенной почтовой папке или папке сайта. Используйте сценарии из этой статьи, чтобы получить идентификаторы почтовых папок или пути для папок на сайтах SharePoint и OneDrive для бизнеса. Полученный идентификатор папки или путь можно использовать в поисковом запросе, чтобы найти элементы в папке.

Ниже описано, что нужно для этого сделать.

Шаг 1. Запуск сценария для получения списка папок в почтовом ящике или на сайте

Шаг 2. Использование идентификатора папки или пути для поиска в целевой коллекции

Дополнительные сведения

Подготовка

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

    Кроме того, вам должна быть назначена роль "Получатели почты" в вашей организации Exchange Online. Это необходимо для запуска командлета Get-MailboxFolderStatistics, включенного в сценарий на шаге 1. По умолчанию роль "Получатели почты" назначается группам ролей "Управление организацией" и "Управление получателями" в Exchange Online. Дополнительные сведения о назначении разрешений в Exchange Online см. в статье Управление участниками группы ролей. Вы также можете создать особую группу ролей, назначить ей роль "Получатели почты" и добавить участников, которым необходимо запустить сценарий на шаге 1. Дополнительные сведения см. в статье Управление группами ролей.

  • Каждый раз, когда вы запускаете сценарий на шаге 1, создается новый удаленный сеанс PowerShell. Поэтому вы можете исчерпать все доступные вам удаленные сеансы PowerShell. Чтобы этого не допустить, запустите указанную ниже команду и отключите свои активные удаленные сеансы PowerShell.

    Get-PSSession | Remove-PSSession

    Дополнительные сведения см. в статье Подключение к Exchange Online с помощью удаленной оболочки PowerShell.

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

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

К началу

Шаг 1. Запуск сценария для получения списка папок в почтовом ящике или на сайте

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

  • Адрес электронной почты или URL-адрес сайта.    Введите адрес электронной почты хранителя, чтобы получить список почтовых папок Exchange и их идентификаторов. Или введите URL-адрес сайта SharePoint или OneDrive для бизнеса, чтобы получить список путей для указанного сайта. Вот несколько примеров:

    • Exchange   vitalyt@Contoso.onmicrosoft.com

    • SharePoint   https://contoso.sharepoint.com/sites/marketing

    • OneDrive для бизнеса   https://contoso-my.sharepoint.com/personal/vitalyt_contoso_onmicrosoft_com

  • Учетные данные пользователя.    Сценарий использует ваши учетные данные для подключения к Exchange Online и к Центру безопасности и соответствия требованиям с помощью удаленной оболочки PowerShell. Как описано выше, для успешного запуска этого сценария вам должны быть назначены соответствующие разрешения.

Чтобы отобразить список папок почтового ящика или путей сайта:

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

    #########################################################################################################
    # This PowerShell script will prompt you for:								#
    #    * Admin credentials for a user who can run the Get-MailboxFolderStatistics cmdlet in Exchange	#
    #      Online and who is an eDiscovery Manager in the Security & Compliance Center.			#
    # The script will then:											#
    #    * If an email address is supplied: list the folders for the target mailbox.			#
    #    * If a SharePoint or OneDrive for Business site is supplied: list the folder paths for the site.	#
    #    * In both cases, the script supplies the correct search properties (folderid: or path:)		#
    #      appeneded to the folder ID or path ID to use in a Content Search.				#
    # Notes:												#
    #    * For SharePoint and OneDrive for Business, the paths are searched recursively; this means the 	#
    #      the current folder and all sub-folders are searched.						#
    #    * For Exchange, only the specified folder will be searched; this means sub-folders in the folder	#
    #      will not be searched.  To search sub-folders, you need to use the specify the folder ID for	#
    #      each sub-folder that you want to search.								#
    #    * For Exchange, only folders in the user's primary mailbox will be returned by the script.		#
    #########################################################################################################
    
    # Collect the target email address or SharePoint Url
    $addressOrSite = Read-Host "Enter an email address or a URL for a SharePoint or OneDrive for Business site"
    
    # Authenticate with Exchange Online and the Security & Complaince Center (Exchange Online Protection - EOP)
    if (!$credentials)
    {
        $credentials = Get-Credential
    }
    
    if ($addressOrSite.IndexOf("@") -ige 0)
    {
        # List the folder Ids for the target mailbox
        $emailAddress = $addressOrSite
    
        # Authenticate with Exchange Online
        if (!$ExoSession)
        {
            $ExoSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell-liveid/ -Credential $credentials -Authentication Basic -AllowRedirection
            Import-PSSession $ExoSession -AllowClobber -DisableNameChecking
        }
    
        $folderQueries = @()
        $folderStatistics = Get-MailboxFolderStatistics $emailAddress
        foreach ($folderStatistic in $folderStatistics)
        {
            $folderId = $folderStatistic.FolderId;
            $folderPath = $folderStatistic.FolderPath;
    
            $encoding= [System.Text.Encoding]::GetEncoding("us-ascii")
            $nibbler= $encoding.GetBytes("0123456789ABCDEF");
            $folderIdBytes = [Convert]::FromBase64String($folderId);
            $indexIdBytes = New-Object byte[] 48;
            $indexIdIdx=0;
            $folderIdBytes | select -skip 23 -First 24 | %{$indexIdBytes[$indexIdIdx++]=$nibbler[$_ -shr 4];$indexIdBytes[$indexIdIdx++]=$nibbler[$_ -band 0xF]}
            $folderQuery = "folderid:$($encoding.GetString($indexIdBytes))";
    
            $folderStat = New-Object PSObject
            Add-Member -InputObject $folderStat -MemberType NoteProperty -Name FolderPath -Value $folderPath
            Add-Member -InputObject $folderStat -MemberType NoteProperty -Name FolderQuery -Value $folderQuery
    
            $folderQueries += $folderStat
        }
        Write-Host "-----Exchange Folders-----"
        $folderQueries |ft
    }
    elseif ($addressOrSite.IndexOf("http") -ige 0)
    {
        $searchName = "SPFoldersSearch"
        $searchActionName = "SPFoldersSearch_Preview"
    
        # List the folders for the SharePoint or OneDrive for Business Site
        $siteUrl = $addressOrSite
    
        # Authenticate with the Security & Complaince Center
        if (!$SccSession)
        {
            $SccSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.compliance.protection.outlook.com/powershell-liveid -Credential $credentials -Authentication Basic -AllowRedirection
            Import-PSSession $SccSession -AllowClobber -DisableNameChecking
        }
    
        # Clean-up, if the the script was aborted, the search we created might not have been deleted.  Try to do so now.
        Remove-ComplianceSearch $searchName -Confirm:$false -ErrorAction 'SilentlyContinue'
    
        # Create a Content Search against the SharePoint Site or OneDrive for Business site and only search for folders; wait for the search to complete
        $complianceSearch = New-ComplianceSearch -Name $searchName -ContentMatchQuery "contenttype:folder" -SharePointLocation $siteUrl
        Start-ComplianceSearch $searchName
        do{
            Write-host "Waiting for search to complete..."
            Start-Sleep -s 5
            $complianceSearch = Get-ComplianceSearch $searchName
        }while ($complianceSearch.Status -ne 'Completed')
    
    
        if ($complianceSearch.Items -gt 0)
        {
            # Create a Complinace Search Action and wait for it to complete. The folders will be listed in the .Results parameter
            $complianceSearchAction = New-ComplianceSearchAction -SearchName $searchName -Preview
            do
            {
                Write-host "Waiting for search action to complete..."
                Start-Sleep -s 5
                $complianceSearchAction = Get-ComplianceSearchAction $searchActionName
            }while ($complianceSearchAction.Status -ne 'Completed')
    
            # Get the results and print out the folders
            $results = $complianceSearchAction.Results
            $matches = Select-String "Data Link:.+[,}]" -Input $results -AllMatches
            foreach ($match in $matches.Matches)
            {
                $rawUrl = $match.Value
                $rawUrl = $rawUrl -replace "Data Link: " -replace "," -replace "}"
                Write-Host "path:""$rawUrl"""
            }
        }
        else
        {
            Write-Host "No folders were found for $siteUrl"
        }
    
        Remove-ComplianceSearch $searchName -Confirm:$false -ErrorAction 'SilentlyContinue'
    }
    else
    {
        Write-Error "Couldn't recognize $addressOrSite as an email address or a site URL"
    }
  2. На локальном компьютере откройте Windows PowerShell и перейдите в папку, в которой вы сохранили сценарий.

  3. Запустите сценарий, например:

    .\GetFolderSearchParameters.ps1
  4. Введите сведения, которые запрашивает сценарий.

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

    Совет : Вместо отображения списка папок на экране компьютера, можно перенаправить выходные данные сценария в текстовый файл. Этот файл будет сохранен в папке со сценарием. Например, чтобы перенаправить выходные данные сценария в текстовый файл, на шаге 3 запустите такую команду: .\GetFolderSearchParameters.ps1 > StacigFolderIds.txt. Затем вы можете скопировать из файла идентификатор папки или путь и использовать их в поисковом запросе.

К началу

Выходные данные сценария для почтовых папок

Если необходимо получить идентификаторы почтовых папок, сценарий подключается к Exchange Online с помощью удаленной оболочки PowerShell, запускает командлет Get-MailboxFolderStatisics и отображает список папок из указанного почтового ящика. Для каждой папки в почтовом ящике сценарий отображает ее имя в столбце FolderPath и идентификатор в столбце FolderQuery. Кроме того, сценарий добавляет к идентификатору папки префикс folderId (это имя свойства почтового ящика). Свойство folderid доступно для поиска, поэтому, чтобы выполнить поиск в этой папке, вы будете использовать свойство folderid:<folderid> в поисковом запросе на шаге 2.

Ниже приведен пример выходных данных, которые возвращает сценарий для почтовых папок.

Пример списка почтовых папок и их идентификаторов, возвращаемого сценарием.

В примере на шаге 2 показан запрос на поиск элементов в папке Purges, вложенной в папку пользователя Recoverable Items.

Выходные данные сценария для папок сайта

Если необходимо получить пути сайта SharePoint или OneDrive для бизнеса, сценарий подключается к Центру безопасности и соответствия требованиям с помощью удаленной оболочки PowerShell, создает новый поиск контента, чтобы найти папки сайта, а затем отображает список папок, расположенных на указанном сайте. Сценарий отображает имя каждой папки и добавляет к URL-адресу папки префикс path (это имя свойства сайта). Свойство path доступно для поиска, поэтому, чтобы выполнить поиск в этой папке, вы будете использовать свойство path:<path> в поисковом запросе на шаге 2.

Ниже приведен пример выходных данных, которые возвращает сценарий для папок сайта.

Пример списка путей для папок сайта, возвращаемого сценарием.

К началу

Шаг 2. Использование идентификатора папки или пути для поиска в целевой коллекции

После запуска сценария и получения списка идентификаторов папок или путей для определенного пользователя следующий шаг — перейти в Центр безопасности и соответствия требованиям и создать новый поиск контента в определенной папке. Вы будете использовать свойство folderid:<folderid> или path:<path> в поисковом запросе, настраиваемом в поле ключевых слов в поиске контента (или в качестве значения параметра ContentMatchQuery, если используете командлет New-ComplianceSearch). Свойство folderid или path можно объединять с другими параметрами или условиями поиска. Если включить в запрос только свойство folderid или path, поиск возвратит все элементы, расположенные в указанной папке.

  1. Перейдите по ссылке https://protection.office.com.

  2. Войдите в службу Office 365 с учетными данными, которые вы использовали для запуска сценария на шаге 1.

  3. В Центре безопасности и соответствия требованиям в области слева выберите элементы Поиск и исследование > Поиск контента, а затем нажмите кнопку Создать Добавить значок .

  4. На странице Новый поиск введите имя для поиска контента. Оно должен быть уникальным в пределах организации.

  5. В разделе Где нужно искать? выполните одно из указанных ниже действий в зависимости от места поиска: в почтовой папке или папке сайта.

    • Выберите параметр Выбор определенных почтовых ящиков для поиска и добавьте почтовый ящик, который вы указали при запуске сценария на шаге 1.

      ИЛИ

    • Выберите параметр Выбор определенных сайтов для поиска и добавьте URL-адрес сайта, который вы указали при запуске сценария на шаге 1.

  6. Нажмите кнопку Далее.

  7. В поле ключевых слов на странице Что вы ищете? введите значение folderid:<folderid> или path:<path>, которое вернул сценарий на шаге 1.

    Например, запрос на приведенном ниже снимке экрана выполняет поиск по всем элементам в папке Purges, вложенной в папку пользователя Recoverable Items (показаны на снимке экрана с почтовыми папками на шаге 1).

    Вставьте идентификатор папки или путь в поле ключевых слов поискового запроса.
  8. Чтобы начать поиск в целевой коллекции, нажмите кнопку Поиск.

К началу

Примеры поисковых запросов для целевых коллекций

Ниже приведены некоторые примеры использования свойств folderid и path в запросе на поиск в целевой коллекции. Обратите внимание, что для экономии места в свойствах folderid:<folderid> и path:<path> используются заполнители.

  • В этом примере выполняется поиск в трех разных почтовых папках. Вы можете использовать подобный синтаксис запроса для поиска контента в скрытых папках в папке пользователя Recoverable Items.

    folderid:<folderid> OR folderid:<folderid> OR folderid:<folderid>
  • В этом примере выполняется поиск элементов почтовой папки, содержащих точную фразу.

    folderid:<folderid> AND "Contoso financial results"
  • В этом примере выполняется поиск документов, название которых содержит буквы "NDA", в папке сайта (и всех вложенных в нее папках).

    path:<path> AND filename:nda
  • В этом примере выполняется поиск документов, измененных в диапазоне дат, в папке сайта (и всех вложенных в нее папках).

    path:<path> AND (lastmodifiedtime>=01/01/2017 AND lastmodifiedtime<=01/21/2017)

К началу

Дополнительные сведения

При использовании сценариев из этой статьи и выполнении поиска в целевых коллекциях учитывайте следующее:

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

  • Сценарий возвращает сведения о папке только для основного почтового ящика пользователя. Он не возвращает сведения о папках в архивном почтовом ящике.

  • Для почтовых папок поиск выполняется только в указанной папке (определенной по ее свойству folderid). Поиск не выполняется во вложенных папках. Чтобы выполнить поиск в определенной вложенной папке, необходимо воспользоваться ее параметром folderid.

  • Для папок сайта поиск выполняется в папке (определенной по ее свойству path) и всех ее вложенных папках.

К началу

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

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

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

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

×