Utiliser un script pour ajouter des utilisateurs à une suspension dans un cas eDiscovery dans le centre de conformité Office 365 sécurité

Important :  Cet article a été traduit automatiquement, voir l’avertissement. Vous pouvez consulter la version en anglais de cet article ici.

Le Centre de sécurité et conformité Office 365 fournit un nombre important de Windows PowerShell des applets de commande qui vous permettent d’automatiser les tâches du temps liés à la création et la gestion des cas de découverte électronique. Pour l’instant, à l’aide de l’outil de cas de découverte électronique dans la Centre de sécurité et conformité pour placer un grand nombre de contenu dépositaire contenir des emplacements sur demande du temps et préparation. Par exemple, avant de créer un blocage, vous devez collecter l’URL pour chaque site OneDrive Entreprise que vous souhaitez mettre en attente. Puis pour chaque utilisateur que vous voulez mettre en attente, vous devez ajouter leur boîte aux lettres et leur site OneDrive Entreprise à la mise en attente. Dans les futures versions de la Centre de sécurité et conformité, cela obtenez plus facile à faire. Jusque là, vous pouvez utiliser le script dans cet article pour automatiser ce processus.

Les script invites vous pour le nom de domaine de sites Mon site de votre organisation (par exemple, contoso dans l’URL https://contoso-my.sharepoint.com), le nom d’un cas de découverte électronique existant, le nom du nouveau maintenez la touche associé à la casse, une liste d’adresses de messagerie des utilisateurs que vous voulez placer sur contiennent et une requête de recherche à utiliser si vous voulez créer une requête basée. Le script obtient ensuite l’URL pour le site OneDrive Entreprise pour chaque utilisateur dans la liste, crée la nouvelle mise en attente, puis ajoute le site de boîte aux lettres et OneDrive Entreprise pour chaque utilisateur dans la liste pour la mise en attente. Le script génère également des fichiers journaux qui contiennent des informations sur la nouvelle mise en attente.

Voici comment procéder :

Étape 1 : Installer SharePoint Online Management Shell

Étape 2 : Générer une liste des utilisateurs

Étape 3 : Exécuter le script pour la création d’une suspension et ajouter des utilisateurs

Avant de commencer

  • Vous devez être membre du groupe de rôles gestionnaire eDiscovery dans le Centre de sécurité et conformité et un administrateur global SharePoint Online pour exécuter le script à l’étape 3. Pour plus d’informations, voir Attribution d’autorisations de découverte électronique dans le centre de conformité Office 365 sécurité.

  • Un maximum de 1 000 boîtes aux lettres et 100 sites peut être ajouté à une suspension associée à un cas eDiscovery dans le Centre de sécurité et conformité. En supposant que chaque utilisateur que vous souhaitez mettre en attente possède un site OneDrive Entreprise, vous pouvez ajouter un maximum de 100 utilisateurs à une suspension en utilisant le script dans cet article.

  • Veillez à enregistrer la liste des utilisateurs que vous créez dans l’étape 2 et le script à l’étape 3 dans le même dossier. Qui facilitera exécuter le script.

  • Le script ajoute la liste des utilisateurs à une nouvelle suspension associé à un dossier existant. N’oubliez pas le cas auquel vous voulez associer le blocage est créé avant d’exécuter le script.

  • Le script comprend la gestion des erreurs minimales. Son objectif principal est rapidement et facilement placer la boîte aux lettres longuement sur site d’entreprise de chaque utilisateur sur OneDrive.

  • Les exemples de scripts fournis dans cette rubrique ne sont pas pris en charge par les services ou programmes d’assistance standard de Microsoft. Les exemples de scripts sont fournis tels quels, sans garantie d’aucune sorte. Microsoft Corporation décline aussi toute garantie implicite, y compris et sans limitation, les garanties implicites de qualité marchande ou d’adéquation à un usage particulier. La totalité des risques découlant de l’utilisation ou de la performance des exemples de scripts et de la documentation repose sur vous. En aucun cas Microsoft, ses auteurs ou quiconque impliqué dans la création, la production ou la livraison des scripts ne sera responsable de tous dommages quels qu’ils soient (y compris, sans limitation, les dommages pour perte de profits, interruption d’activité, perte d’informations commerciales ou toute autre perte pécuniaire) découlant de l’utilisation ou de l’impossibilité d’utiliser les exemples de scripts ou la documentation, même si Microsoft a été informé de la possibilité de tels dommages.

Revenir au début

Étape 1 : Installer SharePoint Online Management Shell

La première étape consiste à installer le SharePoint Online Management Shell s’il n’est pas déjà installé sur votre ordinateur local. Vous n’êtes pas obligé d’utiliser le shell dans cette procédure, mais vous devez l’installer, car elle contient les conditions préalables requises par le script que vous exécutez à l’étape 3. Ces conditions préalables pour permettre le script communiquer avec SharePoint Online pour obtenir l’URL pour les sites OneDrive Entreprise.

Accédez à configurer l’environnement SharePoint Online Management Shell Windows PowerShell et effectuez l’étape 1 et l’étape 2 pour installer le SharePoint Online Management Shell sur votre ordinateur local.

Revenir au début

Étape 2 : Générer une liste des utilisateurs

Le script à l’étape 3 crée une suspension associée à un cas eDiscovery et ajoutez les boîtes aux lettres et les sites OneDrive Entreprise d’une liste d’utilisateurs à la mise en attente. Vous pouvez simplement taper les adresses de messagerie dans un fichier texte, ou vous pouvez exécuter une commande dans Windows PowerShell pour obtenir une liste d’adresses de messagerie et les enregistrer dans un fichier (situé dans le même dossier que vous devez enregistrer le script à l’étape 3).

Voici une commande PowerShell (que vous exécutez à l’aide de remote PowerShell connecté à votre organisation Exchange Online ) pour obtenir une liste d’adresses de messagerie pour tous les utilisateurs de votre organisation et enregistrez-le dans un fichier texte nommé HoldUsers.txt.

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

Une fois que vous exécutez cette commande, ouvrez le fichier texte et supprimez l’en-tête qui contient le nom de la propriété PrimarySmtpAddress. Supprimez toutes les adresses de messagerie à l’exception de ceux que pour les utilisateurs que vous voulez ajouter à la suspension que vous allez créer à l’étape 3. Vérifiez qu’il n’existe aucune ligne vide avant ou après la liste des adresses de messagerie.

Revenir au début

Étape 3 : Exécuter le script pour la création d’une suspension et ajouter des utilisateurs

Lorsque vous exécutez le script dans cette étape, il vous demandera les informations suivantes. Veillez à préparer les informations suivantes avant d’exécuter le script.

  • Vos informations d’identification utilisateur    Le script va utiliser vos informations d’identification pour vous connecter à la Centre de sécurité et conformité avec remote PowerShell. Il va également utiliser ces informations d’identification pour accéder aux SharePoint Online pour obtenir l’URL OneDrive Entreprise pour la liste des utilisateurs.

  • Nom de domaine de votre site Mon site    Le domaine de sites Mon site est le domaine qui contient tous les sites OneDrive Entreprise dans votre organisation. Par exemple, si l’URL de votre domaine de sites Mon site est https://contoso-my.sharepoint.com, vous devez entrer contoso lorsque le script vous invitant au nom de domaine de votre site Mon site.

  • Nom du boîtier.    Le nom d’un cas existant. Le script crée une nouvelle suspension est associée à ce sujet.

  • Nom de la suspension    Le nom de la suspension le script créer et associer la casse spécifiée.

  • Maintenez la touche de requête de recherche pour basée sur une requête    Vous pouvez créer une suspension fondés sur une requête afin qu’uniquement le contenu qui répond aux critères de recherche est placé en attente. Pour mettre tout le contenu en attente, appuyez simplement sur entrée lorsque vous êtes invité à une requête de recherche.

  • Activer la mise en attente ou non    Vous pouvez avoir le script activer la suspension après sa création ou vous pouvez avoir le script créer la mise en attente sans l’activer. Si vous n’avez pas le script activer la mise en attente, vous pouvez l’activer sur plus loin dans le Centre de sécurité et conformité ou en exécutant les commandes PowerShell suivantes :

    Set-CaseHoldPolicy -Identity <name of the hold> -Enabled $true
    Set-CaseHoldRule -Identity <name of the hold> -Disabled $false
  • Nom du fichier texte avec la liste des utilisateurs    Le nom du fichier texte à l’étape 2 qui contient la liste des utilisateurs à ajouter à la mise en attente. Si ce fichier se trouve dans le même dossier que le script, tapez le nom du fichier (par exemple, HoldUsers.txt). Si le fichier texte est dans un autre dossier, tapez le chemin d’accès complet du fichier.

Une fois que vous avez recueilli les informations que le script vous invite à entrer, la dernière étape consiste à exécuter le script pour créer la nouvelle mise en attente et ajouter des utilisateurs.

  1. Enregistrer le texte suivant dans un fichier de script Windows PowerShell à l’aide d’un nom de fichier suffixe .ps1 ; par exemple, 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. Sur votre ordinateur local, ouvrez Windows PowerShell et accédez au dossier où vous avez enregistré le script.

  3. Exécuter le script ; par exemple :

    .\AddUsersToHold.ps1
  4. Entrez les informations que le script vous invite à entrer.

    Le script se connecte à Centre de sécurité et conformité à l’aide de remote PowerShell, puis crée la nouvelle suspension dans le cas de découverte électronique et ajoute les boîtes aux lettres et les OneDrive Entreprise pour les utilisateurs dans la liste. Vous pouvez accéder à la casse dans la page de découverte électronique dans Centre de sécurité et conformité pour afficher la nouvelle mise en attente.

Une fois que vous avez terminé le script en cours d’exécution, il crée les fichiers journaux suivants et les enregistrer dans le dossier où se trouve le script.

  • LocationsOnHold.txt    Contient la liste des boîtes aux lettres et des sites OneDrive Entreprise contenant le script enregistrée avec succès.

  • LocationsNotOnHold.txt    Contient la liste des boîtes aux lettres et des sites OneDrive Entreprise que le script ne pas mettre en attente. Si un utilisateur possède une boîte aux lettres, mais pas un site OneDrive Entreprise, l’utilisateur est inclus dans la liste des sites OneDrive Entreprise qui n’ont pas été mis en attente.

  • GetCaseHoldPolicy.txt    Indique le résultat de l’applet de commande Get-CaseHoldPolicy pour la nouvelle suspension, le script a été exécuté après la création de la nouvelle mise en attente. Les informations renvoyées par cette applet de commande incluent une liste des utilisateurs dont les boîtes aux lettres et sites OneDrive Entreprise ont été placés sur en attente et que le blocage est activé ou désactivé.

  • GetCaseHoldRule.txt    Indique le résultat de l’applet de commande Get-CaseHoldRule pour la nouvelle suspension, le script a été exécuté après la création de la nouvelle mise en attente. Les informations renvoyées par cette applet de commande incluent la requête de recherche si vous avez utilisé le script de création d’une suspension fondés sur une requête.

Revenir au début

Remarque : Avertissement traduction automatique : cet article a été traduit par un ordinateur, sans intervention humaine. Microsoft propose cette traduction automatique pour offrir aux personnes ne maîtrisant pas l’anglais l’accès au contenu relatif aux produits, services et technologies Microsoft. Comme cet article a été traduit automatiquement, il risque de contenir des erreurs de grammaire, de syntaxe ou de terminologie.

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoignez le programme Office Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×