Поделиться через


Поиск контента для поиска списка пользователей в почтовом ящике и на сайте OneDrive

Совет

Обнаружение электронных данных (предварительная версия) теперь доступно на новом портале Microsoft Purview. Дополнительные сведения об использовании нового интерфейса обнаружения электронных данных см. в статье Сведения об обнаружении электронных данных (предварительная версия).

Безопасность & соответствия PowerShell предоставляет ряд командлетов, которые позволяют автоматизировать трудоемкие задачи, связанные с обнаружением электронных данных. В настоящее время создание поиска контента на портале соответствия требованиям Microsoft Purview для поиска большого количества расположений контента-хранителя требует времени и подготовки. Перед созданием поиска необходимо собрать URL-адрес для каждого сайта OneDrive для бизнеса, а затем добавить в поиск каждый почтовый ящик и сайт OneDrive для бизнеса. В будущих выпусках это будет проще сделать на портале соответствия требованиям. До тех пор для автоматизации этого процесса можно использовать скрипт, приведенный в этой статье. Этот скрипт запрашивает имя домена MySite вашей организации (например, contoso в URL-адресе https://contoso-my.sharepoint.com), список адресов электронной почты пользователей, имя нового поиска контента и поисковый запрос для использования. Скрипт получает URL-адрес OneDrive для бизнеса для каждого пользователя в списке, а затем создает и запускает поиск контента, который выполняет поиск по почтовому ящику и сайту OneDrive для бизнеса для каждого пользователя в списке с помощью указанного вами поискового запроса.

Сведения о разрешениях и скриптах

Важно!

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

  • Чтобы запустить сценарий на шаге 3, необходимо быть членом группы ролей диспетчера электронных данных на портале Microsoft Purview или портале соответствия требованиям, а также глобальным администратором SharePoint.
  • Не забудьте сохранить список пользователей, создаваемых на шаге 2, и скрипт на шаге 3, в той же папке. Это упрощает выполнение скрипта.
  • Скрипт включает минимальную обработку ошибок. Его основная цель — быстро и легко выполнить поиск по почтовому ящику и сайту OneDrive каждого пользователя.
  • Примеры сценариев, приведенные в данной статье, не поддерживаются ни одной из стандартных программ и служб технической поддержки Майкрософт. Примеры сценариев приводятся "как есть", без каких-либо гарантий. Кроме того, корпорация Майкрософт отказывается от всех подразумеваемых гарантий, включая, но не ограничиваясь указанным, все подразумеваемые гарантии пригодности для продажи или определенной цели. Все риски, возникающие в результате использования примеров сценариев и документации, берет на себя пользователь. Корпорация Майкрософт, ее штатные авторы и другие лица, принимающие участие в создании, подготовке и выпуске сценариев, ни при каких обстоятельствах не несут ответственность за какой-либо ущерб (в том числе, ущерб, вызванный потерей доходов предприятия, остановкой его работы, потерей бизнес-данных и другими материальными потерями), вызванный использованием или неспособностью использовать примеры сценариев и документацию, даже если корпорации Майкрософт известно о возможности нанесения такого ущерба.

Шаг 1. Установка командной консоли SharePoint Online

Первым шагом является установка командной консоли SharePoint Online. В этой процедуре не нужно использовать оболочку, но ее необходимо установить, так как она содержит необходимые условия для скрипта, выполняемого на шаге 3. Эти предварительные требования позволяют скрипту взаимодействовать с SharePoint для получения URL-адресов сайтов OneDrive.

Перейдите в раздел Настройка среды оболочки управления SharePoint Online и выполните шаги 1 и 2, чтобы установить командную консоль SharePoint Online.

Шаг 2. Создание списка пользователей

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

Ниже приведена команда Exchange Online PowerShell , которую можно выполнить, чтобы получить список адресов электронной почты для всех пользователей в организации и сохранить его в текстовый файл с именем Users.txt.

Get-Mailbox -ResultSize unlimited -Filter { RecipientTypeDetails -eq 'UserMailbox'} | Select-Object PrimarySmtpAddress > Users.txt

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

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

  • Учетные данные пользователя . Скрипт использует учетные данные для доступа к SharePoint, чтобы получить URL-адреса OneDrive и подключиться к PowerShell для обеспечения соответствия требованиям безопасности &.

  • Имя домена MySite . Домен MySite — это домен, содержащий все сайты OneDrive в вашей организации. Например, если URL-адрес вашего домена MySite — https://contoso-my.sharepoint.com, введите contoso , когда скрипт предложит ввести имя домена MySite.

  • Путь к текстовому файлу из шага 2 — путь к текстовому файлу, созданному на шаге 2. Если текстовый файл и скрипт находятся в одной папке, введите имя текстового файла. В противном случае введите полный путь к текстовому файлу.

  • Имя поиска контента — имя поиска контента, который будет создан скриптом.

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

Чтобы запустить сценарий, сделайте следующее:

  1. Сохраните следующий текст в файл скрипта Windows PowerShell с помощью суффикса имени файла .ps1; например, SearchEXOOD4B.ps1. Сохраните файл в той же папке, в которой вы сохранили список пользователей на шаге 2.

    # This PowerShell script will prompt you for the following information:
    #    * Your user credentials
    #    * The name of your organization's MySite domain
    #    * The pathname for the text file that contains a list of user email addresses
    #    * The name of the Content Search that will be created
    #    * The search query string
    # The script will then:
    #    * Find the OneDrive site for each user in the text file
    #    * Create and start a Content Search using the above information
    # Get user credentials
    if (!$credentials)
    {
        $credentials = Get-Credential
    }
    # Get the user's MySite domain name.  We use this to create the admin URL and root URL for OneDrive
    $mySiteDomain = Read-Host "What is your organization's MySite domain?  For example,  'contoso' for 'https://contoso-my.sharepoint.com'"
    $AdminUrl = "https://$mySiteDomain-admin.sharepoint.com"
    $mySiteUrlRoot = "https://$mySiteDomain-my.sharepoint.com"
    # Get other required information
    $inputfile = read-host "Enter the file name of the text file that contains the email addresses for the users you want to search"
    $searchName = Read-Host "Enter the name for the new search"
    $searchQuery = Read-Host "Enter the search query you want to use"
    $emailAddresses = Get-Content $inputfile | where {$_ -ne ""}  | foreach{ $_.Trim() }
    # Connect to Security & Compliance PowerShell
    if (!$s -or !$a)
    {
        Import-Module ExchangeOnlineManagement
        Connect-IPPSSession
    }
    
    # Load the SharePoint assemblies from the SharePoint Online Management Shell
    # To install, go to https://go.microsoft.com/fwlink/p/?LinkId=255251
    if (!$SharePointClient -or !$SPRuntime -or !$SPUserProfile)
    {
        $SharePointClient = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client")
        $SPRuntime = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime")
        $SPUserProfile = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.UserProfiles")
        if (!$SharePointClient)
        {
            Write-Error "SharePoint Online Management Shell isn't installed, please install from: https://go.microsoft.com/fwlink/p/?LinkId=255251 and then run this script again"
            return;
        }
    }
    if (!$spCreds)
    {
        $spCreds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($credentials.UserName, $credentials.Password)
    }
    # Add the path of the User Profile Service to the SPO admin URL, then create a new webservice proxy to access it
    $proxyaddr = "$AdminUrl/_vti_bin/UserProfileService.asmx?wsdl"
    $UserProfileService= New-WebServiceProxy -Uri $proxyaddr -UseDefaultCredential False
    $UserProfileService.Credentials = $credentials
    # Take care of auth cookies
    $strAuthCookie = $spCreds.GetAuthenticationCookie($AdminUrl)
    $uri = New-Object System.Uri($AdminUrl)
    $container = New-Object System.Net.CookieContainer
    $container.SetCookies($uri, $strAuthCookie)
    $UserProfileService.CookieContainer = $container
    Write-Host "Getting each user's OneDrive URL"
    $urls = @()
    foreach($emailAddress in $emailAddresses)
    {
        try
        {
            $prop = $UserProfileService.GetUserProfileByName("i:0#.f|membership|$emailAddress") | Where-Object { $_.Name -eq "PersonalSpace" }
            $url = $prop.values[0].value
            $furl = $mySiteUrlRoot + $url
            $urls += $furl
            Write-Host "-$emailAddress => $furl"
        }
        catch
        {
            Write-Warning "Could not locate OneDrive for $emailAddress"
        }
    }
    Write-Host "Creating and starting the search"
    $search = New-ComplianceSearch -Name $searchName -ExchangeLocation $emailAddresses -SharePointLocation $urls -ContentMatchQuery $searchQuery
    # Finally, start the search and then display the status
    if($search)
    {
        Start-ComplianceSearch $search.Name
        Get-ComplianceSearch $search.Name
    }
    
  2. Откройте Windows PowerShell и перейдите в папку, в которой вы сохранили скрипт и список пользователей из шага 2.

  3. Запустите скрипт; Например:

    .\SearchEXOOD4B.ps1
    
  4. При запросе учетных данных введите адрес электронной почты и пароль, а затем нажмите кнопку ОК.

  5. При появлении запроса скрипта введите следующие сведения. Введите каждый фрагмент данных и нажмите клавишу ВВОД.

    • Имя домена MySite.

    • Путь к текстовому файлу, который содержит список пользователей.

    • Имя для поиска контента.

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

    Скрипт получает URL-адреса для каждого сайта OneDrive, а затем создает и запускает поиск. Вы можете запустить командлет Get-ComplianceSearch в PowerShell для соответствия требованиям безопасности &, чтобы отобразить статистику и результаты поиска, или перейти на страницу Поиск контента на портале соответствия требованиям, чтобы просмотреть сведения о поиске.