はじめに
Windows環境で運用を行っていると避けて通れないのがPowerShellのコマンド操作です。
このPowerShellのコマンド操作ですが、数が多くてすべては覚えてられません。そして、毎度ググるのが非常に面倒。。
なので、今回は直近調べて運用で使えそうなExchange Onlineのコマンドレットを備忘的な意味も含め紹介します。
事前準備
まずExchange Onlineでコマンド操作を行うためには、Exchange Online PowerShell モジュールをインストールする必要があります。インストールするにはPowerShellを管理者として実行し、以下コマンドレットを実行します。
Exchange Online PowerShell モジュールをインストールする
Install-Module -Name ExchangeOnlineManagement
環境によってはPowerShellの実行ポリシーに引っかかる場合があります。その場合は実行ポリシーを「RemoteSigned」に設定する必要があります、
Set-ExecutionPolicy RemoteSigned
PowerShellでのExchange Online接続
モジュールのインストール後、実際にコマンド操作するにはExchange Onlineへ接続する必要があります。Exchange Onlineへの接続は以下コマンドレットを実行します。
Connect-ExchangeOnline
実行後、Microsoftのサインイン画面が表示されるので、管理者アカウントでサインインします。
運用でよく使うコマンド
本題の運用でよく使うコマンドレットを管理項目別に紹介します。
メールボックス
メールボックスの作成
ユーザーアカウントにExchange Onlineのライセンスを割り当てると、ユーザーのメールボックスが自動的に作成されます。
メッセージ サイズの制限
- 確認
Get-Mailbox -Identity "<対象者のメールアドレス>" | Select-Object MaxSendSize,MaxReceiveSize
- 設定
Set-Mailbox -Identity "<対象者のメールアドレス>" -MaxSendSize <最大送信サイズ(**MB)> -MaxReceiveSize <最大受信サイズ(**MB)>
- 組織全体として既定値を変更
Get-MailboxPlan | FT -AutoSize
$MailboxPlan=Get-MailboxPlan -Identity <メールボックスプラン名※1>
$MailboxPlan.MaxReceiveSize
$MailboxPlan.MaxSendSize
Set-MailboxPlan -Identity <メールボックスプラン名> -MaxReceiveSize <最大送信サイズ(**MB)> -MaxReceiveSize <最大受信サイズ(**MB)>
※1 メールボックスプラン名はGet-MailboxPlanの結果で確認できます。サブスクリプションまたはライセンスの種類によって異なります。詳細については以下を参照してください。
Exchange Online のメールボックス プラン
受信者制限
- 確認
Get-Mailbox -Identity "<対象者のメールアドレス>" | Select-Object RecipientLimits
- 設定
Set-Mailbox -Identity "<対象者のメールアドレス>" -RecipientLimits <受信制限数>
- 組織全体として既定値を変更
Get-MailboxPlan | FT -AutoSize
$MailboxPlan=Get-MailboxPlan -Identity <メールボックスプラン名>
$MailboxPlan.RecipientLimits
Set-MailboxPlan -Identity <メールボックスプラン名> -RecipientLimits <受信制限数>
メールボックス アーカイブ
- 確認
Get-Mailbox -Identity "<対象者のメールアドレス>" | Select-Object ArchiveStatus
- 有効化
Enable-Mailbox -Identity "<対象者のメールアドレス>" -Archive
- 無効化
Disable-Mailbox -Identity "<対象者のメールアドレス>" -Archive
訴訟ホールド
- 確認
Get-Mailbox -Identity "<対象者のメールアドレス>" | Select-Object LitigationHoldEnabled
- 有効化
Get-Mailbox -Identity "<対象者のメールアドレス>" | Set-Mailbox -LitigationHoldEnabled $true
- 無効化
Get-Mailbox -Identity "<対象者のメールアドレス>" | Set-Mailbox -LitigationHoldEnabled $false
注意:訴訟ホールドを有効化するためには、Exchange Online プラン 2以上のライセンス割り当てが事前に必要です。
メールボックスを訴訟ホールドの対象にする
メールボックス アーカイブ自動拡張
- 組織全体として既定値を変更
Get-OrganizationConfig | FL AutoExpandingArchiveEnable
Set-OrganizationConfig -AutoExpandingArchive
共有メールボックス
共有メールボックスの作成
New-Mailbox -Shared -Name <共有メールボックスのメールアドレス> -DisplayName <表示名> -Alias <エイリアス> -PrimarySmtpAddress <共有メールボックスのメールアドレス>
共有メールボックスの削除
Remove-Mailbox -Identity "<共有メールボックスのメールアドレス>" -Confirm:$false
メールボックス所有者として送信
- 確認
Get-RecipientPermission <共有メールボックスのメールアドレス>
- 追加
Add-RecipientPermission <共有メールボックスのメールアドレス> -Trustee <権限を付与するユーザーのメールアドレス> -AccessRights SendAs -Confirm:$false
- 削除
Remove-RecipientPermission <共有メールボックスのメールアドレス> -Trustee <権限を削除するユーザーのメールアドレス> -AccessRights SendAs -Confirm:$false
読み取りと管理(フルアクセス)
- 確認
Get-MailboxPermission <共有メールボックスのメールアドレス>
- 追加
Add-MailboxPermission <共有メールボックスのメールアドレス> -User <権限を付与するユーザーのメールアドレス> -AccessRights FullAccess -Confirm:$false
- 削除
Remove-MailboxPermission <メールボックスのメールアドレス> -User <権限を付与するユーザーのメールアドレス> -AccessRights FullAccess -Confirm:$false
メッセージ サイズの制限
- 確認
Get-Mailbox -Identity "<共有メールボックスのメールアドレス>" | Select-Object MaxSendSize,MaxReceiveSize
- 設定
Set-Mailbox -Identity "<共有メールボックスのメールアドレス>" -MaxSendSize <最大送信サイズ(**MB)> -MaxReceiveSize <最大受信サイズ(**MB)>
受信者制限
- 確認
Get-Mailbox -Identity "<共有メールボックスのメールアドレス>" | Select-Object RecipientLimits
- 設定
Set-Mailbox -Identity "<共有メールボックスのメールアドレス>" -RecipientLimits <受信制限数>
メールボックス アーカイブ
- 確認
Get-Mailbox -Identity "<共有メールボックスのメールアドレス>" | Select-Object ArchiveStatus
- 有効化
Enable-Mailbox -Identity "<共有メールボックスのメールアドレス>" -Archive
- 無効化
Disable-Mailbox -Identity "<共有メールボックスのメールアドレス>" -Archive
訴訟ホールド
- 確認
Get-Mailbox -Identity "<共有メールボックスのメールアドレス>" | Select-Object LitigationHoldEnabled
- 有効化
Get-Mailbox -Identity "<共有メールボックスのメールアドレス>" | Set-Mailbox -LitigationHoldEnabled $true
- 無効化
Get-Mailbox -Identity "<共有メールボックスのメールアドレス>" | Set-Mailbox -LitigationHoldEnabled $false
注意:訴訟ホールドを有効化するためには、Exchange Online プラン 2以上のライセンス割り当てが事前に必要です。
メールボックスを訴訟ホールドの対象にする
配布グループ
配布グループの作成
New-DistributionGroup -Name “<配布グループ名>” -Alias <エイリアス> -DisplayName “<表示名>” -PrimarySmtpAddress <配布グループのメールアドレス> -ManagedBy <グループ管理者のメールアドレス※1> -Members <メンバーのメールアドレス※1> -RequireSenderAuthenticationEnabled:$false
※1 複数指定する場合は[,(カンマ)]で区切ってください。
配布グループの削除
Remove-DistributionGroup <配布グループのメールアドレス> -Confirm:$false
代理人 追加/削除
- 追加
Add-RecipientPermission <配布グループのメールアドレス> -Trustee <権限を付与するユーザーのメールアドレス> -AccessRights SendAs -Confirm:$false
- 削除
Remove-RecipientPermission <配布グループのメールアドレス> -Trustee <権限を削除するユーザーのメールアドレス> -AccessRights SendAs -Confirm:$false
配信レポートのリダイレクト設定
Set-DistributionGroup <配布グループのメールアドレス> -ReportToOriginatorEnabled $false -ReportToManagerEnabled $true
グループ管理者 追加/削除
- 確認
Get-DistributionGroup <配布グループのメールアドレス> | FL ManagedBy
- 追加
Set-DistributionGroup <配布グループのメールアドレス> -ManagedBy @{Add=<グループ管理者のメールアドレス※1>}
- 削除
Set-DistributionGroup <配布グループのメールアドレス> -ManagedBy @{Remove=<グループ管理者のメールアドレス※1>}
※1 複数指定する場合、"Owner1","Owner2",..."OwnerN"のように引用符で括り、[,(カンマ)]で区切ってください。
メンバー 追加/削除
- 確認
Get-DistributionGroupMember <配布グループのメールアドレス>
- 追加
Add-DistributionGroupMember <配布グループのメールアドレス> -Member <メンバーのメールアドレス>
- 削除
Remove-DistributionGroupMember <配布グループのメールアドレス> -Member <メンバーのメールアドレス> -Confirm:$false
配信管理 組織外ユーザーからのメッセージ受信を許可/拒否
- 確認
Get-DistributionGroup <配布グループのメールアドレス> | FL RequireSenderAuthenticationEnabled
- 許可(組織内のユーザーからのメッセージのみを許可)
Set-DistributionGroup <配布グループのメールアドレス> - RequireSenderAuthenticationEnabled $true
- 拒否(組織内外のユーザーからのメッセージを許可)
Set-DistributionGroup <配布グループのメールアドレス> - RequireSenderAuthenticationEnabled $false
配信管理 指定された送信者の追加/削除
- 確認
Get-DistributionGroup <配布グループのメールアドレス> | FL AcceptMessagesOnlyFrom
- 追加
Set-DistributionGroup <配布グループのメールアドレス> -AcceptMessagesOnlyFrom @{Add=<指定された送信者のメールアドレス※2>}
- 削除
Set-DistributionGroup <配布グループのメールアドレス> -AcceptMessagesOnlyFrom @{Remove=<指定された送信者のメールアドレス※2>}
※2 複数指定する場合、"Sender1","Sender2",..."SenderN"のように引用符で括り、[,(カンマ)]で区切ってください。
Outlook Web アプリ ポリシー
BlockedFileTypes
ローカルへの保存、OWAでの表示ができない添付ファイルの種類 (ファイル拡張子)を指定
- 確認
(Get-OwaMailboxPolicy -Identity "OwaMailboxPolicy-Default").BlockedFileTypes
- 追加
Set-OwaMailboxPolicy -BlockedFileTypes @{Add=".<追加対象の拡張子※1>"}
- 削除
Set-OwaMailboxPolicy -BlockedFileTypes @{Remove=".<削除対象の拡張子※1>"}
※1 複数指定する場合、".aaa",".bbb",...".zzz"のように引用符で括り、[,(カンマ)]で区切ってください。
AllowedFileTypes
ローカルへの保存、OWAでの表示ができる添付ファイルの種類 (ファイル拡張子) を指定
- 確認
(Get-OwaMailboxPolicy -Identity "OwaMailboxPolicy-Default").AllowedFileTypes
- 追加
Set-OwaMailboxPolicy -AllowedFileTypes @{Add=".<追加対象の拡張子※2>"}
- 削除
Set-OwaMailboxPolicy -AllowedFileTypes @{Remove=".<削除対象の拡張子※2>"}
※2 複数指定する場合、".aaa",".bbb",...".zzz"のように引用符で括り、[,(カンマ)]で区切ってください。
アイテム保持ポリシー
- アイテム保持ポリシーのGuid確認
(((Get-RetentionCompliancePolicy <アイテム保持ポリシー名>).Guid).ToString()).Replace("-","")
※事前にセキュリティ/コンプライアンス接続が必要です
- 追加
Set-RetentionCompliancePolicy -Identity M365F3 <アイテム保持ポリシー名> -AddExchangeLocation <メールボックスのメールアドレス>
※事前にセキュリティ/コンプライアンス接続が必要です
- ポリシー適用確認
Get-Mailbox -Identity <メールボックスのメールアドレス> | FL InPlaceHolds
“mbx”から始まる値に対象のアイテム保持ポリシーのGuidが記録されていれば適用されています。
- ポリシー適用済みメールボックスの確認
Get-Mailbox -ResultSize Unlimited |Where-Object{$_.InPlaceHolds -like "*<アイテム保持ポリシーのGuid>*"} | Export-CSV -Encoding UTF8 -Path <任意のパス>.csv -NoTypeInformation