OneDrive for Business サイトに電子情報開示アクセス許可を割り当てる

重要:  この記事は機械翻訳されています。機械翻訳についての「免責事項」をお読みください。この記事の英語版を参照するには、ここをクリックしてください。

SharePoint Onlineで電子情報開示センターを使用して特定のキーワード、機密情報、およびその他の検索条件を組織内のすべてのOneDrive for Businessサイトを検索します。組織内の各ユーザーは、https://domain-my.sharepoint.com という名前のサイト コレクション内にある、 OneDrive for Businessサイトの所有者です。既定では、 Office 365グローバル管理者またはコンプライアンス マネージャーは、 OneDrive for Businessサイトを検索するのにSharePoint Onlineで電子情報開示センターを使用できません。OneDrive for Businessサイトを検索するには、管理者またはコンプライアンス管理者する必要OneDrive for Businessサイトのサイト コレクションの管理者です。

このトピックでは、組織のすべての OneDrive for Business サイトについて、管理者またはコンプライアンス マネージャーをサイト コレクション管理者にする手順について説明します。

手順 1: 組織の sharepoint Online Management Shell の接続します。

手順 2: すべての OneDrive for Business のサイトのリストを収集します。

手順 3: ユーザーのサイト コレクションの管理者に割り当てる OneDrive for Business のサイト

サイト コレクション管理者はOneDrive for Businessサイトからユーザーを削除するのには、手順 3 でスクリプトを変更するなど、これらのスクリプトの使い方の詳細については、このトピックの最後にその他の情報を参照してください。

始める前に

  • SharePoint Online管理シェルをインストールします。詳しくは、 SharePoint Online Management Shell の Windows PowerShell 環境をセットアップするを参照してください。

  • 組織内の OneDrive for Business サイトのサイト コレクション管理者の役割をユーザーに割り当てる度に、手順 3 のスクリプトを実行します。

    重要: OneDrive for Business サイトのサイト コレクション管理者である管理者またはコンプライアンス マネージャーは、ユーザーの OneDrive for Business ドキュメント ライブラリを開き、所有者と同じタスクを実行できます。組織内の OneDrive for Business サイトに対する電子情報開示のアクセス許可が割り当てられたユーザーを制御し、監視することが重要です。

  • このトピックに記載されているサンプル スクリプトは、Microsoft の標準的なサポート プログラムやサービスではサポートされていません。サンプル スクリプトはいかなる保障もない現状有姿のままで提供されます。さらに、Microsoft は、商品性、特定目的への適合性を含む一切の黙示の保証をいたしかねます。本サンプル スクリプトおよびドキュメントの使用または性能に起因するすべてのリスクは、お客様が負うものとします。Microsoft、本サンプル スクリプトの作成者、および本スクリプトの作成、製造、配布に関与する者は、いかなる場合においても、本サンプル スクリプトおよびドキュメントの使用または使用不能から生じる損害 (逸失利益、事業の中断、事業情報の喪失またはその他の金銭的損失を含みますがこれらに限定されません) に関して一切責任を負いません。たとえ、Microsoft がこのような損害の可能性について知らされていた場合でも同様です。

手順 1: 組織にSharePoint Online管理シェルを接続します。

  1. ローカル コンピューター上には、 SharePoint Online管理シェルを開くし、次のコマンドを実行します。

    $credentials = Get-Credential

    [Windows PowerShell 資格情報の要求] ダイアログ ボックスに Office 365 全体管理者のユーザー名とパスワードを入力し、[OK] をクリックします。

  2. シェルをSharePoint Online組織に接続するには、次のコマンドを実行します。

    Connect-SPOService -Url https://<your organization name>-admin.sharepoint.com –credential $credentials
  3. SharePoint Online組織に接続されていることを確認するには、組織内のすべてのサイトの一覧を取得するには、次のコマンドを実行します。

    Get-SPOSite

先頭に戻る

手順 2: OneDrive for Businessのすべてのサイトのリストを収集します。

