社畜の所業

社畜の所業

Microsoft365の機能について解説をしていきたいと思います。このブログの情報をご活用いただければ幸いです。たまに他の情報も取り入れていきたいと思います。

※このサイトはPR記事を含みます。

【Office365参考書】コンテンツの検索で検索やエクスポートを実行したログを確認することができるか?

f:id:it-bibouroku:20210404095716p:plain

コンプライアンスセンターのコンテンツの検索を実行したログについて、[サンプルのレビュー] にてプレビュー表示をした場合とエクスポートを実行した場合は、Get-ComplianceSearchAction のコマンドレットにて取得可能であることを確認いたしました。 

  

ただし、検索ルールを作成した場合や既存の検索ルールにて [検索の再実行] を実施した場合はログに記録されないため、ログから確認することができません。

  

また、プレビュー表示、および、エクスポートを最終的に実行したログが記録される動作であるため、過去にプレビュー表示やエクスポートを実行したログについては確認することができません。

  

以下に手順をご案内いたします。

 

なお、セキュリティコンプライアンスセンターに接続してから実行してください。 

  

docs.microsoft.com

 

docs.microsoft.com

  

 

[構文] 

Get-ComplianceSearchAction | Export-Csv -Encoding Utf8 -NoTypeInformation -Path "保存先\ファイル名.csv

  

[実行例] 

Get-ComplianceSearchAction | Export-Csv -Encoding Utf8 -NoTypeInformation -Path "c:\temp\ComplianceSearchAction.csv

  

<出力結果> 

SearchName : ケース名 

CreatedTime : ケース作成日 

LastModifiedTime : 最終更新日 

CreatedBy : ケースの作成者 

RunBy : ケースの最終更新者 

Action : Preview の場合はプレビュー表示、Export の場合はエクスポートを実行した場合に記録されます。 

JobStartTime : ジョブの開始日 

JobEndTime : ジョブの終了日 

 

  

 

【Microsoft365参考書】メールボックスの使用容量を一覧で取得するには?共有メールボックスやMicrosoft365グループの容量も確認できる?

f:id:it-bibouroku:20210404095716p:plain

今回は、メールボックスの使用容量を一覧として出力するコマンドレットについてご紹介していきたいと思います。

 

出力する使用容量については、通常領域と回復可能なアイテム領域の両方について確認できるように作成しております。

 

 

また、ユーザーメールボックスとあわせて、共有メールボックスとMicrosoft365グループ(グループメールボックス)についても、使用容量の出力が可能ですのでご紹介させていただきます。

 

 

 

メールボックスの使用容量を確認するコマンドレット 

以下の記事をもとにExchangeOnlineに接続してから実行してください。

 

it-bibouroku.hateblo.jp

 

 

ユーザー単位 

<構文> 

Get-MailboxStatistics -Identity <メールアドレス> | Select DisplayName,TotalItemSize,TotalDeletedItemSize | Export-Csv -Encoding UTF8 -NoTypeInformation -Path <ファイルパス\ファイル名>.csv -NoTypeInformation 

  

<実行例> 

Get-MailboxStatistics -Identity test@contoso.com | Select DisplayName,TotalItemSize | Export-Csv -Encoding UTF8 -NoTypeInformation -Path "C:\Temp\Get-MailboxStatistics.csv

※C ドライブの配下の temp フォルダーに Get-MailboxStatistics.csv という名前のファイルで情報保存する場合 

  

<出力結果> 

DisplayName   : 表示名 

TotalItemSize : メールボックスの使用容量 

TotalDeletedItemSize : 回復可能なアイテム領域の使用容量 

 

    

全ユーザー メールボックスの使用容量を取得します 

<構文> 

$UserList = Get-Mailbox -Resultsize Unlimited -RecipientTypeDetails UserMailbox 

$MailboxStat = $UserList | Foreach {Get-MailboxStatistics -Identity $_.UserPrincipalName ; Start-Sleep -m 200} 

$MailboxStat | Select DisplayName,TotalItemSize,TotalDeletedItemSize | Export-CSV -NoTypeInformation -Encoding UTF8 "<ファイルパス\ファイル名>.csv

  

<実行例> 

$UserList = Get-Mailbox -Resultsize Unlimited -RecipientTypeDetails UserMailbox 

$MailboxStat = $UserList | Foreach {Get-MailboxStatistics -Identity $_.UserPrincipalName ; Start-Sleep -m 200} 

