將 eDiscovery 權限指派至 OneDrive for Business 網站

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

You can use the eDiscovery Center in SharePoint Online to search all 商務用 OneDrive sites in your organization for certain keywords, sensitive information, and other search criteria. Each user in your organization is the owner of their 商務用 OneDrive site, which is located in the site collection named https://domain-my.sharepoint.com. By default, an Office 365 global administrator or compliance manager can’t use the eDiscovery Center in SharePoint Online to search any 商務用 OneDrive sites. To search a 商務用 OneDrive site, administrators or compliance managers must be a site collection administrator for that 商務用 OneDrive site.

本主題引導您如何將管理員或法務經理設為貴組織中每個 商務用 OneDrive 網站的網站集合管理員。

Step 1: Connect SharePointOnline Management Shell to your organization

Step 2: Collect a list of all OneDrive for Business sites

Step 3: Assign a user as a site collection administrator to OneDrive for Business sites

See the More information section at the end of this topic for tips about using these scripts, including revising the script in Step 3 to remove a user as a site collection administrator from 商務用 OneDrive sites.

開始之前

  • Install the SharePoint Online Management Shell. For information, see Set up the SharePoint Online Management Shell Windows PowerShell environment.

  • 每次您要指派使用者成為貴組織中任何 商務用 OneDrive 網站的網站集合管理員,請執行步驟 3 的指令碼。

    重要: 管理員或法務經理若身兼 商務用 OneDrive 網站的網站集合管理員,可以開啟使用者的 商務用 OneDrive 文件庫,並執行和擁有者相同的工作。請務必控制及監視貴組織中 商務用 OneDrive 網站的 eDiscovery 權限是指派給誰。

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

Step 1: Connect SharePoint Online Management Shell to your organization

  1. On your local computer, open the SharePoint Online Management Shell, and run the following command:

    $credentials = Get-Credential

    [Windows PowerShell 認證要求] 對話方塊中,輸入 Office 365 全域管理員帳戶的使用者名稱和密碼,然後按一下 [確定]

  2. Run the following command to connect the Shell to your SharePoint Online organization:

    Connect-SPOService -Url https://<your organization name>-admin.sharepoint.com –credential $credentials
  3. To verify that you are connected to your SharePoint Online organization, run the following command to get a list of all the sites in your organization:

    Get-SPOSite

Return to top

Step 2: Collect a list of all 商務用 OneDrive sites

