Vytváření, vytváření sestav a odstraňování více vyhledávání obsahu

Rychlé vytváření a generování sestav vyhledávání ve zjišťování je často důležitým krokem v eDiscovery a šetřeních, když se snažíte získat informace o podkladových datech a o bohatosti a kvalitě hledání. PowerShell pro dodržování předpisů zabezpečení & nabízí sadu rutin pro automatizaci časově náročných úloh vyhledávání obsahu. Tyto skripty poskytují rychlý a snadný způsob, jak vytvořit řadu hledání a pak spustit sestavy odhadovaných výsledků hledání, které vám pomůžou určit množství daných dat. Skripty můžete také použít k vytvoření různých verzí hledání a porovnat výsledky, které jednotlivá vyhledávání vytvoří. Tyto skripty vám můžou pomoct rychle a efektivně identifikovat a zachytávat vaše data.

Tip

Pokud nejste zákazníkem E5, využijte 90denní zkušební verzi řešení Microsoft Purview a zjistěte, jak můžou další funkce purview pomoci vaší organizaci spravovat požadavky na zabezpečení dat a dodržování předpisů. Začněte hned v centru zkušebních verzí Portál dodržování předpisů Microsoft Purview. Přečtěte si podrobnosti o podmínkách registrace a zkušebních verzích.

  • Abyste mohli spouštět skripty popsané v tomto tématu, musíte být členem skupiny rolí eDiscovery Manager v Portál dodržování předpisů Microsoft Purview.
  • Pokud chcete shromáždit seznam adres URL pro weby OneDrive pro firmy ve vaší organizaci, které můžete přidat do souboru CSV v kroku 1, přečtěte si téma Vytvoření seznamu všech umístění Na OneDrivu ve vaší organizaci.
  • Nezapomeňte uložit všechny soubory, které vytvoříte v tomto tématu, do stejné složky. To usnadní spouštění skriptů.
  • Skripty zahrnují minimální zpracování chyb. Jejich primárním účelem je rychle vytvářet, vykazovat a odstraňovat více vyhledávání obsahu.
  • Ukázkové skripty uvedené v tomto tématu nejsou podporovány v rámci žádného standardního programu nebo služby podpory Microsoftu. Ukázkové skripty jsou poskytovány TAK, JAK JSOU, bez jakékoli záruky. Společnost Microsoft se dále zříká všech předpokládaných záruk, mimo jiné včetně jakýchkoli předpokládaných záruk obchodovatelnosti nebo vhodnosti pro určitý účel. Veškeré riziko vyplývající z použití nebo výkonu ukázkových skriptů a dokumentace zůstává na vás. Společnost Microsoft, její autoři ani nikdo jiný, kdo se podílí na vytváření, výrobě nebo dodávání skriptů, nebude v žádném případě odpovídat za jakékoli škody (mimo jiné včetně škod ušlého zisku, přerušení podnikání, ztráty obchodních informací nebo jiné peněžní ztráty) vyplývající z použití ukázkových skriptů nebo dokumentace nebo jejich neschopnosti. a to i v případě, že byla společnost Microsoft informována o možnosti takových škod.

Krok 1: Vytvoření souboru CSV obsahujícího informace o hledáních, která chcete spustit

