Több tartalomkeresés létrehozása, jelentése és törlése

A felderítési keresések gyors létrehozása és jelentése gyakran fontos lépés az elektronikus feltárásban és a vizsgálatokban, amikor a mögöttes adatokról, valamint a keresések gazdagságáról és minőségéről próbál tájékozódni. Ennek érdekében a Security & Compliance PowerShell parancsmagokat kínál az időigényes tartalomkeresési feladatok automatizálásához. Ezek a szkriptek gyors és egyszerű módot kínálnak számos keresés létrehozására, majd jelentéseket futtatnak a becsült keresési eredményekről, amelyek segíthetnek meghatározni a kérdéses adatok mennyiségét. A szkriptek használatával a keresések különböző verzióit is létrehozhatja, hogy összehasonlítsa az egyes találatokat. Ezek a szkriptek segítenek az adatok gyors és hatékony azonosításában és selejtezésében.

Tipp

Ha Ön nem E5-ügyfél, ingyenesen kipróbálhatja a Microsoft Purview összes prémium funkcióját. A 90 napos Purview-megoldások próbaverziójának használatával megtudhatja, hogy a Purview-funkciók milyen hatékonyak a szervezet számára az adatbiztonsági és megfelelőségi igények kezeléséhez. Kezdje most a Microsoft Purview megfelelőségi portál próbaverziós központban. További információ a regisztrációról és a próbaverzió feltételeiről.

  • A jelen témakörben ismertetett szkriptek futtatásához az adatfeltárás-kezelő szerepkörcsoport tagjának kell lennie a Microsoft Purview megfelelőségi portál.
  • Az 1. lépésben a CSV-fájlhoz hozzáadható OneDrive Vállalati verzió webhelyek URL-címeinek gyűjtéséhez lásd: A szervezet összes OneDrive-helyének listájának létrehozása.
  • Ügyeljen arra, hogy az ebben a témakörben létrehozott összes fájlt ugyanabba a mappába mentse. Ez megkönnyíti a szkriptek futtatását.
  • A szkriptek minimális hibakezelést tartalmaznak. Elsődleges célja több tartalomkeresés gyors létrehozása, jelentése és törlése.
  • Az ebben a témakörben szereplő példaszkripteket a Microsoft egyik standard támogatási programja vagy szolgáltatása sem támogatja. A mintaszkripteket az AS IS biztosítja, bármiféle garancia nélkül. A Microsoft továbbá kizár minden vélelmezett garanciát, beleértve korlátozás nélkül az eladhatóságra vagy az adott célra való alkalmasságra vonatkozó vélelmezett garanciát. A mintaszkriptek és a dokumentáció használatából vagy teljesítményéből eredő teljes kockázat Önnél marad. A Microsoft, annak szerzői vagy bárki más, aki részt vesz a parancsfájlok létrehozásában, gyártásában vagy kézbesítésében, semmilyen esetben sem tehető felelőssé a mintaszkriptek vagy dokumentáció használatából vagy használatából eredő károkért (beleértve korlátozás nélkül az üzleti nyereség elvesztéséből, az üzletmenet megszakadásából, az üzleti adatok elvesztéséből vagy egyéb pénzveszteségből eredő károkat), akkor is, ha a Microsoftot értesítették az ilyen károk lehetőségéről.

1. lépés: A futtatni kívánt keresésekre vonatkozó információkat tartalmazó CSV-fájl létrehozása

Az ebben a lépésben létrehozott vesszővel tagolt értékfájl (CSV) minden keresendő felhasználó számára tartalmaz egy sort. Kereshet a felhasználó Exchange Online postaládájában (amely tartalmazza az archív postaládát, ha engedélyezve van) és a OneDrive Vállalati verzió webhelyén. Vagy kereshet csak a postaládában vagy a OneDrive Vállalati verzió webhelyen. A SharePoint Online-szervezet bármely webhelyén kereshet. A 3. lépésben futtatott szkript külön keresést hoz létre a CSV-fájl minden sorához.

  1. Másolja és illessze be az alábbi szöveget egy .txt fájlba a Jegyzettömb használatával. Mentse a fájlt a helyi számítógép egyik mappájába. A többi szkriptet is ebbe a mappába fogja menteni.

    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,
    

    A fájl első sora vagy fejlécsora felsorolja azokat a paramétereket, amelyeket a New-ComplianceSearch parancsmag fog használni (a 3. lépés szkriptjében) egy új tartalomkeresés létrehozásához. Minden paraméternév vesszővel van elválasztva. Győződjön meg arról, hogy a fejlécsorban nincsenek szóközök. A fejlécsor alatti sorok az egyes keresések paraméterértékét jelölik. Ügyeljen arra, hogy a CSV-fájl helyőrző adatait cserélje le a tényleges adatokra.

  2. Nyissa meg a .txt fájlt az Excelben, majd az alábbi táblázatban található információk alapján szerkessze a fájlt az egyes keresések adataival.


