Использование поиска контента для целевых коллекций

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

Скрипт, приведенный в этой статье, можно использовать для получения идентификатора папки для папок почтовых ящиков или пути (DocumentLink) для папок в SharePoint и OneDrive для бизнеса сайте. Затем можно использовать идентификатор папки или путь в поисковом запросе для возврата элементов, расположенных в папке.

Примечание.

Чтобы вернуть содержимое, расположенное в папке на сайте SharePoint или OneDrive для бизнеса, скрипт в этом разделе использует управляемое свойство DocumentLink вместо свойства Path. Свойство DocumentLink является более надежным, чем свойство Path, так как оно возвращает все содержимое в папке, в то время как свойство Path не возвращает некоторые файлы мультимедиа.

Совет

Если вы не являетесь клиентом E5, используйте 90-дневную пробную версию решений Microsoft Purview, чтобы узнать, как дополнительные возможности Purview могут помочь вашей организации управлять безопасностью данных и соответствием требованиям. Начните сейчас, перейдя в центр пробных версий на портале соответствия требованиям Microsoft Purview. Сведения о регистрации и условиях пробной версии.

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

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

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

  • Скрипт, приведенный в этой статье, поддерживает современную проверку подлинности. Сценарий можно использовать как есть, если вы являетесь организацией Microsoft 365 или Microsoft 365 GCC. Если вы являетесь организацией Office 365 Германии, организацией Microsoft 365 GCC High или Организацией Microsoft 365 DoD, вам придется изменить сценарий, чтобы успешно запустить его. В частности, необходимо изменить строку Connect-ExchangeOnline и использовать параметр ExchangeEnvironmentName (и соответствующее значение для типа организации) для подключения к Exchange Online PowerShell. Кроме того, необходимо изменить строку Connect-IPPSSession и использовать параметры ConnectionUri и AzureADAuthorizationEndpointUri (и соответствующие значения для типа организации), чтобы подключиться к PowerShell для обеспечения соответствия требованиям безопасности &. Дополнительные сведения см. в примерах в разделах Подключение к Exchange Online PowerShell и Подключение к PowerShell для обеспечения безопасности & соответствия требованиям.

  • Идентификатор папки в скрипте должен иметь шестнадцатеричный формат значений (HEX).

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

    Get-PSSession | Remove-PSSession; Disconnect-ExchangeOnline
    

    Дополнительные сведения см. в статье Connect to Exchange Online PowerShell.

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

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

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

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

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

    • Exchange: stacig@contoso.onmicrosoft.com
    • SharePoint: https://contoso.sharepoint.com/sites/marketing
    • OneDrive для бизнеса:https://contoso-my.sharepoint.com/personal/stacig_contoso_onmicrosoft_com
  • Учетные данные пользователя. Скрипт будет использовать ваши учетные данные для подключения к Exchange Online PowerShell или 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 compliance portal.            #
    # 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 documentlinks (folder paths) #
    #    * for the site.                                                                                    #
    #    * In both cases, the script supplies the correct search properties (folderid: or documentlink:)    #
    #      appended to the folder ID or documentlink 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 compliance portal (Exchange Online Protection - EOP)
    if ($addressOrSite.IndexOf("@") -ige 0)
    {
       # List the folder Ids for the target mailbox
       $emailAddress = $addressOrSite
       # Connect to Exchange Online PowerShell
       if (!$ExoSession)
       {
           Import-Module ExchangeOnlineManagement
           Connect-ExchangeOnline -ShowBanner:$false -CommandName Get-MailboxFolderStatistics
       }
       $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"
       $rawUrls = @()
       # List the folders for the SharePoint or OneDrive for Business Site
       $siteUrl = $addressOrSite
       # Connect to Security & Compliance PowerShell
       if (!$SccSession)
       {
           Import-Module ExchangeOnlineManagement
           Connect-IPPSSession
       }
       # Clean-up, if 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 OR contentclass:STS_Web" -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 Compliance 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 "}"
               $rawUrls += "DocumentLink:""$rawUrl"""
           }
           $rawUrls |ft
       }
       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 для поиска в этой папке.

Важно!

