コンテンツ検索を使用してメールボックスと OneDrive for Business サイトでユーザーの一覧を探す

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

Office 365 セキュリティ/コンプライアンス センターでは、時間のかかる電子情報開示関連のタスクを自動化できる数多くの Windows PowerShell コマンドレットが提供されます。現時点では、セキュリティ/コンプライアンス センターでコンテンツ検索を作成して多くの管理者コンテンツの場所を検索するには、時間と準備を要します。検索を作成する前に、各 OneDrive for Business サイトの URL を収集してから、各メールボックスと OneDrive for Business サイトを検索に追加する必要があります。将来のリリースでは、セキュリティ/コンプライアンス センターでのこの作業がより簡単になります。それまでは、この記事に示されているスクリプトを使って、このプロセスを自動化することができます。このスクリプトでは、組織の MySite ドメインの名前 (URL https://contoso-my.sharepoint.comcontoso など)、ユーザーのメール アドレス リスト、新しいコンテンツ検索の名前、および使用する検索クエリの入力を求められます。スクリプトはリストから各ユーザーの OneDrive for Business URL を取得し、コンテンツ検索を作成して開始します。このコンテンツ検索では、指定した検索クエリを使って、リストで各ユーザーのメールボックスと OneDrive for Business サイトを検索します。

そのための手順を以下に示します。

手順 1: SharePoint Online 管理シェルをインストールする

手順 2: ユーザーのリストを生成する

手順 3: スクリプトを実行し、検索を作成して開始する

始める前に

  • 手順 3 でスクリプトを実行するには、セキュリティ/コンプライアンス センターの電子情報開示マネージャーの役割グループのメンバーであり、さらに SharePoint Online のグローバル管理者である必要があります。

  • 手順 2 で作成するユーザーのリストと手順 3 のスクリプトは、必ず、同じフォルダーに保存してください。そうすれば、スクリプトをより簡単に実行できます。

  • スクリプトには最低限のエラー処理が含まれています。主な目的は、各ユーザーのメールボックスと OneDrive for Business サイトをすばやく簡単に検索することです。

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

手順 1: SharePoint Online 管理シェルをインストールする

最初の手順では、SharePoint Online 管理シェルをインストールします。この手順ではシェルを使用する必要はありませんが、手順 3 で実行するスクリプトで必要な前提条件が含まれているため、インストールする必要があります。これらの前提条件を満たすことで、スクリプトを使って SharePoint Online と通信し、OneDrive for Business サイトの URL を取得できるようになります。

SharePoint Online Management Shell の Windows PowerShell 環境をセットアップするに移動して、 SharePoint Online管理シェルをインストールするには、手順 1 と手順 2 を実行します。

先頭に戻る

手順 2: ユーザーのリストを生成する

手順 3 のスクリプトでコンテンツ検索を作成して、ユーザー リストのメールボックスと OneDrive for Business サイトを検索します。単にテキスト ファイルにメール アドレスを入力するか、Windows PowerShell でコマンドを実行してメール アドレスのリストを取得して、(手順 3 でスクリプトを保存するのと同じフォルダーにある) ファイルに保存することができます。

以下は、組織内のすべてのユーザーのメール アドレスのリストを取得して、Users.txt という名前のテキスト ファイルに保存するための Windows PowerShell コマンド (Exchange Online 組織に接続されているリモート PowerShell を使って実行します) です。

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

このコマンドを実行した後、必ずファイルを開き、 PrimarySmtpAddressプロパティ名を含むヘッダーを削除してください。テキスト ファイルには、メール アドレス] の一覧と、それ以外のものがだけが含まれるようです。メール アドレスの一覧の前後に、空白行がないことを確認します。

先頭に戻る

手順 3: スクリプトを実行し、検索を作成して開始する

この手順のスクリプトを実行すると、次の情報の入力を求められます。スクリプトを実行する前に、必ず、この情報を用意しておいてください。

  • ユーザーの資格情報  スクリプトではユーザーの資格情報を使って SharePoint Online にアクセスし、OneDrive for Business の URL を取得したり、リモート PowerShell で セキュリティ/コンプライアンス センター に接続したりします。

  • 自分の MySite ドメインの名前  MySite ドメインは、組織内のすべての OneDrive for Business サイトを含むドメインです。たとえば、MySite ドメインの URL が https://contoso-my.sharepoint.com の場合、スクリプトで MySite ドメインの名前の入力を求められたときに「contoso」と入力します。

  • 手順 2 のテキスト ファイルのパス名  手順 2 で作成したテキスト ファイルのパス名です。テキスト ファイルとスクリプトが同じフォルダーにある場合は、テキスト ファイルの名前を入力します。それ以外の場合は、テキスト ファイルの完全なパス名を入力します。 

  • コンテンツ検索の名前   スクリプトで作成されるコンテンツ検索の名前です。

  • 検索クエリ   コンテンツ検索で使用される検索クエリが作成され、実行されます。検索クエリの作成の詳細については、「コンテンツ検索のキーワード クエリと検索条件」を参照してください。

  1. ファイル名のサフィックスに .ps1 を使って (例: SearchEXOOD4B.ps1)、次のテキストを Windows PowerShell スクリプト ファイルに保存します。このファイルを、手順 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. 資格情報を求められたら、メール アドレスとパスワードを入力して、[OK] をクリックします。

  5. スクリプトで求められる以下の情報を入力します。各情報の入力ごとに、Enter キーを押します。

    • MySite ドメインの名前。 

    • ユーザー リストが含まれるテキスト ファイルのパス名。

    • コンテンツ検索の名前。

    • 検索クエリ (コンテンツの場所のすべての項目を返す場合はこれを空白のままにします)。

    スクリプトは OneDrive for Business サイトごとに URL を取得してから、検索を作成して開始します。Get-ComplianceSearch コマンドレットを実行して検索の統計と結果を表示することも、セキュリティ/コンプライアンス センターの [コンテンツ検索] ページに移動して検索に関する情報を表示することもできます。

先頭に戻る

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

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

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

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

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

×