Soubor hodnot oddělených čárkami (CSV), který vytvoříte v tomto kroku, obsahuje řádek pro každého uživatele, který chce hledat. Můžete prohledávat Exchange Online poštovní schránku uživatele (která zahrnuje archivační poštovní schránku, pokud je povolená) a jeho OneDrive pro firmy web. Nebo můžete prohledávat jenom poštovní schránku nebo OneDrive pro firmy web. Můžete také prohledávat libovolný web ve vaší organizaci SharePointu Online. Skript, který spustíte v kroku 3, vytvoří samostatné hledání pro každý řádek v souboru CSV.

  1. Zkopírujte a vložte následující text do souboru .txt pomocí Poznámkového bloku. Uložte tento soubor do složky v místním počítači. Do této složky uložíte i další skripty.

    ExchangeLocation,SharePointLocation,ContentMatchQuery,StartDate,EndDate
    sarad@contoso.onmicrosoft.com,https://contoso-my.sharepoint.com/personal/sarad_contoso_onmicrosoft_com,(lawsuit OR legal),1/1/2000,12/31/2005
    sarad@contoso.onmicrosoft.com,https://contoso-my.sharepoint.com/personal/sarad_contoso_onmicrosoft_com,(lawsuit OR legal),1/1/2006,12/31/2010
    sarad@contoso.onmicrosoft.com,https://contoso-my.sharepoint.com/personal/sarad_contoso_onmicrosoft_com,(lawsuit OR legal),1/1/2011,3/21/2016
    ,https://contoso.sharepoint.com/sites/contoso,,,3/21/2016
    ,https://contoso-my.sharepoint.com/personal/davidl_contoso_onmicrosoft_com,,1/1/2015,
    ,https://contoso-my.sharepoint.com/personal/janets_contoso_onmicrosoft_com,,1/1/2015,
    

    První řádek nebo řádek záhlaví souboru obsahuje seznam parametrů, které použije rutina New-ComplianceSearch (ve skriptu v kroku 3) k vytvoření nového vyhledávání obsahu. Každý název parametru je oddělený čárkou. Ujistěte se, že v řádku záhlaví nejsou žádné mezery. Každý řádek pod řádkem záhlaví představuje hodnoty parametrů pro každé hledání. Zástupná data v souboru CSV nahraďte skutečnými daty.

  2. Otevřete soubor .txt v Excelu a pak pomocí informací v následující tabulce upravte soubor s informacemi pro každé hledání.


Parametr Popis
ExchangeLocation Adresa SMTP poštovní schránky uživatele.
SharePointLocation Adresa URL OneDrive pro firmy webu uživatele nebo adresa URL libovolného webu ve vaší organizaci. Jako adresu URL pro OneDrive pro firmy weby použijte tento formát: https://<your organization>-my.sharepoint.com/personal/<user alias>_<your organization>_onmicrosoft_com. Například: https://contoso-my.sharepoint.com/personal/sarad_contoso_onmicrosoft_com.
ContentMatchQuery Vyhledávací dotaz pro hledání. Další informace o vytvoření vyhledávacího dotazu najdete v tématu Dotazy na klíčová slova a podmínky hledání pro vyhledávání obsahu.
StartDate U e-mailu je to datum, kdy nebo po přijetí zprávy příjemcem nebo odeslání odesílatelem. U dokumentů na SharePointu nebo OneDrive pro firmy webech datum poslední změny dokumentu nebo po jeho poslední změně.
EndDate U e-mailu je to datum, kdy nebo před odesláním zprávy odeslal uživatel. U dokumentů na SharePointu nebo OneDrive pro firmy webech je datum poslední změny dokumentu nebo před jeho poslední úpravou.
  1. Uložte excelový soubor jako soubor CSV do složky v místním počítači. Skript, který vytvoříte v kroku 3, použije informace v tomto souboru CSV k vytvoření hledání.

Krok 2: Připojení k PowerShellu pro dodržování předpisů zabezpečení &

Dalším krokem je připojení k PowerShellu dodržování předpisů zabezpečení & pro vaši organizaci. Podrobné pokyny najdete v tématu Připojení k PowerShellu pro dodržování předpisů zabezpečení&.

Krok 3: Spuštěním skriptu vytvořte a spusťte hledání.