$MailboxStat | Select DisplayName,TotalItemSize,TotalDeletedItemSize | Export-CSV -NoTypeInformation -Encoding UTF8 "C:\Temp\TotalItemSizeList.csv

  

ドライブの配下の temp フォルダーに TotalItemSizeList.csv という名前のファイルで情報保存する場合 

  

 

全ての共有メールボックスの使用容量を取得します 

<構文> 

$UserList = Get-Mailbox -Resultsize Unlimited -RecipientTypeDetails SharedMailbox 

$MailboxStat = $UserList | Foreach {Get-MailboxStatistics -Identity $_.UserPrincipalName ; Start-Sleep -m 200} 

$MailboxStat | Select DisplayName,TotalItemSize,TotalDeletedItemSize | Export-CSV -NoTypeInformation -Encoding UTF8 "<ファイルパス\ファイル名>.csv

  

<実行例> 

$UserList = Get-Mailbox -Resultsize Unlimited -RecipientTypeDetails SharedMailbox 

$MailboxStat = $UserList | Foreach {Get-MailboxStatistics -Identity $_.UserPrincipalName ; Start-Sleep -m 200} 

$MailboxStat | Select DisplayName,TotalItemSize,TotalDeletedItemSize | Export-CSV -NoTypeInformation -Encoding UTF8 "C:\Temp\SharedTotalItemSizeList.csv

  

※C ドライブの配下の temp フォルダーに SharedTotalItemSizeList.csv という名前のファイルで情報保存する場合 

  

全てのMicrosoft365グループ(グループメールボックス)の使用容量を取得します 

<構文> 

$UserList = Get-Mailbox -Resultsize Unlimited -GroupMailbox 

$MailboxStat = $UserList | Foreach {Get-MailboxStatistics -Identity $_.PrimarySmtpAddress ; Start-Sleep -m 200} 

$MailboxStat | Select DisplayName,TotalItemSize,TotalDeletedItemSize | Export-CSV -NoTypeInformation -Encoding UTF8 "<ファイルパス\ファイル名>.csv

  

<実行例> 

$UserList = Get-Mailbox -Resultsize Unlimited -GroupMailbox 

$MailboxStat = $UserList | Foreach {Get-MailboxStatistics -Identity $_.PrimarySmtpAddress ; Start-Sleep -m 200} 

$MailboxStat | Select DisplayName,TotalItemSize,TotalDeletedItemSize | Export-CSV -NoTypeInformation -Encoding UTF8 "C:\Temp\GroupTotalItemSizeList.csv

  

※C ドライブの配下の temp フォルダーに GroupTotalItemSizeList.csv という名前のファイルで情報保存する場合 

 

[出力結果] 

DisplayName   : 表示名 

TotalItemSize : メールボックスの使用容量 

TotalDeletedItemSize : 回復可能なアイテム領域の使用容量 

 

【Office365参考書】Powershellのコマンドレットでメールボックスを作成するには?

f:id:it-bibouroku:20210404095716p:plain

Powershellのコマンドレットで共有メールボックスを作成する場合、New-Mailboxで作成が可能ですが、ユーザーメールボックスを作成する場合もNew-Mailboxのコマンドレットにて、MicrosoftOnlineServicesID 属性を使用することで、ユーザー名を指定してメールボックスを作成することが可能です。

 

なお、共有メールボックスでは指定が不要である、パスワードの設定が必須となりますので、ご留意ください。

 

また、ライセンスが付与されていない状態でメールボックスが作成されますので、ライセンスを付与することを忘れないようご留意ください。

 

以下の記事を参考にExchange Onlineに接続してから実行してください。

 

 

it-bibouroku.hateblo.jp

 

   

新規ユーザーメールボックスを作成するコマンドレット 

 

[構文] 

New-Mailbox -Name "設定する Name 属性" -DisplayName "設定する表示名" -MicrosoftOnlineServicesID "設定するユーザー名" -Password (ConvertTo-SecureString -String '設定するパスワード' -AsPlainText -Force) 

  

[実行例] 

New-Mailbox -Name "user001" -DisplayName "ユーザー001" -MicrosoftOnlineServicesID "user001@contoso.com" -Password (ConvertTo-SecureString -String 'p@ssw0rd' -AsPlainText -Force) 

  

 