Скрипт в этой статье включает логику кодирования, которая преобразует значения идентификатора папки из 64 символов, возвращаемые Командлетом Get-MailboxFolderStatistics , в тот же 48-символьный формат, который индексируется для поиска. Если вы просто выполните командлет Get-MailboxFolderStatistics в PowerShell для получения идентификатора папки (вместо выполнения скрипта, описанного в этой статье), поисковый запрос, использующий это значение идентификатора папки, завершится ошибкой. Чтобы получить правильно отформатированные идентификаторы папок, которые можно использовать в поиске контента, необходимо запустить скрипт.

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

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

В примере на шаге 2 показан запрос, используемый для поиска вложенной папки Очистки в папке "Элементы с возможностью восстановления".

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

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

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

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

Скрипт для извлечения Идентификатора папки из нескольких почтовых ящиков

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

  1. Создайте файл .csv с заголовком UsersGatherFolderIDs столбца UsersSMTP.

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

  3. Сохраните следующий текст в файл скрипта Windows PowerShell с помощью суффикса имени файла .ps1, например:GetMultiUserFolderIDseDiscovery.ps1

     #########################################################################################################
     #This Sample Code is provided for the purpose of illustration only and is not intended to be used in a production environment. 
     #THIS SAMPLE CODE AND ANY RELATED INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS OR A PARTICULAR PURPOSE. 
     #We grant You a nonexclusive, royalty-free right to use and modify the Sample Code and to reproduce and distribute the object code form of the Sample Code, provided that You agree: 
     # (1) to not use Our name, logo, or trademarks to market Your software product in which the Sample Code is embedded; 
     # (2) to include a valid copyright notice on Your software product in which the Sample Code is embedded; and 
     # (3) to indemnify, hold harmless, and defend Us and Our suppliers from and against any claims or lawsuits, including attorney's fees, that arise or result from the use or distribution of the Sample Code.
     #########################################################################################################
     " "
     write-host "***********************************************"
     write-host "Security & Compliance Center   " -foregroundColor yellow -backgroundcolor darkgreen
     write-host "eDiscovery cases - FolderID report         " -foregroundColor yellow -backgroundcolor darkgreen
     write-host "***********************************************"
     " "
    
     #prompt users to specify a path to store the output files
     $time = get-date -Format dd-MM-yyyy_hh.mm
     $Path = Read-Host 'Enter a folder path to save the report to a .csv file (filename is created automatically).'
     $inputPath = $Path + '\' + 'Users_GatherFolderID.csv'
     $outputpath = $Path + '\' + 'FileID Report' + ' ' + $time + '.csv'
    
     #Imports list of users
     #User List needs column "UserSMTP" with values of each mailbox's SMTP address.
     $users = Import-CSV $inputPath
    
     function add-tofolderidreport {
         Param(
             [string]$UserEmail,
             [String]$FolderName,
             [String]$FolderID,
             [String]$ConvertedFolderQuery
         )
    
         $addRow = New-Object PSObject
         Add-Member -InputObject $addRow -MemberType NoteProperty -Name "User Email" -Value $useremail
         Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Folder Name" -Value $FolderName
         Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Native Folder ID" -Value $FolderID
         Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Converted Folder Query" -Value $ConvertedFolderQuery
    
         $folderIDReport = $addRow | Select-Object "User Email", "Folder Name", "Native Folder ID", "Converted Folder Query"
         $folderIDReport | export-csv -path $outputPath -notypeinfo -append -Encoding ascii
     }
    
     #get information on the cases and pass values to the FolderID report function
     foreach ($u in $users) {
         $userAddress = $u.UserSMTP
         " "
         write-host "Gathering list of Folders for User:" $userAddress -ForegroundColor Yellow -BackgroundColor Black
         " "
         if ($userAddress.IndexOf("@") -ige 0) {
             # List the folder Ids for the target mailbox
             $emailAddress = $userAddress
             # Connect to Exchange Online PowerShell
             $folderQueries = @()
             $folderStatistics = Get-MailboxFolderStatistics $emailAddress -IncludeSoftDeletedRecipients
             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
    
                 #add information to Report
                 add-tofolderidreport -UserEmail $emailAddress -FolderName $folderPath -FolderID $folderId -ConvertedFolderQuery $folderQuery
             }
    
             #Outputs Exchange Folders for Single User
             Write-Host "-----Exchange Folders-----" -ForegroundColor Yellow
             $folderQueries | ft
    
         }
    
     }
    
     #Provides Path of Report
     " "
     Write-Host "----- Report Output Available at:" "$outputpath" " -----" -ForegroundColor Yellow -BackgroundColor Cyan
     " "
    
  4. На локальном компьютере откройте Windows PowerShell и перейдите в папку, в которой сохранен скрипт. Запустите файл GetMultiUserFolderIDseDiscovery.ps1скрипта .

  5. Введите путь к папке, в которой вы сохранили файлUsersGatherFolderIDs.csv .

  6. Скрипт отображает список папок почтовых ящиков или папок сайта для указанных пользователей. Он также создает отчет в той же корневой папке, указанной на шаге 4.

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

  1. Перейдите по адресу https://compliance.microsoft.com и выполните вход, используя учетную запись и учетные данные, которые использовались для запуска скрипта на шаге 1.

  2. В левой области портала соответствия требованиям выберите Показать весь>поиск контента, а затем выберите Новый поиск.

  3. В поле Ключевые слова вставьте folderid:<folderid> значение или documentlink:<path>/* , возвращенное скриптом на шаге 1.

    Например, запрос на следующем снимке экрана будет искать любой элемент во вложенной папке Очистки в папке "Элементы с возможностью восстановления" пользователя (значение folderid свойства для вложенной папки Очистки показано на снимке экрана на шаге 1):

    Вставьте идентификатор папки или documentlink в поле ключевое слово поискового запроса.

    Важно!

    Для поиска documentlink требуется использовать конечный asterisk '/*'элемент .

  4. В разделе Расположения выберите Конкретные расположения , а затем — Изменить.

  5. Выполните одно из следующих действий в зависимости от того, выполняется ли поиск в папке почтового ящика или папке сайта.

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

      Или

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

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

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

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

  • В этом примере выполняется поиск в трех разных папках почтовых ящиков. Аналогичный синтаксис запроса можно использовать для поиска скрытых папок в папке "Элементы с возможностью восстановления".

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

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

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

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

Дополнительная информация

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

  • Скрипт не удаляет папки из результатов. Поэтому некоторые папки, перечисленные в результатах, могут быть недоступны для поиска (или возвращать нулевые элементы), так как они содержат содержимое, созданное системой, или потому, что они содержат только вложенные папки, а не элементы почтового ящика.
  • Этот скрипт возвращает только сведения о папке для основного почтового ящика пользователя. Он не возвращает сведения о папках в архивном почтовом ящике пользователя. Чтобы вернуть сведения о папках в архивном почтовом ящике пользователя, можно изменить скрипт. Для этого измените строку $folderStatistics = Get-MailboxFolderStatistics $emailAddress$folderStatistics = Get-MailboxFolderStatistics $emailAddress -Archive на , а затем сохраните и запустите измененный скрипт. Это изменение вернет идентификаторы папок и вложенных папок в архивном почтовом ящике пользователя. Чтобы выполнить поиск во всем архивном почтовом ящике, можно подключить все пары идентификатора папки property:value с оператором OR в поисковом запросе.
  • При поиске папок почтового ящика будет выполняться поиск только в указанной папке (определяемой ее folderid свойством). В вложенных папках поиск не будет выполняться. Для поиска вложенных папок необходимо использовать идентификатор папки для вложенной папки, в которой требуется выполнить поиск.
  • При поиске папок сайта выполняется поиск в папке (определяемой ее documentlink свойством) и всех вложенных папках.
  • При экспорте результатов поиска, в котором вы указали folderid только свойство в поисковом запросе, можно выбрать первый параметр экспорта: "Все элементы, за исключением элементов, имеющих нераспознанный формат, зашифрованы или не индексированы по другим причинам". Все элементы в папке всегда будут экспортированы независимо от состояния индексирования, так как идентификатор папки всегда индексируется.