Использование поиска содержимого для поиска списка пользователей в почтовом ящике и на сайте OneDrive для бизнеса

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

Совет

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

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

  • Чтобы запустить сценарий на шаге 3, необходимо быть членом группы ролей диспетчера электронных данных на портале соответствия требованиям и глобальным администратором SharePoint Online.

  • Не забудьте сохранить список пользователей, создаваемых на шаге 2, и скрипт на шаге 3, в той же папке. Это упростит выполнение скрипта.

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

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

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

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

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

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

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

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

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

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

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

  • Учетные данные пользователя. Сценарий будет использовать ваши учетные данные для доступа к SharePoint Online, чтобы получить 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 for Business 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 for Business
    $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 for Business 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 для соответствия требованиям безопасности &, чтобы отобразить статистику и результаты поиска, или перейти на страницу Поиск контента на портале соответствия требованиям, чтобы просмотреть сведения о поиске.