在這個步驟中,您執行命令介面指令碼來建立貴組織中所有 商務用 OneDrive 網站的清單。此清單會儲存為文字檔。您在步驟 3 執行的指令碼會指派某個指定使用者成為此步驟建立之文字檔中列出的每個 商務用 OneDrive 網站的網站集合管理員。您可能想在編輯此檔案前先移除其中一些網站,然後再執行步驟 3 的指令碼。有關指派 eDiscovery 權限給一批使用者,請參閱本主題最後的 More information

  1. 儲存下列文字至文字檔。例如,您可以儲存至名為 GetOD4BSites.txt 的檔案中。

    # URL for your organization's SharePoint Online admin service
    $AdminURI = "https://<your organization name>-admin.sharepoint.com"
    
    # User account for an Office 365 global admin in your organization
    $AdminAccount = "<global admin account>"
    $AdminPass = "<password for global admin account>"
    
    # Where should we save the list of MySites?
    $LogFile = 'C:\Users\<youralias>\Desktop\ListOfMysites.txt'
    
    
    # Begin the process
    
    $loadInfo1 = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client")
    $loadInfo2 = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime")
    $loadInfo3 = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.UserProfiles")
    
    # Convert the Password to a secure string, then zero out the cleartext version ;)
    $sstr = ConvertTo-SecureString -string $AdminPass -AsPlainText –Force
    $AdminPass = ""
    
    # Take the AdminAccount and the AdminAccount password, and create a credential
    
    $creds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($AdminAccount, $sstr)
    
    
    # Add the path of the User Profile Service to the SharePoint Online admin URL, then create a new webservice proxy to access it
    $proxyaddr = "$AdminURI/_vti_bin/UserProfileService.asmx?wsdl"
    $UserProfileService= New-WebServiceProxy -Uri $proxyaddr -UseDefaultCredential False
    $UserProfileService.Credentials = $creds
    
    # Take care of auth cookies
    $strAuthCookie = $creds.GetAuthenticationCookie($AdminURI)
    $uri = New-Object System.Uri($AdminURI)
    $container = New-Object System.Net.CookieContainer
    $container.SetCookies($uri, $strAuthCookie)
    $UserProfileService.CookieContainer = $container
    
    # Grab the first User profile, at index -1
    $UserProfileResult = $UserProfileService.GetUserProfileByIndex(-1)
    
    Write-Host "Starting- This could take a while."
    
    $NumProfiles = $UserProfileService.GetUserProfileCount()
    $i = 1
    
    # As long as the next User profile is NOT the one we started with (at -1)...
    While ($UserProfileResult.NextValue -ne -1) 
    {
    Write-Host "Examining profile $i of $NumProfiles"
    
    # Look for the Personal Space object in the User Profile and pull it out
    # (PersonalSpace is the name of the path to a user's mysite)
    $Prop = $UserProfileResult.UserProfile | Where-Object { $_.Name -eq "PersonalSpace" } 
    $Url= $Prop.Values[0].Value
    
    # If "PersonalSpace" (which we've copied to $Url) exists, log it to our file...
    if ($Url) {
    $Url | Out-File $LogFile -Append -Force
    }
    
    # And now we check the next profile the same way...
    $UserProfileResult = $UserProfileService.GetUserProfileByIndex($UserProfileResult.NextValue)
    $i++
    }
    
    Write-Host "Done!"
  2. 編輯指令碼檔案一開始的下列幾個變數,使用貴組織的相關資訊。以下範例假定貴組織的名稱為 Contoso。請務必使用雙引號 (" ") 括住變數的值。

    • $AdminURI   This specifies the URI for your SharePoint Online admin service, for example, "https://contoso-admin.sharepoint.com".

    • $AdminAccount   這會指定您 Office 365 組織中的全域管理員帳戶,例如 "admin@contoso.onmicrosoft.com"

    • $AdminPass   這會指定 $AdminAccount 指定之帳戶的密碼,例如 "J$P1ter1"

    • $LogFile   這會指定建立之文字檔的完整路徑,檔案中包含貴組織中所有 商務用 OneDrive 網站的清單。例如,若要將此檔案儲存至桌面,請使用 'C:\Users\<youralias>\Desktop\ListOfMysites.txt'。請務必使用單引號 (' ') 括住此變數的值。請注意,指定的位置要與步驟 3 指令碼指定的位置相同。

  3. 變更檔名尾碼為 .ps1,將文字檔儲存為 PowerShell 指令碼檔案。例如,將 GetOD4BSites.txt 檔案儲存為 GetOD4BSites.ps1。

  4. In SharePoint Online Management Shell, go to the folder where the script that you created in the previous step is located, and then run the script, for example:

    .\GetOD4BSites.ps1

指令碼執行成功後,會在指令碼中 $LogFile 變數指定的位置建立文字檔。此檔案包含您的 SharePoint Online 組織中所有 商務用 OneDrive 網站的清單。以下文字為此檔案中網站清單格式的範例。如有必要,您可以移除檔案中的網站。

/personal/annb_contoso_onmicrosoft_com/
/personal/carolt_contoso_onmicrosoft_com/
/personal/esterv_contoso_onmicrosoft_com/
/personal/hollyh_contoso_onmicrosoft_com/
/personal/jeffl_contoso_onmicrosoft_com/
/personal/joeh_contoso_onmicrosoft_com/
/personal/kaia_contoso_onmicrosoft_com/

Return to top

Step 3: Assign a user as a site collection administrator to 商務用 OneDrive sites

