Usar um script para adicionar usuários a uma isenção um caso de descoberta eletrônica no Centro de conformidade de segurança do Office 365

Observação:  Desejamos fornecer o conteúdo da Ajuda mais recente no seu idioma da forma mais rápida possível. Esta página foi traduzida de forma automatizada e pode conter imprecisões ou erros gramaticais. Nosso objetivo é que este conteúdo seja útil para você. As informações foram úteis? Dê sua opinião no final desta página. Aqui está o artigo em inglês para facilitar a referência.

O Centro de Conformidade e Segurança do Office 365 fornece muitas cmdlets Windows PowerShell que permitem automatizam tarefas demoradas relacionadas a criar e gerenciar casos de descoberta eletrônica. Atualmente, usando a ferramenta de caso de descoberta eletrônica no Centro de Conformidade e Segurança para colocar um grande número de conteúdo dos responsáveis locais no mantenha leva tempo e preparação. Por exemplo, antes de criar uma isenção, você precisa coletar a URL para cada site OneDrive for Business que você deseja colocar em espera. Em seguida, para cada usuário que você deseja colocar em espera, você precisa adicionar suas caixas de correio e seu site de OneDrive for Business à isenção. No futuro versões do Centro de Conformidade e Segurança, isso ficará mais fácil de fazer. Até lá, você pode usar o script neste artigo para automatizar esse processo.