Paraméter Leírás
ExchangeLocation A felhasználó postaládájának SMTP-címe.
SharePointLocation A felhasználó OneDrive Vállalati verzió webhelyének URL-címe vagy a szervezet bármely webhelyének URL-címe. A OneDrive Vállalati verzió webhelyek URL-címe a következő formátumban jelenik meg: https://<your organization>-my.sharepoint.com/personal/<user alias>_<your organization>_onmicrosoft_com. Használja például a https://contoso-my.sharepoint.com/personal/sarad_contoso_onmicrosoft_com címet.
ContentMatchQuery A keresés keresési lekérdezése. A keresési lekérdezések létrehozásával kapcsolatos további információkért lásd: Kulcsszóalapú lekérdezések és keresési feltételek a tartalomkereséshez.
StartDate E-mail esetén a címzett vagy a feladó által küldött üzenet beérkezésének vagy elküldésének dátuma. SharePoint- vagy OneDrive Vállalati verzió-webhelyeken lévő dokumentumok esetében a dokumentum utolsó módosításának dátuma vagy utáni dátum.
EndDate E-mail esetén a felhasználó által küldött üzenet elküldésének dátuma vagy előtti dátum. SharePoint- vagy OneDrive Vállalati verzió-webhelyeken lévő dokumentumok esetében a dokumentum utolsó módosításának dátuma vagy előtti dátum.
  1. Mentse az Excel-fájlt CSV-fájlként a helyi számítógép egyik mappájába. A 3. lépésben létrehozott szkript a CSV-fájlban található információkat fogja használni a keresések létrehozásához.

2. lépés: Csatlakozás a Biztonsági & megfelelőség PowerShell-lel

A következő lépés a szervezet biztonsági & megfelelőségi PowerShell-lel való csatlakozása. Részletes útmutatásért lásd: Csatlakozás a biztonsági & megfelelőséghez PowerShell.

3. lépés: Futtassa a szkriptet a keresések létrehozásához és elindításához

Ebben a lépésben a szkript külön Tartalomkeresést hoz létre az 1. lépésben létrehozott CSV-fájl minden sorához. A szkript futtatásakor a rendszer két értéket fog kérni:

  • Keresési csoport azonosítója – Ez a név egyszerű módot kínál a CSV-fájlból létrehozott keresések rendszerezésére. Minden létrehozott keresés neve a Keresési csoport azonosítója, majd egy szám lesz hozzáfűzve a keresési névhez. Ha például a ContosoCase nevet adja meg a keresési csoport azonosítójának, akkor a keresések neve ContosoCase_1, ContosoCase_2, ContosoCase_3 stb. Vegye figyelembe, hogy a beírt név megkülönbözteti a kis- és nagybetűt. Ha a 4. és az 5. lépésben a keresési csoport azonosítóját használja, ugyanazt az esetet kell használnia, mint a létrehozásakor.

  • CSV-fájl – Az 1. lépésben létrehozott CSV-fájl neve. Ügyeljen arra, hogy a teljes fájlnevet használja, a .csv fájlkiterjesztést is; például: ContosoCase.csv.

A szkript futtatása:

  1. Mentse a következő szöveget egy Windows PowerShell szkriptfájlba a .ps1 fájlnév-utótagjának használatával, CreateSearches.ps1például: . Mentse a fájlt ugyanabba a mappába, ahová a többi fájlt mentette.

    # 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. A Windows PowerShell lépjen arra a mappára, ahová az előző lépésben mentette a szkriptet, majd futtassa a szkriptet, például:

    .\CreateSearches.ps1
    
  3. A Keresési csoport azonosítója parancssorba írja be a keresési csoport nevét, majd nyomja le az Enter billentyűt; például: ContosoCase. Ne feledje, hogy ez a név megkülönbözteti a kis- és nagybetűk különbségét, ezért a következő lépésekben is ugyanúgy kell beírnia.

  4. A Forrás CSV-fájl parancssorba írja be a CSV-fájl nevét, beleértve a .csv fájlkiterjesztést is; például: ContosoCase.csv.

  5. Nyomja le az Enter billentyűt a szkript futtatásának folytatásához.

    A szkript megjeleníti a keresések létrehozásának és futtatásának folyamatát. Amikor a szkript befejeződött, visszatér a parancssorba.

    Mintakimenet a szkript futtatásából több megfelelőségi keresés létrehozásához.