下一步是執行另一個指令碼將指定的使用者指派為貴組織中每個 商務用 OneDrive 網站的網站集合管理員。此指令碼使用您在步驟 2 執行指令碼所建立的 商務用 OneDrive 網站清單。如前述,每次您要指派使用者為 商務用 OneDrive 網站的網站集合管理員時,就必須執行此指令碼。

  1. 儲存下列文字至文字檔。例如,您可以儲存至名為 OD4BAssignSCA.txt 的檔案。

    #Start logging, so if this script fails, you can look at the last successful change,
    # remove any OneDrive for Business paths that worked it from the input file, and then rerun the script.
    
    Start-Transcript
    
    # URL for your organization's SPO admin service
    $AdminURI = "https://<your organization name>-admin.sharepoint.com"
    
    # User account for an Office 365 global admin in your organization
    $AdminAccount = "<global admin account>"
    
    # Compliance manager to be made site collection admin on each MySite
    $eDiscoveryUser = "<eDiscovery user account>"
    
    # URL for your tenant's MySite domain
    $MySitePrefix = "https://<your organization name>-my.sharepoint.com"
    
    # Where should we read the list of MySites?
    # This file should contain partial MySite paths formatted as follows, one per line; for example
    # /personal/junminh_contoso_onmicrosoft_com/
    $MySiteListFile = 'C:\Users\<youralias>\Desktop\ListOfMysites.txt'
    
    # Begin by connecting to the service
    Connect-SPOService -Url $AdminURI -Credential $AdminAccount
    
    # Make a reader for our list of MySites
    $reader = [System.IO.File]::OpenText($MySiteListFile)
    
    try {
        for(;;) {
    # Read a line
            $line = $reader.ReadLine()
    
    # Stop if it doesn't exist
            if ($line -eq $null) { break }
    
            # Turn the line into a complete SharePoint site path by merging $MySitePrefix
    # Formatted like this: "https://contoso-my.sharepoint.com"
    # ...with each partial MySite path in the file, formatted like this:
    # "/personal/junminh_contoso_onmicrosoft_com/"
            $fullsitepath = "$MySitePrefix$line"
    Write-Host "Operating on $fullsitepath "
    
    # We need to remove the last "/" to work around an issue.
    # "/personal/junminh_contoso_onmicrosoft_com/"
    # becomes "/personal/junminh_contoso_onmicrosoft_com"
    $fullsitepath = $fullsitepath.trimend("/")
    
    # Make the specified eDiscovery user a site collection admin on the OneDrive for Business site
    Write-Host "Making $eDiscoveryUser a Site Collection Admin"
    Set-SPOUser -Site $fullsitepath -LoginName $eDiscoveryUser -IsSiteCollectionAdmin $true
    
        }
    }
    finally {
        $reader.Close()
    }
    
    Write-Host "Done!"
    Stop-Transcript
    Write-Host "Log written."
  2. 編輯指令碼檔案一開始的下列幾個變數,使用貴組織的相關資訊。以下範例假定貴組織的網域名稱為 contoso.onmicrosoft.com。請務必使用雙引號 (" ") 括住變數的值。

    • $AdminURIThis specifies the URI for your SharePoint Online admin service, for example, "https://contoso-admin.sharepoint.com".

    • $AdminAccountThis specifies a global administrator account in your Office 365 organization, for example, "admin@contoso.onmicrosoft.com".

    • $eDiscoveryUserThis specifies the user account of an administrator or compliance manager who will be assigned as a site collection administrator for every 商務用 OneDrive site in your organization, for example, "annb@contoso.onmicrosoft.com".

      附註: 變更由 $eDiscoveryUser 變數指定的使用者帳戶,然後再度執行指令碼以指派其他使用者為 $MySiteListFile 變數指定的 商務用 OneDrive 網站的網站集合管理員。

    • $MySitePrefixThis specifies the URL for your organization’s MySite domain. This is the domain that contains all the 商務用 OneDrive sites in your organization, for example, "https://contoso-my.sharepoint.com".

    • $MySiteListFileThis specifies the full path of the text file that was created in Step 2. This file contains a list of 商務用 OneDrive sites in your organization, for example, 'C:\Users\<youralias>\Desktop\ListOfMysites.txt'. Be sure to surround the value for this variable with single-quotation marks (' '). Note that you should specify the same location as you did in the script that you ran in Step 2.

  3. 變更檔名尾碼為 .ps1,將文字檔儲存為 PowerShell 指令碼檔案。例如,儲存 OD4BAssignSCA.txt 檔案為 OD4BAssignSCA.ps1。

  4. In SharePoint Online Management Shell, go to the folder that contains the PowerShell script that you created in the previous step, and then run the script, for example:

    .\OD4BAssignSCA.ps1

    系統會提示您輸入您在指令碼中指定之管理員帳戶的密碼。如果指令碼執行成功,$MySiteListFile 指定之輸入檔案中列出的每個 商務用 OneDrive 網站,會顯示「正在將 <$eDiscoveryUser 指定的使用者>設為網站集合管理員」訊息。

