Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Lo script in questo articolo consente agli amministratori di eDiscovery e ai responsabili di eDiscovery di generare un report contenente informazioni su tutti i blocchi associati ai casi di eDiscovery nel portale di Microsoft Purview. Il report contiene informazioni come il nome del caso a cui è associato un blocco, i percorsi del contenuto che vengono inseriti in attesa e se il blocco è basato su query. Se sono presenti casi in cui non sono presenti blocchi, lo script crea un report aggiuntivo con un elenco di casi senza blocchi.
Consiglio
Introduzione a Microsoft Security Copilot per esplorare nuovi modi per lavorare in modo più intelligente e veloce usando la potenza dell'IA. Altre informazioni su Microsoft Security Copilot in Microsoft Purview.
Informazioni sul report
Il caso contiene il report creato dallo script in questo articolo contenente le informazioni seguenti su ogni blocco:
- Nome del blocco e nome del caso di eDiscovery a cui è associato il blocco.
- Indica se il blocco è associato a un caso di eDiscovery.
- Indica se il caso di eDiscovery è attivo o chiuso.
- Indica se il blocco è abilitato o disabilitato.
- Membri del caso eDiscovery a cui è associato il blocco. I membri del case possono visualizzare o gestire un caso, a seconda delle autorizzazioni di eDiscovery assegnate.
- Ora e data di creazione del caso.
- Se un caso viene chiuso, la persona che lo ha chiuso e l'ora e la data di chiusura.
- Cassette postali di Exchange e posizioni dei siti di SharePoint in attesa.
- Se il blocco è basato su query, la sintassi della query.
- Ora e data di creazione del blocco e persona che l'ha creata.
- Ora e data dell'ultima modifica del blocco e della persona che l'ha modificata.
Amministrazione requisiti e informazioni sullo script
- Per generare un report su tutti i casi di eDiscovery nell'organizzazione, è necessario essere un amministratore di eDiscovery nell'organizzazione. Se si è un gestore di eDiscovery, il report include solo informazioni sui casi a cui è possibile accedere. Per altre informazioni sulle autorizzazioni di eDiscovery, vedere Assegnare autorizzazioni di eDiscovery.
- Lo script in questo articolo ha una gestione degli errori minima. Lo scopo principale è creare rapidamente un report sui blocchi associati ai casi di eDiscovery nell'organizzazione.
Importante
Gli script di esempio forniti in questo articolo non sono supportati da alcun programma o servizio standard di supporto Microsoft. Gli script di esempio sono forniti così come sono senza alcun tipo di garanzia. Microsoft esclude inoltre qualsiasi garanzia implicita, tra cui, senza limitazioni, tutte le garanzie implicite di commerciabilità o idoneità per uno scopo specifico. L'utente assume tutti i rischi associati all'uso o alle prestazioni degli script di esempio e della documentazione. In nessun caso Microsoft, i suoi autori o chiunque altro coinvolto nella creazione, produzione o consegna degli script è da ritenersi responsabile per qualsiasi danno eventuale (inclusi, senza limitazione alcuna, danni riguardanti profitti aziendali, interruzione di attività, perdita di informazioni aziendali o altra perdita pecuniaria) derivanti dall'utilizzo o dall'incapacità di utilizzo degli script di esempio e della documentazione, anche nel caso in cui Microsoft sia stata avvisata della possibilità di tali danni.
Passaggio 1: Connettersi a PowerShell in Sicurezza e conformità
Prima di tutto, connettersi a Security & Compliance PowerShell per l'organizzazione. Per ottenere istruzioni dettagliate, vedere Connettersi a PowerShell in Sicurezza e conformità.
Passaggio 2: Eseguire lo script per segnalare i blocchi associati ai casi di eDiscovery
Dopo la connessione a Security & Compliance PowerShell, creare ed eseguire lo script che raccoglie informazioni sui casi di eDiscovery nell'organizzazione.
Salvare il testo seguente in un file di script Windows PowerShell usando un suffisso di
.ps1nome file ,CaseHoldsReport.ps1ad esempio .#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 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 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 endNella sessione Windows PowerShell aperta nel passaggio 1 passare alla cartella in cui è stato salvato lo script.
Eseguire lo script; Per esempio:
.\CaseHoldsReport.ps1Lo script richiede una cartella di destinazione in cui salvare il report.
Digitare il nome completo del percorso della cartella in cui salvare il report e quindi premere INVIO.
Consiglio
Per salvare il report nella stessa cartella in cui si trova lo script, digitare un punto (".") quando viene richiesto di specificare una cartella di destinazione. Per salvare il report in una sottocartella nella cartella in cui si trova lo script, è sufficiente digitare il nome della sottocartella.
Lo script inizia a raccogliere informazioni su tutti i casi di eDiscovery nell'organizzazione. Non accedere al file di report mentre lo script è in esecuzione. Al termine dello script, viene visualizzato un messaggio di conferma nella sessione di Windows PowerShell. Dopo aver visualizzato questo messaggio, è possibile accedere al report nella cartella specificata nel passaggio 4. Il nome del file per il report è
CaseHoldsReport<DateTimeStamp>.csv.Inoltre, lo script crea un report con un elenco di casi che non hanno blocchi. Il nome del file per questo report è
CaseswithNoHolds<DateTimeStamp>.csv.Ecco un esempio di esecuzione dello
CaseHoldsReport.ps1script.