- Add-RoleGroupMemberの実行
- Add-eDiscoveryCaseAdminの実行
- 検索ルールの作成
- コンプライアンス検索の開始
- 検索ルールの進捗状況の確認
- コンテンツの検索のプレビューを出力
- コンテンツの検索のエクスポートの準備
- PST ファイルへの出力
- コンプライアンス検索の実行を停止
- 検索ルールの削除
- Exchange Online のメールボックスの検索を禁止する手順
- SharePoint Online の検索を禁止する手順
今回は、以下の記事でもご紹介しております"コンテンツの検索"について、Powershellのコマンドレットで実行する手順についてご紹介したいと思います。
ルールの作成やプレビューやエクスポートの準備などは通常のコマンドレットでできますが、PSTのエクスポートについてはPowershellでは実行できません。
そのため、エクスポートまでの操作はPowershellでできますが、エクスポートは画面から実行しなくてはいけません。
まずは、以下の記事を参考にし、セキュリティ コンプライアンスセンターへ接続します。
コンテンツの検索を利用するためには、管理者であっても、eDiscovery Manager の権限を付与する必要がありますので、以下のコマンドレットを順に実行します。
Add-RoleGroupMemberの実行
[構文]
Add-RoleGroupMember "eDiscovery Manager" -Member "追加するメンバーのメールアドレス"
[実行例]
Add-RoleGroupMember "eDiscovery Manager" -Member "User01@contoso.com"
※ 上記コマンドレッの実行にて、[電子情報開示マネージャー] の付与となります。
[電子情報開示管理者] の権限を付与するには、続けて次のコマンドレットを実行します。
Add-eDiscoveryCaseAdminの実行
上記項番 1 で設定したユーザーを登録します
[構文]
Add-eDiscoveryCaseAdmin -User "[電子情報開示マネージャー] 権限のあるユーザーのメール アドレス"
[実行]
Add-eDiscoveryCaseAdmin -User "User01@contoso.com"
※ 権限が反映されて、コンテンツの検索をご利用できるまで少々時間を要する場合があります。
検索ルールの作成
[概要]
New-ComplianceSearch コマンドレットを使用して、セキュリティ センターとコンプライアンス センター でコンプライアンス検索を作成します。このコマンドレットを使用して検索条件を定義します。
[構文]
New-ComplianceSearch -Name "検索の名前" -ExchangeLocation "検索に含めるメールボックス" -ContentMatchQuery "クエリ指定の条件"
[実行例]
New-ComplianceSearch -Name "Test-ComplianceSearch" -ExchangeLocation "All" -ContentMatchQuery "subject:'業務'"
※ -ExchangeLocation "All" により、全メールボックスを指定しています。
ContentMatchQuery (検索フィルター) について
ContentMatchQuery パラメーターは、コンテンツの検索フィルターを指定します。
このパラメーターには、テキストの検索文字列、またはキーワード クエリ言語 (KQL) によって書式設定されたクエリを使用します。
<検索フィルターの指定例>
- 件名をキーワードとした検索
-ContentMatchQuery "subject:'業務'"
- 特定アドレスから送信されたアイテムの検索
-ContentMatchQuery "from:user001@contoso.com"
- 特定期間を指定した検索
※ 下記例では、2018/10/01 から 2018/10/10 の期間に送受信や作成されたアイテムを対象とします。
-ContentMatchQuery "date=2018-10-01..2018-10-10"
- 複数条件の指定
-ContentMatchQuery "subject:'業務' AND from:user001@contoso.com AND date=2018-10-01..2018-10-10"
例:シングルクォーテーションで条件を括る
'(date=2018-10-01..2018-10-10) AND (kind="email")'
コンプライアンス検索の開始
[概要]
コンプライアンス検索を開始します。
[構文]
Start-ComplianceSearch -Identity "コンプライアンス検索の名前"
[実行例]
Start-ComplianceSearch -Identity "Test-ComplianceSearch"
検索ルールの進捗状況の確認
[概要]
New-ComplianceSearchAction コマンドレットを使用してコンプライアンス検索のプレビュー アクションを定義した後で、Get-ComplianceSearchAction コマンドレットを使用して、コンプライアンス検索の進捗状況を表示します。
[構文]
Get-ComplianceSearch -Identity "検索ルールの名前"
[実行例]
Get-ComplianceSearch -Identity "Test-ComplianceSearch"
[結果表示例]
Name RunBy JobEndTime Status
---- ----- ---------- ------
Test-ComplianceSearch admin 2018/10/01 11:46:21 Completed
※正常に処理が終了している場合、Status が "Completed" と表示されます。
コンテンツの検索のプレビューを出力
[概要]
検索ルールにて検索した結果をプレビューとしてCSVファイルに出力します。
[構文]
New-ComplianceSearchAction -SearchName "検索ルール名" -Preview | Export-CSV -Encoding UTF8 -Path <ファイルパス\ファイル名>.csv -NoTypeInformation
[実行例]
New-ComplianceSearchAction -SearchName "test" -Preview | Export-CSV -Encoding UTF8 -Path C:\temp\Mailbox.csv -NoTypeInformation
[出力できる情報]
Location : 受信者
Sender : 送信者
Subject : 件名
Type : 種類
Size : サイズ
Received Time : 受信日時
コンテンツの検索のエクスポートの準備
[概要]
PSTにエクスポートする準備をおこないます。
<構文>
New-ComplianceSearchAction -SearchName "検索ルール名" -Export
<実行例>
New-ComplianceSearchAction -SearchName "test" -Export
※再度、同じコマンドレットを実行することでStatusの値から完了したか確認が可能です。
実行後は、Starting、完了後はCompletedとなることを確認しております。
以降はPowershellで実行することができないため、画面上からエクスポートを実行してください。
なお、以前はスクリプトを利用するとエクスポートができました。
備忘録として以前実行できたコマンドレットを記載しておきます。(赤字の部分)
PST ファイルへの出力
[概要]
電子情報開示エクスポート ツールが表示され、エクスポートキーとダウンロード場所を指定することでPSTファイルにエクスポートされます。
なお、コマンドレットを実行することで、自動的にエクスポートキーがコピーされた状態となるため、そのままエクスポートキーの欄に張り付けてください。
<構文>
$export=Get-ComplianceSearchAction "エクスポートする検索ルール名" -IncludeCredential;
$exportUrl=[System.Uri]::EscapeDataString( ($export.Results.Split(";") | ?{$_ -like '*Container url*'} | %{$_.Split(":",2)} | select -last 1).Trim() );
$exportToken=($export.Results.Split(";") | ?{$_ -like '*SAS Token*'} | %{$_.Split(":",2)} | select -last 1).Trim();
."$env:ProgramFiles\Internet Explorer\IEXPLORE.EXE" "https://complianceclientsdf.blob.core.windows.net/v16/Microsoft.Office.Client.Discovery.UnifiedExportTool.application?name=$($export.Name)&source=$exportUrl&zip=allow&trace=1";
$exportToken | clip;
<実行例>
$export=Get-ComplianceSearchAction "123_Export" -IncludeCredential;
$exportUrl=[System.Uri]::EscapeDataString( ($export.Results.Split(";") | ?{$_ -like '*Container url*'} | %{$_.Split(":",2)} | select -last 1).Trim() );
$exportToken=($export.Results.Split(";") | ?{$_ -like '*SAS Token*'} | %{$_.Split(":",2)} | select -last 1).Trim();
."$env:ProgramFiles\Internet Explorer\IEXPLORE.EXE" "https://complianceclientsdf.blob.core.windows.net/v16/Microsoft.Office.Client.Discovery.UnifiedExportTool.application?name=$($export.Name)&source=$exportUrl&zip=allow&trace=1";
$exportToken | clip;
以下は補足ですが、検索の実行を停止する場合と検索ルールの削除のコマンドレットをご紹介します。
コンプライアンス検索の実行を停止
[概要]
コンプライアンス検索の実行を停止します。
[構文]
Stop-ComplianceSearch -Identity "コンプライアンス検索の名前"
[実行例]
Stop-ComplianceSearch -Identity "Test-ComplianceSearch"
※ タスクが実行されている状況下でのみ使用可能です。
検索ルールの削除
[概要]
コンプライアンス検索を削除します。検索は停止または完了する必要があります。
[構文]
Remove-ComplianceSearch -Identity "コンプライアンス検索の名前"
[実行例]
Remove-ComplianceSearch -Identity "Test-ComplianceSearch"
また、フィルター設定をおこなうことで、Exchange Online のメールボックスの検索を禁止やSharePoint Online の検索を禁止する設定もできますので、あわせてご紹介します。
Exchange Online のメールボックスの検索を禁止する手順
<構文>
New-ComplianceSecurityFilter -FilterName <フィルター名> -Users <操作を禁止する対象ユーザーのメールアドレス> -Filters "Mailbox_Alias -Notlike '*'" -Action All
<実行例>
New-ComplianceSecurityFilter -FilterName "NoEXO" -Users user@contoso.com -Filters "Mailbox_Alias -notlike '*'" -Action All
SharePoint Online の検索を禁止する手順
<構文>
New-ComplianceSecurityFilter -FilterName <フィルター名> -Users <操作を禁止する対象ユーザーのメールアドレス> -Filters "Site_Path -Notlike 'https://<テナントドメイン>.sharepoint.com*'" -Action All
<実行例>
New-ComplianceSecurityFilter -FilterName NoSPO -Users "User@contoso.com" -Filters "Site_Path -notlike 'https://contoso.sharepoint.com*'" -Action All