Skript v tomto kroku vytvoří samostatné vyhledávání obsahu pro každý řádek v souboru CSV, který jste vytvořili v kroku 1. Při spuštění tohoto skriptu se zobrazí výzva k zadání dvou hodnot:

  • ID skupiny vyhledávání – tento název poskytuje snadný způsob, jak uspořádat hledání vytvořená ze souboru CSV. Každé vytvořené hledání má název s ID skupiny vyhledávání a pak se k názvu hledání připojí číslo. Pokud například jako ID skupiny vyhledávání zadáte ContosoCase , budou hledat pojmenovaná ContosoCase_1, ContosoCase_2, ContosoCase_3 atd. Všimněte si, že v názvu, který zadáte, se rozlišují velká a malá písmena. Pokud použijete ID skupiny vyhledávání v kroku 4 a kroku 5, musíte použít stejný případ jako při jeho vytvoření.

  • Soubor CSV – název souboru CSV, který jste vytvořili v kroku 1. Nezapomeňte použít úplný název souboru, zahrnout .csv příponu souboru; například ContosoCase.csv.

Spuštění skriptu:

  1. Následující text uložte do souboru skriptu Windows PowerShell pomocí přípony souboru .ps1, například CreateSearches.ps1. Uložte soubor do stejné složky, do které jste uložili ostatní soubory.

    # Get the Search Group ID and the location of the CSV input file
    $searchGroup = Read-Host 'Search Group ID'
    $csvFile = Read-Host 'Source CSV file'
    
    # Do a quick check to make sure our group name will not collide with other searches
    $searchCounter = 1
    import-csv $csvFile |
      ForEach-Object{
    
     $searchName = $searchGroup +'_' + $searchCounter
     $search = Get-ComplianceSearch $searchName -EA SilentlyContinue
     if ($search)
     {
        Write-Error "The Search Group ID conflicts with existing searches.  Please choose a search group name and restart the script."
        return
     }
     $searchCounter++
    }
    
    $searchCounter = 1
    import-csv $csvFile |
      ForEach-Object{
    
     # Create the query
     $query = $_.ContentMatchQuery
     if(($_.StartDate -or $_.EndDate))
     {
           # Add the appropriate date restrictions.  NOTE: Using the Date condition property here because it works across Exchange, SharePoint, and OneDrive for Business.
           # For Exchange, the Date condition property maps to the Sent and Received dates; for SharePoint and OneDrive for Business, it maps to Created and Modified dates.
           if($query)
           {
               $query += " AND"
           }
           $query += " ("
           if($_.StartDate)
           {
               $query += "Date >= " + $_.StartDate
           }
           if($_.EndDate)
           {
               if($_.StartDate)
               {
                   $query += " AND "
               }
               $query += "Date <= " + $_.EndDate
           }
           $query += ")"
     }
    
      # -ExchangeLocation can't be set to an empty string, set to null if there's no location.
      $exchangeLocation = $null
      if ( $_.ExchangeLocation)
      {
            $exchangeLocation = $_.ExchangeLocation
      }
    
     # Create and run the search
     $searchName = $searchGroup +'_' + $searchCounter
     Write-Host "Creating and running search: " $searchName -NoNewline
     $search = New-ComplianceSearch -Name $searchName -ExchangeLocation $exchangeLocation -SharePointLocation $_.SharePointLocation -ContentMatchQuery $query
    
     # Start and wait for each search to complete
     Start-ComplianceSearch $search.Name
     while ((Get-ComplianceSearch $search.Name).Status -ne "Completed")
     {
        Write-Host " ." -NoNewline
        Start-Sleep -s 3
     }
     Write-Host ""
    
     $searchCounter++
    }
    
  2. V Windows PowerShell přejděte do složky, do které jste skript uložili v předchozím kroku, a spusťte skript. Například:

    .\CreateSearches.ps1
    
  3. Na příkazovém řádku Hledat ID skupiny zadejte název skupiny hledání a stiskněte klávesu Enter. například ContosoCase. Nezapomeňte, že v tomto názvu se rozlišují velká a malá písmena, takže ho budete muset zadat stejným způsobem v dalších krocích.

  4. Na příkazovém řádku Zdrojového souboru CSV zadejte název souboru CSV, včetně přípony souboru .csv; například ContosoCase.csv.

  5. Stisknutím klávesy Enter pokračujte ve spuštění skriptu.

    Skript zobrazí průběh vytváření a spouštění hledání. Po dokončení se skript vrátí do příkazového řádku.

    Ukázkový výstup ze spuštění skriptu pro vytvoření více hledání dodržování předpisů