この手順では、シェル スクリプトを実行し、組織内のすべての OneDrive for Business サイトの一覧を作成します。この一覧はテキスト ファイルに保存されます。手順 3 で実行するスクリプトでは、この手順で作成されるテキスト ファイルに含まれている各 OneDrive for Business サイトに対するサイト コレクション管理者の役割を、指定したユーザーに割り当てます。手順 3 でスクリプトを実行する前に、サイトを削除してこのファイルを編集することもできます。電子情報開示のアクセス許可を複数のユーザーに一括割り当てする方法のヒントについては、このトピックの末尾にある「詳細情報」を参照してください。

  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  たとえば、 "https://contoso-admin.sharepoint.com"、 SharePoint Online管理サービスの URI を指定します。

    • $AdminAccount   Office 365 組織の全体管理者アカウントを指定します。たとえば、"admin@contoso.onmicrosoft.com" と指定します。

    • $AdminPass$AdminAccount で指定されたアカウントのパスワードを指定します。たとえば、"J$P1ter1" と指定します。

    • $LogFile   作成するテキスト ファイルのフル パスを指定します。組織内のすべての OneDrive for Business サイト一覧を含めます。たとえば、このファイルをデスクトップに保存するには、'C:\Users\<youralias>\Desktop\ListOfMysites.txt' と指定します。この変数の値は、一重引用符 (’ ’) で囲んでください。手順 3 で実行するスクリプトで、この同じ場所を指定する点に注意してください。

  3. ファイル名の拡張子を .ps1 に変更して、PowerShell スクリプト ファイル形式でテキスト ファイルを保存します。たとえば、GetOD4BSites.txt というファイルを GetOD4BSites.ps1 という名前で保存します。

  4. SharePoint Online管理シェルをでは、スクリプト、前の手順で作成したが、フォルダーに移動し、たとえば、スクリプトを実行します。

    .\GetOD4BSites.ps1

スクリプトが正常に完了すると、スクリプトの $LogFile 変数で指定した場所にテキスト ファイルが作成されます。このファイルには、SharePoint Online 組織のすべての OneDrive for Business サイトの一覧が含まれます。次のテキストは、このファイルのサイト一覧の書式例です。必要に応じて、このファイルからサイトを削除できます。

/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/

先頭に戻る

手順 3: OneDrive for Businessサイトにサイト コレクションの管理者としてユーザーに割り当てる

次に、組織内のすべての OneDrive for Business サイトで、指定したユーザーにサイト コレクション管理者を割り当てる別のスクリプトを実行する手順について説明します。このスクリプトでは、手順 2 でスクリプトを実行したときに作成された OneDrive for Business サイトの一覧を使用します。前述のように、OneDrive for Business サイトに対するサイト コレクション管理者の役割をユーザーに割り当てる度に、このスクリプトを実行する必要があります。

  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 という仮定で説明します。変数の値は、二重引用符 (" ") で囲んでください。

    • $AdminURISharePoint Online 管理サービスは"https://contoso-admin.sharepoint.com"などの URI を指定します。

    • $AdminAccount"admin@contoso.onmicrosoft.com"など、Office 365 の組織では、グローバル管理者アカウントを指定します。

    • $eDiscoveryUserユーザー アカウントの管理者またはなど、組織内のすべてのOneDrive for Businessサイトのサイト コレクションの管理者として割り当てられるコンプライアンス マネージャー、 "annb@contoso.onmicrosoft.com"を指定します。

      注: $MySiteListFile 変数で指定された OneDrive for Business サイトに対するサイト コレクション管理者の役割を別のユーザーに割り当てるには、$eDiscoveryUser 変数で指定したユーザー アカウントを変更し、スクリプトを再実行します。

    • $MySitePrefix組織の個人用サイトのドメインの URL を指定します。これは、 "https://contoso-my.sharepoint.com"など、組織内のすべてのOneDrive for Businessサイトがあるドメインです。

    • $MySiteListFile手順 2 で作成されたテキスト ファイルの完全なパスを指定します。このファイルでは、 'C:\Users\<youralias>\Desktop\ListOfMysites.txt'など、組織内のOneDrive for Businessサイトの一覧が表示されます。単一引用符でこの変数の値を囲むように確認してください ("")。手順 2 を実行するスクリプトで行ったように同じ場所を指定する必要があることに注意してください。

  3. ファイル名の拡張子を .ps1 に変更して、PowerShell スクリプト ファイル形式でテキスト ファイルを保存します。たとえば、OD4BAssignSCA.txt というファイルを OD4BAssignSCA.ps1 という名前で保存します。

  4. SharePoint Online管理シェルをでは、前の手順で作成した PowerShell スクリプトが含まれているフォルダーに移動しなど、スクリプトを実行します。

    .\OD4BAssignSCA.ps1

    スクリプトで指定した管理者アカウントのパスワードを入力するように求められます。スクリプトが正常に実行されると、$MySiteListFile で指定した入力ファイルに含まれる各 OneDrive for Business サイトについて、"<user specified by $eDiscoveryUser> をサイト コレクション管理者にします" というメッセージが表示されます。