なお、ユーザー名とプライマリ SMTPアドレスを別に設定する場合は、PrimarySmtpAddress 属性も併せて使用します。 

  

[実行例] 

New-Mailbox -Name"user001" -DisplayName "ユーザー001" -MicrosoftOnlineServicesID "user001@contoso.com" -PrimarySmtpAddress "user001@fabrikam.com" -Password (ConvertTo-SecureString -String 'p@ssw0rd' -AsPlainText -Force) 

  

 

docs.microsoft.com

【Office365参考書】パブリックフォルダのすべてのサブフォルダに権限を継承できるか?

f:id:it-bibouroku:20210404095716p:plain

パブリックフォルダのアクセス権を付与する際に、配下にあるすべてのサブフォルダにも同様のアクセス権を付与したい場合、 「ルートアクセス許可」という項目があるので、配下のパブリックフォルダにアクセス権を継承できるのかについてご紹介していきたいと思います。

  

Exchange 管理センターの[パブリック フォルダー] の画面上部の [...] - [ルートアクセス許可] にて、特定のユーザーへアクセス権を付与した場合、新たに作成するパブリック フォルダーやそのサブフォルダーすべてにアクセス権が引き継がれる動作であり、既存のパブリックフォルダには継承されません。

  

なお、[ルートアクセス許可] の画面にて、[このフォルダとすべてのサブフォルダに変更を適用する] のチェックボックスにチェックを入れることで [ルートアクセス許可] で設定した内容をすべてのサブフォルダに適用することが可能です。

ただし、フォルダ数が多い場合や多岐に渡る階層を持つフォルダーの場合にアクセス権が継承されない事例を確認してます。 

なお、この設定は設定が継承されるものではなく、すべてのサブフォルダに対しアクセス権の変更設定を連続で実行する動作です。 

  

そのため、パブリックフォルダの数が多い場合や階層が深いフォルダがある場合はPowershellのコマンドレットで手動で実行することをおススメします。

  

なお、PowerShell コマンドを用いてパブリックフォルダーに対するアクセス権限の変更を行う場合、現在 設定されているアクセス権限を一度 削除した後に新しい権限を再設定する必要があります。 

以下に csv ファイルを用いた複数ユーザーに対する権限の一括削除および追加の実行例をご案内しますので、ご参考にしていただけますと幸いです。 

  

 

CSV ファイルを利用してパブリックフォルダーへの権限を一括で削除する 

-------------------- 

<CSV ファイルの構成> 

"Identity","User" 

"<パブリック フォルダーのパス名>","<ユーザー名>" 

  

[作成例] 

"Identity","User" 

"\PublicFolder1","UserA" 

"\PublicFolder1\PublicFolder1-1","UserA" 

"\PublicFolder2\PublicFolder2-1","UserA" 

"\PublicFolder2\PublicFolder2-1","UserB" 

  

上記で作成した CSV ファイルを元にアクセス権の設定を行う PowerShell コマンドを実行します。 

PowerShell より Exchange Online に接続してから実行してください。

 

 

it-bibouroku.hateblo.jp

 

  

[構文] 

Import-Csv "<CSV ファイルの格納先フルパス名>" | Foreach-object { Remove-PublicFolderClientPermission -Identity $_.Identity -User $_.User -Confirm:$False} 

  

[実行例] 

Import-Csv "C:\Temp\publicfolderpermission.csv" | Foreach-object { Remove-PublicFolderClientPermission -Identity $_.Identity -User $_.User -Confirm:$False} 

  

  

CSV ファイルを利用してパブリックフォルダーへの権限を一括で追加する 

-------------------- 

<CSV ファイルの構成> 

"Identity","User","AccessRights" 

"<パブリック フォルダーのパス名>","<ユーザー名>","<アクセス権限>" 

  

[作成例] 

"Identity","User","AccessRights" 

"\PublicFolder1","UserA","Reviewer" 

"\PublicFolder1\PublicFolder1-1","UserA","Reviewer" 

"\PublicFolder2\PublicFolder2-1","UserA","Reviewer" 

"\PublicFolder2\PublicFolder2-1","UserB","Reviewer" 

  

※ ユーザー名の指定には、ユーザーメールボックス以外にも、メールが有効なセキュリティグループを指定することも可能です。 

  

上記で作成した CSV ファイルを元にアクセス権の設定を行う PowerShell コマンドを実行します。 