As solicitações de script que para o nome do domínio de meusite da sua organização (por exemplo, contoso na URL https://contoso-my.sharepoint.com), o nome de um caso de descoberta eletrônica existente, o nome da nova mantiver que associado com o caso, uma lista de emails endereços dos usuários que você deseja colocar em mantenha e mantenha usar se você deseja criar uma consulta com base em uma consulta de pesquisa. O script, em seguida, obtém a URL para o site OneDrive for Business para cada usuário na lista, cria a nova suspensão e adiciona o site de correio e OneDrive for Business para cada usuário na lista à isenção. O script também gera arquivos de log que contêm informações sobre a nova suspensão.

Aqui estão as etapas para fazer isso:

Etapa 1: Instalar o Shell de gerenciamento on-line do SharePoint

Etapa 2: Gerar uma lista de usuários

Etapa 3: Executar o script para criar uma isenção e adicionar usuários

Antes de começar

  • Você precisa ser um membro do grupo de função do Gerenciador de descoberta eletrônica na Centro de Conformidade e Segurança e um administrador global SharePoint Online para executar o script na etapa 3. Para obter mais informações, consulte atribuir permissões de descoberta eletrônica no Centro de conformidade de segurança do Office 365.

  • Um máximo de 1.000 caixas de correio e 100 sites pode ser adicionado a uma isenção que está associada a um caso de descoberta eletrônica na Centro de Conformidade e Segurança. Presumindo que cada usuário que você deseja colocar em espera tem um site OneDrive for Business, você pode adicionar um máximo de 100 usuários a uma isenção usando o script neste artigo.

  • Certifique-se de salvar a lista de usuários que você criar na etapa 2 e o script na etapa 3 na mesma pasta. Que irá facilitar executar o script.

  • O script adiciona a lista de usuários a uma nova isenção que está associada um caso existente. Certifique-se de que o caso no qual você deseja associar a retenção com é criado antes de executar o script.

  • O script inclui tratamento de erro mínimo. OneDrive para o site de negócios de cada usuário em mantenha pressionada a sua finalidade principal é rapidamente e facilmente colocar a caixa de correio.

  • Os scripts de exemplo fornecidos neste tópico não são compatíveis com nenhum serviço ou programa de suporte padrão da Microsoft. Os scripts de exemplo são fornecidos COMO ESTÃO sem qualquer tipo de garantia. A Microsoft também se isenta de todas as garantias implícitas, incluindo sem limitações quaisquer garantias aplicáveis de padrões de comercialização ou de adequação a uma finalidade específica. Todos os riscos decorrentes do uso ou da execução da documentação ou scripts de exemplo serão de sua responsabilidade. De modo algum a Microsoft, seus autores ou qualquer outra pessoa envolvida na criação, produção ou veiculação dos scripts serão considerados responsáveis por quaisquer danos (incluindo sem limitações danos por perda de lucros comerciais, interrupção de negócios, perda de informações comerciais ou outras perdas pecuniárias) resultantes do uso ou da incapacidade de uso da documentação ou scripts de exemplo, mesmo que a Microsoft tenha sido alertada sobre a possibilidade de tais danos.

Retornar ao início

Etapa 1: Instalar o Shell de gerenciamento de SharePoint Online

A primeira etapa é instalar o SharePoint Online Shell de gerenciamento, se ele ainda não estiver instalado no computador local. Você não precisa usar o shell neste procedimento, mas você precisa instalá-lo porque ele contém pré-requisitos necessários para o script que você executar na etapa 3. Esses pré-requisitos permitem o script para se comunicar com SharePoint Online para obter as URLs para os sites de OneDrive for Business.

Vá para Configurar o ambiente do SharePoint Online Management Shell do Windows PowerShell e executar a etapa 1 e a etapa 2 para instalar o SharePoint Online Shell de gerenciamento no computador local.

Retornar ao início

Etapa 2: Gerar uma lista de usuários

O script na etapa 3 irá criar uma isenção associado a um caso de descoberta eletrônica e adicionar caixas de correio e sites de OneDrive for Business de uma lista de usuários para a suspensão. Você pode apenas digitar os endereços de email em um arquivo de texto, ou você pode executar um comando no Windows PowerShell para obter uma lista de endereços de email e salvá-los em um arquivo (localizado na mesma pasta que você vai salvar o script na etapa 3).

Aqui está um comando do PowerShell (que você executa usando o PowerShell remoto conectado à sua organização Exchange Online ) para obter uma lista de endereços de email para todos os usuários em sua organização e salvá-lo em um arquivo de texto chamado HoldUsers.txt.

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

Depois de executar este comando, abra o arquivo de texto e remover o cabeçalho que contém o nome da propriedade, PrimarySmtpAddress. Remova todos os endereços de email, exceto aqueles para os usuários que você deseja adicionar à isenção que você deseja criar na etapa 3. Verifique não se que há nenhuma linha em branco antes ou depois da lista de endereços de email.

Retornar ao início

Etapa 3: Executar o script para criar uma isenção e adicionar usuários

Quando você executa o script nesta etapa, ele solicitará que você as seguintes informações. Certifique-se de que essas informações prontas antes de executar o script.

  • Suas credenciais de usuário    O script usará suas credenciais para se conectar ao Centro de Conformidade e Segurança com o PowerShell remoto. Ele também usará essas credenciais para acessar SharePoint Online para obter as URLs de OneDrive for Business para a lista de usuários.

  • Nome do seu domínio de meusite    O domínio de meusite é o domínio que contém todos os sites de OneDrive for Business em sua organização. Por exemplo, se a URL do seu domínio de meusite for https://contoso-my.sharepoint.com, em seguida, você digitaria contoso quando o script solicita o nome do seu domínio de meusite.

  • Nome do caso    O nome de um caso existente. O script criará uma nova isenção que está associada esse caso.

  • Nome da suspensão    O nome da suspensão o script criará e associar as maiusculas e minúsculas especificada.

  • Mantenha a consulta de pesquisa para uma consulta com base em    Você pode criar uma isenção baseado em consulta para que apenas o conteúdo que atende ao critério de pesquisa especificado é colocado em espera. Para colocar todo o conteúdo em espera, pressione Enter quando solicitado para uma consulta de pesquisa.

  • Se deseja ou não ativar a suspensão    Você pode fazer com que o script ativar a suspensão após sua criação ou você pode fazer com que o script crie a suspensão sem ativá-lo. Se você não tiver o script ativar a suspensão, você pode ativá-la mais tarde a Centro de Conformidade e Segurança ou executando os seguintes comandos do PowerShell:

    Set-CaseHoldPolicy -Identity <name of the hold> -Enabled $true
    Set-CaseHoldRule -Identity <name of the hold> -Disabled $false
  • Nome do arquivo de texto com a lista de usuários    O nome do arquivo de texto da etapa 2 que contém a lista de usuários para adicionar à isenção. Se este arquivo está localizado na mesma pasta que o script, basta digite o nome do arquivo (por exemplo, HoldUsers.txt). Se o arquivo de texto estiver em outra pasta, digite o caminho completo do arquivo.

Depois que você tenha coletado as informações que o script solicitará, a etapa final é executar o script para criar a novo espera e adicionar usuários a ele.

  1. Salvar o texto a seguir em um arquivo de script Windows PowerShell usando o sufixo filename. ps1; Por exemplo, AddUsersToHold.ps1.

    #script begin
    " " 
    write-host "***********************************************"
    write-host "   Office 365 Security & Compliance Center   " -foregroundColor yellow -backgroundcolor darkgreen
    write-host "   eDiscovery cases - Add users to a hold   " -foregroundColor yellow -backgroundcolor darkgreen 
    write-host "***********************************************"
    " " 
    # Get user credentials & Connect to Office 365 SCC, SPO
    
    $credentials = Get-Credential -Message "Specify your credentials to connect to the Office 365 Security & Compliance Center and SharePoint Online"
    $s = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://ps.compliance.protection.outlook.com/powershell-liveid" -Credential $credentials -Authentication Basic -AllowRedirection -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck)
    $a = Import-PSSession $s -AllowClobber
    
        if (!$s)
        {
            Write-Error "Couldn't create PowerShell session."
            return;
        }
    
    # Load the SharePoint assemblies from the SharePoint Online Management Shell
    # To install, go to http://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 "The SharePoint Online Management Shell isn't installed. Please install it from: http://go.microsoft.com/fwlink/p/?LinkId=255251 and then re-run this script."
            return;
        }
    }
    
    if (!$spCreds)
    {
        $spCreds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($credentials.UserName, $credentials.Password)
    }
    
    # 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 "Enter the name of your organization's MySite domain. For example, 'contoso' for 'https://contoso-my.sharepoint.com'"
    ""
    
    # Get other required information
    do{
    $casename = Read-Host "Enter the name of the case"
    $caseexists = (get-compliancecase -identity "$casename" -erroraction SilentlyContinue).isvalid
    if($caseexists -ne 'True')
    {""
    write-host "A case named '$casename' doesn't exist. Please specify the name of an existing case, or create a new case and then re-run the script." -foregroundColor Yellow
    ""}
    }While($caseexists -ne 'True')
    
    ""
    do{
    $holdName = Read-Host "Enter the name of the new hold"
    $holdexists=(get-caseholdpolicy -identity "$holdname" -case "$casename" -erroraction SilentlyContinue).isvalid
    if($holdexists -eq 'True')
    {""
    write-host "A hold named '$holdname' already exists. Please specify a new hold name." -foregroundColor Yellow
    ""}
    }While($holdexists -eq 'True')
    
    ""
    $holdQuery = Read-Host "Enter a search query to create a query-based hold, or press Enter to hold all content"
    ""
    $holdstatus = read-host "Do you want the hold enabled after it's created? (Yes/No)"
    
    do{
    ""
    $inputfile = read-host "Enter the name of the text file that contains the email addresses of the users to add to the hold"
    ""
    $fileexists = test-path -path $inputfile
    if($fileexists -ne 'True'){write-host "$inputfile doesn't exist. Please enter a valid file name." -foregroundcolor Yellow}
    }while($fileexists -ne 'True')
    
    #Import the list of addresses from the txt file.  Trim any excess spaces and make sure all addresses 
        #in the list are unique.
    	[array]$emailAddresses = Get-Content $inputfile -ErrorAction SilentlyContinue | where {$_.trim() -ne ""}  | foreach{ $_.Trim() }
    	[int]$dupl = $emailAddresses.count
    	[array]$emailAddresses = $emailAddresses | select-object -unique
    	$dupl -= $emailAddresses.count
    
    #Validate email addresses so the hold creation does not run in to an error.
    if($emailaddresses.count -gt 0){
    write-host ($emailAddresses).count "addresses were found in the text file. There were $dupl duplicate entries in the file." -foregroundColor Yellow
    ""
    Write-host "Validating the email addresses. Please wait..." -foregroundColor Yellow
    ""
    $finallist =@()
    foreach($emailAddress in $emailAddresses)
    {
    if((get-recipient $emailaddress -erroraction SilentlyContinue).isvalid -eq 'True')
    {$finallist += $emailaddress}
    else {"Unable to find the user $emailaddress"
    [array]$excludedlist += $emailaddress}
    }
    ""
    #find user's OneDrive Site URL using email address
    Write-Host "Getting the URL for each user's OneDrive for Business site." -foregroundColor Yellow
    ""
    $AdminUrl = "https://$mySiteDomain-admin.sharepoint.com"
    $mySiteUrlRoot = "https://$mySiteDomain-my.sharepoint.com"
    
    # 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
    $urls = @()
    foreach($emailAddress in $emailAddresses)
    {
          try{
            $prop = $UserProfileService.GetUserProfileByName("i:0#.f|membership|$emailAddress") | Where-Object { $_.Name -eq "PersonalSpace" }
            $url = $prop.values[0].value
    		if($url -ne $null){
            $furl = $mySiteUrlRoot + $url
            $urls += $furl
            Write-Host "- $emailAddress => $furl"
    		[array]$ODadded += $furl}
    	else{    
            Write-Warning "Couldn't locate OneDrive for $emailAddress"
    		[array]$ODExluded += $emailAddress
        }}
    	catch { 
    	Write-Warning "Could not locate OneDrive for $emailAddress"
    	[array]$ODExluded += $emailAddress
    	Continue }
    }
    
    if(($finallist.count -gt 0) -or ($urls.count -gt 0)){
    ""
    Write-Host "Creating the hold named $holdname. Please wait..." -foregroundColor Yellow
    if(($holdstatus -eq "Y") -or ($holdstatus -eq  "y") -or ($holdstatus -eq "yes") -or ($holdstatus -eq "YES")){
    New-CaseHoldPolicy -Name "$holdName" -Case "$casename" -ExchangeLocation $finallist -SharePointLocation $urls -Enabled $True | out-null
    New-CaseHoldRule -Name "$holdName" -Policy "$holdname" -ContentMatchQuery $holdQuery | out-null
    }
    else{
    New-CaseHoldPolicy -Name "$holdName" -Case "$casename" -ExchangeLocation $finallist -SharePointLocation $urls -Enabled $false | out-null
    New-CaseHoldRule -Name "$holdName" -Policy "$holdname" -ContentMatchQuery $holdQuery -disabled $true | out-null
    }
    ""
    }
    else {"No valid locations were identified. Therefore, the hold wasn't created."}
    
    #write log files (if needed)
    $newhold=Get-CaseHoldPolicy -Identity "$holdname" -Case "$casename" -erroraction SilentlyContinue
    $newholdrule=Get-CaseHoldRule -Identity "$holdName" -erroraction SilentlyContinue
    if(($ODAdded.count -gt 0) -or ($ODExluded.count -gt 0) -or ($finallist.count -gt 0) -or ($excludedlist.count -gt 0) -or ($newhold.isvalid -eq 'True') -or ($newholdrule.isvalid -eq 'True'))
    {
    Write-Host "Generating output files..." -foregroundColor Yellow
    if($ODAdded.count -gt 0){
    "OneDrive Locations" | add-content .\LocationsOnHold.txt
    "==================" | add-content .\LocationsOnHold.txt 
    $newhold.SharePointLocation.name | add-content .\LocationsOnHold.txt}
    if($ODExluded.count -gt 0){ 
    "Users without OneDrive locations" | add-content .\LocationsNotOnHold.txt
    "================================" | add-content .\LocationsNotOnHold.txt
    $ODExluded | add-content .\LocationsNotOnHold.txt}
    if($finallist.count -gt 0){
    " " | add-content .\LocationsOnHold.txt
    "Exchange Locations" | add-content .\LocationsOnHold.txt
    "==================" | add-content .\LocationsOnHold.txt 
    $newhold.ExchangeLocation.name | add-content .\LocationsOnHold.txt}
    if($excludedlist.count -gt 0){
    " "| add-content .\LocationsNotOnHold.txt
    "Mailboxes not added to the hold" | add-content .\LocationsNotOnHold.txt
    "===============================" | add-content .\LocationsNotOnHold.txt
    $excludedlist | add-content .\LocationsNotOnHold.txt}
    $FormatEnumerationLimit=-1
    if($newhold.isvalid -eq 'True'){$newhold|fl >.\GetCaseHoldPolicy.txt}
    if($newholdrule.isvalid -eq 'True'){$newholdrule|Fl >.\GetCaseHoldRule.txt}
    }
    }
    
    else {"The hold wasn't created because no valid entries were found in the text file."}
    ""
    Write-host "Script complete!" -foregroundColor Yellow
    ""
    #script end
  2. Em seu computador local, abra Windows PowerShell e vá para a pasta onde você salvou o script.

  3. Execute o script; Por exemplo:

    .\AddUsersToHold.ps1
  4. Insira as informações que o script solicita.

    O script se conecta ao Centro de Conformidade e Segurança usando o PowerShell remoto e, em seguida, cria a nova suspensão no caso de descoberta eletrônica e adiciona caixas de correio e OneDrive for Business para os usuários na lista. Você pode ir para o caso na página de Descoberta eletrônica na Centro de Conformidade e Segurança para exibir a nova suspensão.

