使用內容搜尋搜尋商務使用者清單的網站信箱 」 和 「 OneDrive

重要:  本文係由機器翻譯而成,請參閱免責聲明。本文的英文版本請見這裡,以供參考。

Office 365 安全性與合規性中心提供Windows PowerShell cmdlet 可讓您自動化耗時 eDiscovery 相關的工作。目前,若要搜尋大量 okay 內容位置安全性與合規性中心中建立內容搜尋需要的時間和準備。 建立搜尋之前,必須收集每個商務用 OneDrive網站的 URL,然後將每個信箱 」 和 「 商務用 OneDrive網站新增至搜尋]。在未來的版本類似,這是在安全性與合規性中心中執行的工作變得更容易。之前,您可以使用本文中的指令碼來自動化此程序。這個指令碼會提示您組織的我的網站網域 (例如contoso中 URL https://contoso-my.sharepoint.com) 的名稱、 使用者電子郵件地址、 新的內容搜尋及搜尋查詢,若要使用的名稱清單。 指令碼會在清單中,每位使用者取得商務用 OneDrive URL,然後會建立並啟動內容搜尋,以搜尋為每位使用者的信箱及商務用 OneDrive網站在清單中,使用所提供的搜尋查詢。

以下是完成這項工作的步驟︰

步驟 1︰ 安裝 SharePoint Online 管理命令介面

步驟 2︰ 產生使用者的清單

步驟 3︰ 執行指令碼來建立並開始搜尋

開始之前

  • 您必須是安全性與合規性中心和SharePoint Online全域管理員才能執行指令碼在步驟 3 中的 eDiscovery 管理員角色群組成員。

  • 請務必儲存您在步驟 2] 及 [在步驟 3 中的指令碼的相同資料夾中建立的使用者清單。會使執行指令碼更加容易。

  • 指令碼包含最小的錯誤處理。它的主要目的是快速且輕鬆地搜尋的每位使用者的信箱 」 和 「 商務用 OneDrive網站。

  • 在任何 Microsoft 標準支援程式或服務下,不支援本主題提供的指令碼。範例指令碼係依「現狀」提供,不附帶任何明示或默示的擔保。Microsoft 另外不承擔任何明示或默示的擔保,包括但不限於適售性或適合某特定用途的默示擔保。使用或操作範例指令碼和文件發生的所有風險皆屬於您的責任。Microsoft、其作者以及其他與建置、生產或交付程式碼相關的任何人在任何情況下皆完全不需對任何損失負責任,包括但不限於商業利潤損失、業務中斷、業務資訊損失、或其他錢財損失等因使用或無法使用範例指令碼所發生的損失,即使 Microsoft 曾建議這些損失發生的可能性。

步驟 1︰ 安裝SharePoint Online管理命令介面

第一步是安裝SharePoint Online管理命令介面。您沒有使用命令介面此程序,但您必須安裝,因為它包含您在步驟 3 中執行的指令碼所需的必要條件。下列先決條件允許的指令碼進行通訊的SharePoint Online取得商務用 OneDrive網站的 Url。

移至 [設定 SharePoint Online 管理命令介面 Windows PowerShell 環境 ,並執行步驟 1 和步驟 2,安裝SharePoint Online管理命令介面。

回到頁首

步驟 2︰ 產生使用者的清單

步驟 3 中的指令碼會建立內容搜尋来搜尋的信箱及商務用 OneDrive網站的使用者清單。您只可以文字檔案],輸入電子郵件地址,或您可以在Windows PowerShell取得電子郵件地址的清單,並將其儲存至檔案] (位於相同的資料夾,您會在步驟 3 中儲存的指令碼) 到執行命令。

以下是Windows PowerShell (您執行命令使用遠端 PowerShell 連線到Exchange Online組織) 取得貴組織中的所有使用者的電子郵件地址清單,並將其儲存至文字檔案命名 Users.txt。

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

執行此命令之後,請務必開啟檔案,並移除包含屬性名稱, PrimarySmtpAddress的標題。電子郵件地址清單及其他不只包含的文字檔案。請確定沒有空白資料列之前或之後的電子郵件地址清單。

回到頁首

步驟 3︰ 執行指令碼來建立並開始搜尋