PowerShell より Exchange Online に接続します。 

  

[構文] 

Import-Csv "<CSV ファイルの格納先フルパス名>" | Foreach-object { Add-PublicFolderClientPermission -Identity $_.Identity -User $_.User -AccessRights $_.AccessRights } 

  

[実行例] 

Import-Csv "C:\Temp\publicfolderpermission.csv" | Foreach-object { Add-PublicFolderClientPermission -Identity $_.Identity -User $_.User -AccessRights $_.AccessRights } 

  

<実行結果表示例> 

FolderName           User                 AccessRights 

----------           ----                 ------------ 

Public1             UserA                {Reviewer} 

PublicFolder1       UserA                {Reviewer} 

PublicFolder2       UserA                {Reviewer} 

PublicFolder2       UserB                {Reviewer} 

  

docs.microsoft.com

  

 

docs.microsoft.com

 

【Office365参考書】UPNを変更する際にドメインがプルダウンに表示されない?フェデレーションドメインが関係している?

f:id:it-bibouroku:20210404095716p:plain

Microsoft365管理センターでユーザーや共有メールボックスのUPNを変更する場合、プルダウンでドメインの選択ができますが、指定したいドメインが表示されない場合があります。

 

その場合、該当のドメインがフェデレーションドメインであることが考えられます。

 

フェデレーション環境では、以下の設定を Microsoft 365 管理センターにて実行することが制限されております。 

  

  •  フェデレーション ドメインのユーザーを Microsoft 365 管理センターにて作成すること 
  • Microsoft 365 管理センターで作成されたクラウド ユーザーのユーザー名 (UPN) をフェデレーション ドメインに変更すること 

  

フェデレーションドメインの認証についても触れておきたいと思います。

 

   

フェデレーションドメインの認証について 

Office 365 にサインインする際の認証方式については、ドメイン単位での設定となり、ユーザーは Office 365 側の UPN に設定されたドメインの認証方式でサインインを行う動作となります。 

標準認証ドメイン UPN を持つユーザーにつきましては、Office 365 にて保持されたパスワードを利用して認証を行いますが、フェデレーション ドメイン UPN を持つユーザーにつきましては、認証時にリダイレクトされ、外部 IdP にて認証が行われます。 

  

なお、対象ドメインが標準認証ドメインかフェデレーション ドメインかについて確認する場合、PowerShell にて、以下のコマンドにてご確認いただくことは可能です。 

  

 

1. Windows PowerShell の起動 

Windows PowerShell を管理者として起動し、接続のため以下のコマンドレットを実行し、管理者 ID とパスワードを入力 

  

【コマンドレット】 

Connect-MsolService 

  

2. フェデレーションドメインであるか確認するコマンド 

 

<構文> 

Get-MsolDomain -DomainName "対象のドメイン" | select Name, Authentication 

  

<実行例> 

Get-MsolDomain -DomainName "contoso.com" | select Name, Authentication 

  

<実行結果例> 

Name                                    Authentication 

----                                    -------------- 

contoso.com                             Federated 

  

 

なお、ディレクトリ同期を利用しないサードパーティ製 IdP にてシングル サインオン (SSO) を実行している環境の場合は、[ImmutableId] 属性の値を指定することで、Windows PowerShell にてユーザーを作成、および UPN の変更を行う際に、フェデレーション ドメインを  UPN に使用することが可能となります。 

また、ユーザーを作成した後、当該ユーザーに Exchange Online を含むライセンスを割り当てることで、メール アドレスを設定することが可能です。 

  

以下に Windows PowerShell にて [ImmutableId] 属性に値を設定する手順をご紹介いたします。

 

1. Windows PowerShell の起動 

Windows PowerShell を管理者として起動し、接続のため以下のコマンドレットを実行し、管理者 ID とパスワードを入力 

  

【コマンドレット】 

Connect-MsolService 

  

2. ユーザーを作成する際に、[ImmutableId] 属性を設定するコマンド 

 

【コマンドレット】 

New-MsolUser -UserPrincipalName "作成するユーザーのユーザー ID" -ImmutableId "[ImmutableID] の値" -DisplayName "対象ユーザーに設定する表示名" 

  

【説明】 

・ [ImmutableId] は、認証先 IdP のオブジェクト情報との紐づけに利用される属性であり、ユーザーごとに一意の値を持ちます。 

 

  

docs.microsoft.com