Return to top

其他資訊

  • 您在步驟 3 執行的指令碼會使用 Set-SPOUser Cmdlet,將指定的使用者指派為 $MySiteListFile 變數指定之檔案中列出的每個 商務用 OneDrive 的網站集合管理員。如果您的組織為具有數千位使用者的龐大組織,請考慮以下做法讓 eDiscovery 權限的指派管理變得更容易。

    • 步驟 2 中指令碼建立的檔案包含 商務用 OneDrive 網站的清單,編輯此檔案使其僅包含作用中法律案件相關使用者的網站。

    • 一天內指派權限的 商務用 OneDrive 網站不超過 2,500 個。例如,假設貴組織中有 10,000 個 商務用 OneDrive 網站。您已在步驟 2 執行指令碼收集所有網站。然後您使用該檔案建立四個檔案,各包含 2,500 位使用者。第一天,您執行步驟 3 的指令碼指派權限給前 2,500 個 商務用 OneDrive 網站。第二天,您再為下 2,500 個 商務用 OneDrive 網站執行指令碼,依此類推。

  • 記錄已指派 eDiscovery 權限的 商務用 OneDrive 網站,以及已指派為網站集合管理員的使用者。例如,指派權限後,您可以儲存一個包含 商務用 OneDrive 網站清單的文字檔,並加入一行寫明哪位使用者被指派為網站集合管理員。

  • 使用者可以檢視其 商務用 OneDrive 網站的網站集合管理員清單。因為使用者是自己的 商務用 OneDrive 網站的網站集合管理員,所以他可以移除網站集合管理員。請考慮採取以下做法,以減少使用者將已獲 商務用 OneDrive 網站 eDiscovery 權限的使用者移除的機會。

    • 針對 eDiscovery 和遵循法規的目的與使用者溝通,您已指派法務人員為貴組織中 商務用 OneDrive 網站的網站集合管理員。

    • 如有必要,再次執行步驟 3 的指令碼,以重新指派使用者成為 商務用 OneDrive 網站的網站集合管理員。

  • 您也可以使用步驟 3 執行的指令碼,移除使用者身為 商務用 OneDrive 網站的網站集合管理員身分。若要移除使用者的網站集合管理員身分,必須將以下命令 (在接近指令碼末端的地方):

    Set-SPOUser -Site $fullsitepath -LoginName $eDiscoveryUser -IsSiteCollectionAdmin $true

    變更為:

    Set-SPOUser -Site $fullsitepath -LoginName $eDiscoveryUser -IsSiteCollectionAdmin $false

    您也可以將指令碼中的這一行:

    "Making $eDiscoveryUser a Site Collection Admin"

    變更為:

    "Removing $eDiscoveryUser as a Site Collection Admin"

    完成變更後,以其他名稱另存指令碼,如 OD4BRemoveSCA.ps1,然後使用新指令碼移除使用者身為數個 商務用 OneDrive 網站的網站集合管理員身分。

  • 當步驟 2 的指令碼執行時,會處理在貴組織中找到的每個設定檔,並顯示「正在檢查第 x 個,共 y 個」訊息。檢查的設定檔總數可能多於儲存至 ListOfMysites 輸出檔案的 商務用 OneDrive 網站數目。這是正常的,因為輸出檔案只會納入曾經使用及開啟其 商務用 OneDrive 網站的使用者。

Return to top

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

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

這項資訊有幫助嗎?

感謝您的意見反應!

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

×