當您執行此步驟中的指令碼時,它會提示您輸入下列資訊。請務必執行指令碼做好準備好這項資訊。

  • 您的使用者認證 指令碼會使用您的認證以存取SharePoint Online ,取得商務用 OneDrive Url,並連線到安全性與合規性中心與遠端 PowerShell。

  • 我的網站網域的名稱 我的網站的網域是包含您組織中的所有商務用 OneDrive網站的網域。例如,如果您我的網站的網域的 URL 是https://contoso-my.sharepoint.com,那麼您可以輸入contoso時指令碼會提示您輸入我的網站網域的名稱。

  • 步驟 2 中的文字檔案的路徑 您在步驟 2 中建立文字檔案的路徑名稱。如果文字檔案和指令碼位於相同的資料夾,然後輸入文字檔案的名稱。否則,請輸入的文字檔案的完整路徑名稱。

  • 內容搜尋的名稱  將會建立指令碼內容搜尋名稱。

  • 搜尋查詢  建立並執行搜尋查詢的使用內容搜尋。如需有關搜尋查詢的詳細資訊,請參閱關鍵字查詢和內容搜尋的搜尋條件

  1. 使用檔案名稱的尾碼.ps1; 將下列文字儲存至Windows PowerShell指令碼檔例如,SearchEXOOD4B.ps1。將檔案儲存到相同的資料夾,您在步驟 2 中儲存的使用者清單的位置。

    # This PowerShell script will prompt you for the following information:
    #    * Your user credentials 
    #    * The name of your organization's MySite domain                                              
    #    * The pathname for the text file that contains a list of user email addresses
    #    * The name of the Content Search that will be created
    #    * The search query string
    # The script will then:
    #    * Find the OneDrive for Business site for each user in the text file
    #    * Create and start a Content Search using the above information
    
    
    # Get user credentials
    if (!$credentials)
    {
        $credentials = Get-Credential
    }
    
    # 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 "What is your organization's MySite domain?  For example,  'contoso' for 'https://contoso-my.sharepoint.com'"
    $AdminUrl = "https://$mySiteDomain-admin.sharepoint.com"
    $mySiteUrlRoot = "https://$mySiteDomain-my.sharepoint.com"
    
    # Get other required information
    $inputfile = read-host "Enter the file name of the text file that contains the email addresses for the users you want to search"
    $searchName = Read-Host "Enter the name for the new search"
    $searchQuery = Read-Host "Enter the search query you want to use"
    $emailAddresses = Get-Content $inputfile | where {$_ -ne ""}  | foreach{ $_.Trim() }
    
    # Connect to Office 365
    if (!$s -or !$a)
    {
        $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 "Could not 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 "SharePoint Online Management Shell isn't installed, please install from: http://go.microsoft.com/fwlink/p/?LinkId=255251 and then run this script again"
            return;
        }
    }
    
    if (!$spCreds)
    {
        $spCreds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($credentials.UserName, $credentials.Password)
    }
    
    # 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
    
    Write-Host "Getting each user's OneDrive for Business URL"
    $urls = @()
    foreach($emailAddress in $emailAddresses)
    {
        try
        {
            $prop = $UserProfileService.GetUserProfileByName("i:0#.f|membership|$emailAddress") | Where-Object { $_.Name -eq "PersonalSpace" } 
            $url = $prop.values[0].value
            $furl = $mySiteUrlRoot + $url
            $urls += $furl
            Write-Host "-$emailAddress => $furl"
        }
        catch
        {
            Write-Warning "Could not locate OneDrive for $emailAddress"
        }
    }
    
    Write-Host "Creating and starting the search"
    $search = New-ComplianceSearch -Name $searchName -ExchangeLocation $emailAddresses -SharePointLocation $urls -ContentMatchQuery $searchQuery
    
    # Finally, start the search and then display the status
    if($search)
    {
        Start-ComplianceSearch $search.Name
        Get-ComplianceSearch $search.Name
    }
    
  2. 開啟Windows PowerShell ,然後移至資料夾位置從步驟 2 儲存的指令碼和使用者清單。

  3. 啟動指令碼。例如︰

    .\SearchEXOOD4B.ps1
  4. 出現提示時輸入您的認證,輸入您的電子郵件地址和密碼,,然後按一下[確定]

  5. 輸入下列資訊的指令碼出現提示時。輸入每一段的資訊,然後按enter 鍵

    • 我的網站網域的名稱。

    • 包含的使用者清單的文字檔案的路徑名稱。

    • [內容] 搜尋名稱。

    • 搜尋查詢 (離開此空白傳回內容的位置中的所有項目)。

    指令碼取得每個商務用 OneDrive網站的 Url,然後建立並啟動搜尋]。您可以執行取得 ComplianceSearch cmdlet,以顯示搜尋統計資料和結果,或您可以移至內容搜尋網頁中安全性與合規性中心檢視搜尋的相關資訊。

回到頁首

附註: 機器翻譯免責聲明︰本文係以電腦系統翻譯而成,未經人為介入。Microsoft 提供此等機器翻譯旨在協助非英語系使用者輕鬆閱讀 Microsoft 產品、服務及技術相關內容。基於本文乃由機器翻譯而成,因此文中可能出現詞辭、語法、文法上之錯誤。

擴展您的技能
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×