先頭に戻る

詳細情報

  • 手順 3 で実行したスクリプトでは、Set-SPOUser コマンドレットを使用して、OneDrive for Business 変数で指定したファイルに含まれるすべての $MySiteListFile に対するサイト コレクション管理者の役割を、指定したユーザーに割り当てています。ユーザー数が数千人単位の大規模な組織の場合、次の手順を実行すると、電子情報開示のアクセス許可の割り当てを管理しやすくなります。

    • 手順 2 のスクリプトで作成した OneDrive for Business サイトの一覧を含むファイルを編集し、現在の訴訟事例に関係するユーザーのサイトのみを含めるようにします。

    • アクセス許可を割り当てる OneDrive for Business サイトの数が 1 日に 2,500 個を超えないようにします。たとえば、組織内に 10,000 個の OneDrive for Business サイトがあるとします。手順 2 のスクリプトを実行すると、すべてのサイトを収集できます。次に、そのファイルを使用して、それぞれ 2,500 ユーザーを含む 4 つのファイルを作成します。初日には、手順 3 のスクリプトを実行して、最初の 2,500 個の OneDrive for Business サイトにアクセス許可を割り当てます。2 日目には、次の 2,500 個の OneDrive for Business サイトに対してスクリプトを実行するなど、残りのサイトも同様に実行します。

  • 電子情報開示のアクセス許可が割り当てられた OneDrive for Business サイトと、サイト コレクション管理者が割り当てられたユーザーを記録します。たとえば、アクセス許可の割り当て後に、OneDrive for Business サイトの一覧を含むテキスト ファイルを保存し、サイト コレクション管理者が割り当てられたユーザーを特定する行を追加します。

  • ユーザーは、OneDrive for Business サイトのサイト コレクション管理者の一覧を表示できます。ユーザーは各自の OneDrive for Business サイトのサイト コレクション管理者なので、サイト コレクション管理者を削除できます。OneDrive for Business サイトに対する電子情報開示アクセス許可が割り当てられたユーザーを、ユーザーが削除する可能性を軽減するには、次の対応を検討してください。

    • 電子情報開示と法令遵守の目的で、組織内の OneDrive for Business サイトに対するサイト コレクション管理者の役割が法令遵守責任者に割り当てられていることをユーザーに伝えます。

    • 必要に応じて、手順 3 のスクリプトを再実行して、OneDrive for Business サイトのサイト コレクション管理者の役割をユーザーに割り当て直します。

  • また、手順 3 で実行したスクリプトを使用して、OneDrive for Business サイトからサイト コレクション管理者のユーザーを削除することもできます。サイト コレクション管理者のユーザーを削除するには、(スクリプトの末尾近くにある) 次のコマンドを変更する必要があります。

    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 for Business サイトのグループからサイト コレクション管理者のユーザーを削除します。

  • 手順 2 のスクリプトを実行すると、組織内で見つかった各プロファイルが処理され、"プロファイル x/y を確認しています" というメッセージが表示されます。確認されるプロファイルの合計数は、ListOfMysites 出力ファイルに保存される OneDrive for Business サイトの数を超えることがあります。OneDrive for Business サイトを使用した、または開いたユーザーのみが出力ファイルに含まれるので、この結果は正常です。

先頭に戻る

注: 機械翻訳についての免責事項: この記事の翻訳はコンピューター システムによって行われており、人間の手は加えられていません。マイクロソフトでは、英語を話さないユーザーがマイクロソフトの製品、サービス、テクノロジに関するコンテンツを理解するのに役立てるため、こうした機械翻訳を提供しています。記事は機械翻訳されているため、用語、構文、文法などに誤りがある場合があります。

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×