Utiliser un script pour créer un rapport sur les conservations dans les cas d’eDiscovery
Conseil
eDiscovery (préversion) est désormais disponible dans le nouveau portail Microsoft Purview. Pour en savoir plus sur l’utilisation de la nouvelle expérience eDiscovery, consultez En savoir plus sur eDiscovery (préversion).
Le script de cet article permet aux administrateurs eDiscovery et aux gestionnaires eDiscovery de générer un rapport qui contient des informations sur toutes les conservations associées aux cas eDiscovery (Standard) et eDiscovery (Premium) dans le portail de conformité Microsoft Purview. Le rapport contient des informations telles que le nom du cas où une conservation est associée, les emplacements de contenu mis en attente et si la conservation est basée sur des requêtes. S’il existe des cas qui n’ont pas de conservation, le script crée un rapport supplémentaire avec une liste de cas sans conservation.
Consultez la section Plus d’informations pour obtenir une description détaillée des informations incluses dans le rapport.
Conseil
Si vous n’êtes pas un client E5, utilisez la version d’évaluation de 90 jours des solutions Microsoft Purview pour découvrir comment des fonctionnalités Supplémentaires purview peuvent aider vos organization à gérer les besoins en matière de sécurité et de conformité des données. Commencez maintenant sur le hub d’évaluation Microsoft Purview. En savoir plus sur les conditions d’inscription et d’essai.
Administration exigences et informations de script
- Pour générer un rapport sur tous les cas eDiscovery dans votre organization, vous devez être administrateur eDiscovery dans votre organization. Si vous êtes un gestionnaire eDiscovery, le rapport inclut uniquement des informations sur les cas auxquels vous pouvez accéder. Pour plus d’informations sur les autorisations eDiscovery, consultez Attribuer des autorisations eDiscovery.
- Le script de cet article a une gestion minimale des erreurs. L’objectif principal est de créer rapidement un rapport sur les conservations associées aux cas eDiscovery dans votre organization.
- Les exemples de scripts fournis dans cet article 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.
Étape 1 : Connectez-vous à Security & Compliance PowerShell
La première étape consiste à se connecter à Security & Compliance PowerShell pour votre organisation. Pour consulter des instructions détaillées, consultez Se connecter à Security & Compliance PowerShell.
Étape 2 : Exécuter le script pour créer un rapport sur les conservations associées aux cas eDiscovery
Une fois que vous êtes connecté à Security & Compliance PowerShell, l’étape suivante consiste à créer et exécuter le script qui collecte des informations sur les cas eDiscovery dans votre organization.
Enregistrez le texte suivant dans un fichier de script Windows PowerShell en utilisant le suffixe de nom de fichier .ps1, par exemple, CaseHoldsReport.ps1.
#script begin " " write-host "***********************************************" write-host "Security & Compliance Center " -foregroundColor yellow -backgroundcolor darkgreen write-host "eDiscovery cases - Holds 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)' $outputpath = $Path + '\' + 'CaseHoldsReport' + ' ' + $time + '.csv' $noholdsfilepath = $Path + '\' + 'CaseswithNoHolds' + $time + '.csv' #add case details to the csv file function add-tocasereport { Param([string]$casename, [String]$casetype, [String]$casestatus, [datetime]$casecreatedtime, [string]$casemembers, [datetime]$caseClosedDateTime, [string]$caseclosedby, [string]$holdname, [String]$Holdenabled, [string]$holdcreatedby, [string]$holdlastmodifiedby, [string]$ExchangeLocation, [string]$sharePointlocation, [string]$ContentMatchQuery, [datetime]$holdcreatedtime, [datetime]$holdchangedtime, [string]$holdstatus, [string]$holderror ) $addRow = New-Object PSObject Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Case name" -Value $casename Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Case type" -Value $casetype Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Case status" -Value $casestatus Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Case members" -Value $casemembers Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Case created time" -Value $casecreatedtime Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Case closed time" -Value $caseClosedDateTime Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Case closed by" -Value $caseclosedby Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Hold name" -Value $holdname Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Hold enabled" -Value $Holdenabled Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Hold created by" -Value $holdcreatedby Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Hold last changed by" -Value $holdlastmodifiedby Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Exchange locations" -Value $ExchangeLocation Add-Member -InputObject $addRow -MemberType NoteProperty -Name "SharePoint locations" -Value $sharePointlocation Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Hold query" -Value $ContentMatchQuery Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Hold created time (UTC)" -Value $holdcreatedtime Add-Member -InputObject $addRow -MemberType NoteProperty -Name "Hold changed time (UTC)" -Value $holdchangedtime Add-Member -InputObject $addrow -MemberType NoteProperty -Name "Hold Status" -Value $holdstatus Add-Member -InputObject $addrow -MemberType NoteProperty -Name "Hold Error" -Value $holderror $allholdreport = $addRow | Select-Object "Case name", "Case type", "Case status", "Hold name", "Hold enabled", "Case members", "Case created time", "Case closed time", "Case closed by", "Exchange locations", "SharePoint locations", "Hold query", "Hold created by", "Hold created time (UTC)", "Hold last changed by", "Hold changed time (UTC)", "Hold Status", "Hold Error" $allholdreport | export-csv -path $outputPath -notypeinfo -append -Encoding ascii } #get information on the cases and pass values to the case report function " " write-host "Gathering a list of eDiscovery (Standard) cases and holds..." " " $edc = Get-ComplianceCase -ErrorAction SilentlyContinue foreach ($cc in $edc) { write-host "Working on case :" $cc.name if ($cc.status -eq 'Closed') { $cmembers = ((Get-ComplianceCaseMember -Case $cc.name).windowsLiveID) -join ';' add-tocasereport -casename $cc.name -casetype $cc.casetype -casestatus $cc.Status -caseclosedby $cc.closedby -caseClosedDateTime $cc.ClosedDateTime -casemembers $cmembers } else { $cmembers = ((Get-ComplianceCaseMember -Case $cc.name).windowsLiveID) -join ';' $policies = Get-CaseHoldPolicy -Case $cc.Name | % { Get-CaseHoldPolicy $_.Name -Case $_.CaseId -DistributionDetail } if ($policies -ne $NULL) { foreach ($policy in $policies) { $rule = Get-CaseHoldRule -Policy $policy.name add-tocasereport -casename $cc.name -casetype $cc.casetype -casemembers $cmembers -casestatus $cc.Status -casecreatedtime $cc.CreatedDateTime -holdname $policy.name -holdenabled $policy.enabled -holdcreatedby $policy.CreatedBy -holdlastmodifiedby $policy.LastModifiedBy -ExchangeLocation (($policy.exchangelocation.name) -join ';') -SharePointLocation (($policy.sharePointlocation.name) -join ';') -ContentMatchQuery $rule.ContentMatchQuery -holdcreatedtime $policy.WhenCreatedUTC -holdchangedtime $policy.WhenChangedUTC -holdstatus $policy.DistributionStatus -holderror $policy.DistributionResults } } else { Write-Host "No hold policies found in case:" $cc.name -foregroundColor 'Yellow' " " [string]$cc.name | out-file -filepath $noholdsfilepath -append } } } #get information on the cases and pass values to the case report function " " write-host "Gathering a list of eDiscovery (Premium) cases and holds..." " " $edc = Get-ComplianceCase -CaseType Advanced -ErrorAction SilentlyContinue foreach ($cc in $edc) { write-host "Working on case :" $cc.name if ($cc.status -eq 'Closed') { $cmembers = ((Get-ComplianceCaseMember -Case $cc.name).windowsLiveID) -join ';' add-tocasereport -casename $cc.name -casestatus $cc.Status -casetype $cc.casetype -caseclosedby $cc.closedby -caseClosedDateTime $cc.ClosedDateTime -casemembers $cmembers } else { $cmembers = ((Get-ComplianceCaseMember -Case $cc.name).windowsLiveID) -join ';' $policies = Get-CaseHoldPolicy -Case $cc.Name | % { Get-CaseHoldPolicy $_.Name -Case $_.CaseId -DistributionDetail } if ($policies -ne $NULL) { foreach ($policy in $policies) { $rule = Get-CaseHoldRule -Policy $policy.name add-tocasereport -casename $cc.name -casetype $cc.casetype -casemembers $cmembers -casestatus $cc.Status -casecreatedtime $cc.CreatedDateTime -holdname $policy.name -holdenabled $policy.enabled -holdcreatedby $policy.CreatedBy -holdlastmodifiedby $policy.LastModifiedBy -ExchangeLocation (($policy.exchangelocation.name) -join ';') -SharePointLocation (($policy.sharePointlocation.name) -join ';') -ContentMatchQuery $rule.ContentMatchQuery -holdcreatedtime $policy.WhenCreatedUTC -holdchangedtime $policy.WhenChangedUTC -holdstatus $policy.DistributionStatus -holderror $policy.DistributionResults } } else { write-host "No hold policies found in case:" $cc.name -foregroundColor 'Yellow' " " [string]$cc.name | out-file -filepath $noholdsfilepath -append } } } " " Write-host "Script complete! Report files saved to this folder: '$Path'" " " #script end
Dans la session Windows PowerShell qui s’est ouverte à l’étape 1, accédez au dossier dans lequel vous avez enregistré le script.
Exécutez le script ; par exemple:
.\CaseHoldsReport.ps1
Le script demande un dossier cible dans lequel enregistrer le rapport.
Tapez le chemin d’accès complet du dossier dans lequel enregistrer le rapport, puis appuyez sur Entrée.
Conseil
Pour enregistrer le rapport dans le même dossier que celui dans lequel se trouve le script, tapez un point (« . ») lorsque vous êtes invité à entrer un dossier cible. Pour enregistrer le rapport dans un sous-dossier dans le dossier où se trouve le script, tapez simplement le nom du sous-dossier.
Le script commence à collecter des informations sur tous les cas eDiscovery dans votre organization. N’accédez pas au fichier de rapport pendant l’exécution du script. Une fois le script terminé, un message de confirmation s’affiche dans la session Windows PowerShell. Une fois ce message affiché, vous pouvez accéder au rapport dans le dossier que vous avez spécifié à l’étape 4. Le nom de fichier du rapport est
CaseHoldsReport<DateTimeStamp>.csv
.En outre, le script crée également un rapport avec une liste de cas qui n’ont pas de conservation. Le nom de fichier de ce rapport est
CaseswithNoHolds<DateTimeStamp>.csv
.Voici un exemple d’exécution du script CaseHoldsReport.ps1.
Plus d’informations
Le rapport de conservation du cas créé lorsque vous exécutez le script dans cet article contient les informations suivantes sur chaque conservation. Comme expliqué précédemment, vous devez être administrateur eDiscovery pour retourner des informations pour toutes les conservations dans votre organization. Pour plus d’informations sur les conservations de cas, consultez cas eDiscovery.
- Nom de la conservation et nom du cas eDiscovery auquel la conservation est associée.
- Indique si la conservation est associée à un cas eDiscovery (Standard) ou eDiscovery (Premium).
- Indique si le cas eDiscovery est actif ou fermé.
- Indique si la conservation est activée ou désactivée.
- Membres du cas eDiscovery auquel la conservation est associée. Les membres de cas peuvent afficher ou gérer un cas, en fonction des autorisations eDiscovery qui leur ont été attribuées.
- Heure et date de création du cas.
- Si un dossier est fermé, la personne qui l’a fermé, ainsi que l’heure et la date de fermeture.
- Emplacements des boîtes aux lettres Exchange et des sites SharePoint en attente.
- Si la conservation est basée sur une requête, la syntaxe de requête.
- Heure et date de création de la conservation et de la personne qui l’a créée.
- Heure et date de la dernière modification de la conservation et de la personne qui l’a modifiée.