Krok 4: Spuštěním skriptu nahlásíte odhady hledání.

Po vytvoření hledání je dalším krokem spuštění skriptu, který zobrazí jednoduchou sestavu počtu hledání pro každé hledání vytvořené v kroku 3. Sestava také obsahuje velikost výsledků pro každé hledání a celkový počet přístupů a celkovou velikost všech hledání. Když spustíte skript pro vytváření sestav, zobrazí se výzva k zadání ID skupiny vyhledávání a názvu souboru CSV, pokud chcete sestavu uložit do souboru CSV.

  1. Následující text uložte do souboru skriptu Windows PowerShell pomocí přípony souboru .ps1, například SearchReport.ps1. Uložte soubor do stejné složky, do které jste uložili ostatní soubory.

    $searchGroup = Read-Host 'Search Group ID'
    $outputFile = Read-Host 'Enter a file name or file path to save the report to a .csv file. Leave blank to only display the report'
    $searches = Get-ComplianceSearch | ?{$_.Name -clike $searchGroup + "_*"}
    $allSearchStats = @()
    foreach ($partialObj in $searches)
    {
       $search = Get-ComplianceSearch $partialObj.Name
       $sizeMB = [System.Math]::Round($search.Size / 1MB, 2)
       $searchStatus = $search.Status
       if($search.Errors)
       {
           $searchStatus = "Failed"
       }elseif($search.NumFailedSources -gt 0)
       {
           $searchStatus = "Failed Sources"
       }
       $searchStats = New-Object PSObject
       Add-Member -InputObject $searchStats -MemberType NoteProperty -Name Name -Value $search.Name
       Add-Member -InputObject $searchStats -MemberType NoteProperty -Name ContentMatchQuery -Value $search.ContentMatchQuery
       Add-Member -InputObject $searchStats -MemberType NoteProperty -Name Status -Value $searchStatus
       Add-Member -InputObject $searchStats -MemberType NoteProperty -Name Items -Value $search.Items
       Add-Member -InputObject $searchStats -MemberType NoteProperty -Name "Size" -Value $search.Size
       Add-Member -InputObject $searchStats -MemberType NoteProperty -Name "Size(MB)" -Value $sizeMB
       $allSearchStats += $searchStats
    }
    # Calculate the totals
    $allItems = ($allSearchStats | Measure-Object Items -Sum).Sum
    # Convert the total size to MB and round to the nearst 100th
    $allSize = ($allSearchStats | Measure-Object 'Size' -Sum).Sum
    $allSizeMB = [System.Math]::Round($allSize  / 1MB, 2)
    # Get the total successful searches and total of all searches
    $allSuccessCount = ($allSearchStats |?{$_.Status -eq "Completed"}).Count
    $allCount = $allSearchStats.Count
    $allStatus = [string]$allSuccessCount + " of " + [string]$allCount
    # Totals Row
    $totalSearchStats = New-Object PSObject
    Add-Member -InputObject $totalSearchStats -MemberType NoteProperty -Name Name -Value "Total"
    Add-Member -InputObject $totalSearchStats -MemberType NoteProperty -Name Status -Value $allStatus
    Add-Member -InputObject $totalSearchStats -MemberType NoteProperty -Name Items -Value $allItems
    Add-Member -InputObject $totalSearchStats -MemberType NoteProperty -Name "Size(MB)" -Value $allSizeMB
    $allSearchStats += $totalSearchStats
    # Just get the columns we're interested in showing
    $allSearchStatsPrime = $allSearchStats | Select-Object Name, Status, Items, "Size(MB)", ContentMatchQuery
    # Print the results to the screen
    $allSearchStatsPrime |ft -AutoSize -Wrap
    # Save the results to a CSV file
    if ($outputFile)
    {
       $allSearchStatsPrime | Export-Csv -Path $outputFile -NoTypeInformation
    }
    
  2. V Windows PowerShell přejděte do složky, do které jste skript uložili v předchozím kroku, a spusťte skript. Například:

    .\SearchReport.ps1
    
  3. Na příkazovém řádku Hledat ID skupiny zadejte název skupiny hledání a stiskněte klávesu Enter. například ContosoCase. Mějte na paměti, že v tomto názvu se rozlišují malá a velká písmena, takže ho budete muset zadat stejným způsobem jako při spuštění skriptu v kroku 3.

  4. Pokud chcete sestavu uložit do souboru CSV, zadejte na příkazovém řádku Cesta k souboru pro uložení sestavy do souboru CSV (ponechte prázdné, aby se sestava zobrazila) název souboru s úplnou cestou k souboru (včetně .csv přípony souboru). název souboru CSV včetně přípony souboru .csv. Můžete například zadat ContosoCaseReport.csv a uložit ho do aktuálního adresáře nebo C:\Users\admin\OneDrive for Business\ContosoCase\ContosoCaseReport.csv ho uložit do jiné složky. Můžete také nechat výzvu prázdnou, aby se sestava zobrazila, ale neuložte ji do souboru.

  5. Stiskněte Enter.

    Skript zobrazí průběh vytváření a spouštění hledání. Po dokončení skriptu se zobrazí sestava.

    Spuštěním sestavy vyhledávání zobrazte odhady pro hledanou skupinu.