Após o script em execução, ele cria os seguintes arquivos de log e salva-os para a pasta onde o script está localizado.

  • LocationsOnHold.txt    Contém uma lista de caixas de correio e sites de OneDrive for Business que o script com êxito colocado na mantenha.

  • LocationsNotOnHold.txt    Contém uma lista de caixas de correio e sites de OneDrive for Business que o script não colocou em espera. Se um usuário tiver uma caixa de correio, mas não é um site de OneDrive for Business, o usuário seria será incluído na lista de sites de OneDrive for Business que não foram colocados em retenção.

  • GetCaseHoldPolicy.txt    Contém a saída do cmdlet Get-CaseHoldPolicy para a nova suspensão, o script foi executado depois de criar a nova suspensão. As informações retornadas por esse cmdlet incluem uma lista de usuários cujas caixas de correio e sites de OneDrive for Business foram colocados em espera e se a suspensão está ativada ou desabilitada.

  • GetCaseHoldRule.txt    Contém a saída do cmdlet Get-CaseHoldRule para a nova suspensão, o script foi executado depois de criar a nova suspensão. As informações retornadas por esse cmdlet incluem a consulta de pesquisa se você usou o script para criar uma isenção baseado em consulta.

Retornar ao início

Expanda suas habilidades no Office
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×