4. lépés: Futtassa a szkriptet a keresési becslések jelentéséhez

A keresések létrehozása után a következő lépés egy szkript futtatása, amely egy egyszerű jelentést jelenít meg a 3. lépésben létrehozott keresések találatainak számáról. A jelentés az egyes keresések találatainak méretét, valamint a találatok teljes számát és az összes keresés teljes méretét is tartalmazza. A jelentéskészítési szkript futtatásakor a rendszer kérni fogja a keresési csoport azonosítóját és egy CSV-fájlnevet, ha a jelentést EGY CSV-fájlba szeretné menteni.

  1. Mentse a következő szöveget egy Windows PowerShell szkriptfájlba a .ps1 fájlnév-utótagjának használatával, SearchReport.ps1például: . Mentse a fájlt ugyanabba a mappába, ahová a többi fájlt mentette.

    $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. A Windows PowerShell lépjen arra a mappára, ahová az előző lépésben mentette a szkriptet, majd futtassa a szkriptet, például:

    .\SearchReport.ps1
    
  3. A Keresési csoport azonosítója parancssorba írja be a keresési csoport nevét, majd nyomja le az Enter billentyűt; például ContosoCase: . Ne feledje, hogy ez a név megkülönbözteti a kis- és nagybetűk különbségét, ezért ugyanúgy kell beírnia, mint amikor a 3. lépésben futtatta a szkriptet.

  4. Ha a jelentést CSV-fájlba szeretné menteni (a jelentés megjelenítéséhez hagyja üresen), írja be a teljes fájlnév elérési útját (beleértve a .csv fájlkiterjesztést is), ha CSV-fájlba szeretné menteni a jelentést. A CSV-fájl neve, beleértve a .csv fájlkiterjesztést. Beírhatja ContosoCaseReport.csv például, hogy az aktuális könyvtárba mentse, vagy másik C:\Users\admin\OneDrive for Business\ContosoCase\ContosoCaseReport.csv mappába mentheti. Azt is megteheti, hogy üresen hagyja a kérdést a jelentés megjelenítéséhez, de nem menti fájlba.

  5. Nyomja le az Enter billentyűt.

    A szkript megjeleníti a keresések létrehozásának és futtatásának folyamatát. Amikor a szkript elkészült, megjelenik a jelentés.

    Futtassa a keresési jelentést a keresési csoport becsléseinek megjelenítéséhez.

Megjegyzés:

Ha ugyanaz a postaláda vagy webhely tartalomhelyként van megadva egy keresési csoportban több keresésben, a jelentésben szereplő összes eredmény becslése (az elemek számára és a teljes méretre vonatkozóan) ugyanazon elemekre vonatkozó találatokat is tartalmazhat. Ennek az az oka, hogy ugyanazt az e-mailt vagy dokumentumot többször is megszámolja a rendszer, ha az megfelel a keresési csoport különböző kereséseinek lekérdezésének.

5. lépés: Futtassa a szkriptet a keresések törléséhez

Mivel lehet, hogy sok keresést hoz létre, ez az utolsó szkript megkönnyíti a 3. lépésben létrehozott keresések gyors törlését. A többi szkripthez hasonlóan ez is kéri a keresési csoport azonosítóját. A szkript futtatásakor a keresési csoport azonosítójával rendelkező összes keresés törlődik.

  1. Mentse a következő szöveget egy Windows PowerShell szkriptfájlba a .ps1 fájlnév-utótagjának használatával, DeleteSearches.ps1például: . Mentse a fájlt ugyanabba a mappába, ahová a többi fájlt mentette.

    # 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. A Windows PowerShell lépjen arra a mappára, ahová az előző lépésben mentette a szkriptet, majd futtassa a szkriptet, például:

    .\DeleteSearches.ps1
    
  3. A Keresési csoport azonosítója parancssorba írja be a törölni kívánt keresések keresési csoportnevét, majd nyomja le az Enter billentyűt; például: ContosoCase. Ne feledje, hogy ez a név megkülönbözteti a kis- és nagybetűk különbségét, ezért ugyanúgy kell beírnia, mint amikor a 3. lépésben futtatta a szkriptet.

    A szkript megjeleníti a törölt keresések nevét.

    Futtassa a szkriptet a keresési csoportbeli keresések törléséhez.