Poznámka

Pokud je stejná poštovní schránka nebo web zadána jako umístění obsahu ve více než jednom hledání ve skupině hledání, odhad celkových výsledků v sestavě (pro počet položek i celkovou velikost) může obsahovat výsledky pro stejné položky. Je to proto, že se stejná e-mailová zpráva nebo dokument počítají vícekrát, pokud odpovídá dotazu pro různá hledání ve skupině hledání.

Krok 5: Spuštěním skriptu odstraňte hledání

Vzhledem k tomu, že možná vytváříte velké množství hledání, tento poslední skript usnadňuje rychlé odstranění hledání, která jste vytvořili v kroku 3. Stejně jako ostatní skripty vás i tento skript vyzve k zadání ID skupiny vyhledávání. Všechna hledání s ID skupiny vyhledávání v názvu hledání budou při spuštění tohoto skriptu odstraněna.

  1. Následující text uložte do souboru skriptu Windows PowerShell pomocí přípony souboru .ps1, například DeleteSearches.ps1. Uložte soubor do stejné složky, do které jste uložili ostatní soubory.

    # Delete all searches in a search group
    $searchGroup = Read-Host 'Search Group ID'
    Get-ComplianceSearch |
       ForEach-Object{
       # If the name matches the search group name pattern (case sensitive), delete the search
       if ($_.Name -cmatch $searchGroup + "_\d+")
       {
           Write-Host "Deleting search: " $_.Name
           Remove-ComplianceSearch $_.Name -Confirm:$false
       }
    }
    
  2. V Windows PowerShell přejděte do složky, do které jste skript uložili v předchozím kroku, a spusťte skript. Například:

    .\DeleteSearches.ps1
    
  3. Na příkazovém řádku Prohledat ID skupiny zadejte název vyhledávací skupiny pro hledání, která chcete odstranit, a stiskněte klávesu Enter; například ContosoCase. Mějte na paměti, že v tomto názvu se rozlišují malá a velká písmena, takže ho budete muset zadat stejným způsobem jako při spuštění skriptu v kroku 3.

    Skript zobrazí název každého odstraněného hledání.

    Spuštěním skriptu odstraňte hledání ve skupině hledání.