よく使うコマンド集 (Exchange Online、Exchange Server 共通)

Exchange Online コマンド集

Exchange Online、Exchange Server で使用可能な代表的なコマンドです。

PowerShell コマンドの形式は、”動詞-名詞” の表記となります。
動詞部分は、コマンドレットの動作を示しますが、ここでは主に Get 動詞 (情報を取得する) に関連するコマンドを紹介しています。

主な動詞説明
Get設定情報を取得します。
Set設定情報を変更します。
Newメールボックスなどのリソースを作成します。
Addリソースをリソースのコンテナー (配布グループなど) に追加します。
Removeリソースをリソースのコンテナー (配布グループなど) から削除します。
Enable設定を有効にします。
Disable設定を無効にします。
  • 「プロパティ情報」は使用頻度の高いものを説明しています。
  • 「プロパティ情報」の「既定値」は [Exchange 管理センター] からメールボックスなどのオブジェクトを作成した場合の既定値です。

オンプレミスの Exchange Server でのみ使用できるコマンドはこちらです。

Exchange Online への接続

各種コマンドを実行するためには PowerShell で Exchange Online へ接続します。
Exchange Online への接続方法は以下です。

Get-Mailbox

メールボックスの情報を取得するためには、Get-Mailbox コマンドレットを使用します。

  • SMTP アドレスは?
  • アドレス帳に表示される?
  • 訴訟ホールドは有効?
  • 訴訟ホールドの期間は?
  • 転送してる?
  • 代理人の設定はどうなってる?
  • 監査の設定は有効?
  • インプレース アーカイブは有効?

構文

Get-Mailbox -Identity 'メールボックス名'

サンプル

この例は、User1 という名前のメールボックスに関する詳細情報を返します。
-Identity は省略可能です。

Get-Mailbox -Identity User1 |fl

fl は Format-List の省略形で全てのプロパティ情報を表示します。

この例は、User1 という名前のメールボックスで、以下のプロパティを返します。

  • 表示名
  • エイリアス
  • SMTP アドレス
  • アドレス帳に表示するかどうか
Get-Mailbox user1 | select DisplayName,Alias,PrimarySmtpAddress,HiddenFromAddressListsEnabled
実行結果
DisplayNameAliasPrimarySmtpAddressHiddenFromAddressListsEnabled
User1User1User1@test001.comFalse

| (パイプライン) は、先行のコマンドの結果 (Get-Mailbox user1) を次のコマンド (select) に渡すためのものです。

select は指定したプロパティ情報を表示します。

この例は、User1 の Alias プロパティを返します。

(Get-Mailbox -Identity User1).Alias

この例は、特定のプロパティ (‘office’ プロパティなど) に”東京都” の文字列が含まれるメールボックスの一覧を返します。

Get-Mailbox -Anr '東京都'

この例は、表示名に「システム」を含む会議室の一覧を返します。

Get-Mailbox -RecipientType RoomMailbox -Filter {DisplayName -like 'システム*'} -ResultSize Unlimited

この例は、グローバルアドレス帳で非表示になっているメールボックスの一覧を返します。

Get-Mailbox -RecipientType UserMailbox -Filter {HiddenFromAddressListsEnabled -eq $true}

この例は、Exchange Online で新規のメールボックスを作成します。
ユーザー アカウントも同時に作成されます。
ライセンスは別途付与する必要があります。

New-Mailbox -Alias makoto -Name makoto -FirstName makoto -LastName ito -DisplayName "伊藤 誠" -MicrosoftOnlineServicesID makoto@test001.com -Password (ConvertTo-SecureString -String 'P@ssw0rd' -AsPlainText -Force) -ResetPasswordOnNextLogon $false

user1 のインプレース アーカイブを作成します。

Enable-Mailbox -Identity user1 -Archive

プロパティ情報

プロパティ説明既定
ServerNameメールボックスをホストするサーバー
ExchangeGuidメールボックスに割り当てられた一意の属性値
EmailAddressesSMTP アドレス
PrimarySmtpAddressSMTP アドレス
SMTP : プライマリメールアドレス (返信用アドレス)
smtp : セカンダリアドレス
LegacyExchangeDNExchange 組織内部のメール配送に使用される一意の属性値
Aliasメールボックス名
DisplayNameメールボックスの表示名
HiddenFromAddressListsEnabledアドレス帳に表示しないFalse
ArchiveStatusインプレース アーカイブの状態
有効な場合は “Active”
None
SingleItemRecoveryEnabled単一アイテムの回復が有効True
RetainDeletedItemsFor[削除済みアイテムを復元 (Deletions)] に格納されたアイテムの格納期間14
LitigationHoldEnabled訴訟ホールドが有効False
LitigationHoldDuration訴訟ホールドの保存期間Unlimited
RetentionPolicyアイテム保持ポリシー (MRM) の設定Default MRM Policy
RetentionHoldEnabledアイテム保持ポリシー (MRM) を停止するFalse
ForwardingAddress転送先アドレスを指定する (Exchange 組織内)
ForwardingSmtpAddress転送先アドレスを指定する (Exchange 組織外)
DeliverToMailboxAndForwardコピー転送するFalse
GrantSendOnBehalfTo代理人設定{}
AcceptMessagesOnlyFrom特定の送信者からのメールだけを受信 (ユーザー指定){}
AcceptMessagesOnlyFromDLMembers特定の送信者からのメールだけを受信 (グループ指定){}
RejectMessagesFrom特定の送信者からのメールを拒否 (ユーザー指定){}
RejectMessagesFromDLMembers特定の送信者からのメールを拒否 (グループ指定){}
AuditEnabled監査ログが有効 True
AuditOwnerメールボックス所有者が実行したアクションがメールボックスに対してログに記録される{Update…}
AuditDelegate代理人ユーザーが実行したアクションがメールボックスに対してログに記録される{Update…}
AuditLogAgeLimitメールボックス監査ログの、ログの保存期間が表示される。90
RecipientTypeメールボックスのタイプUserMailbox
RecipientTypeDetailsメールボックスのタイプの詳細
ユーザーメールボックス : UserMailbox
会議室メールボックス : RoomMailbox
備品用メールボックス : EquipmentMailbox
共有メールボックス : SharedMailbox
SimpleDisplayName簡易表示名。海外などの組織外へ送信する際表示される表示名
WhenMailboxCreatedユーザーのメールボックスが作成された日時
WhenSoftDeletedメールボックスが削除された日時
WhenChanged最後にユーザー情報が更新された日時
WhenCreatedAzure Active Directory 内にアカウントが作成された日時
WhenChangedUTC最後にユーザー情報が更新された日時 (グリニッジ標準時間)
WhenCreatedUTCAzure Active Directory 内にアカウントが作成された日時 (グリニッジ標準時間)
MicrosoftOnlineServicesIDユーザーの Microsoft Online Services ID (Exchange Online のみ)
既定値は [Exchange 管理センター] から作成した場合の既定値

Get-MailboxStatistics

メールボックスのサイズ、その中にあるメッセージの数、最後にメールボックスにアクセスした日時など、メールボックスに関する情報を取得するには、Get-MailboxStatistics コマンドレットを使用します。また、完了した移動要求の移動履歴または移動レポートを取得できます。

  • メールボックスに含まれるアイテム数は?
  • メールボックスの使用領域のサイズは?
  • 回復可能なアイテムはどれくらいあるか?
  • 回復可能なアイテムのサイズはどれくらいか?

構文

Get-MailboxStatistics -Identity 'メールボックス名'

サンプル

この例では、エイリアス User1 を使用するメールボックスについてのメールボックス統計情報の詳細を取得します。

Get-MailboxStatistics -Identity User1 |fl

この例では、User1 という名前のメールボックスで、特定のプロパティを返します。

Get-MailboxStatistics -Identity User1 | select DisplayName,ItemCount,TotalItemSize,DeletedItemCount,TotalDeletedItemSize
実行結果
DisplayName:User1
ItemCount:53
TotalItemSize:1.473 MB (1,544,053 bytes)
DeletedItemCount:250
TotalDeletedItemSize:2.517 MB (2,639,037 bytes)

プロパティ情報

プロパティ説明
DisplayName表示名
ItemCountメールボックスの合計アイテム数
TotalItemSizeメールボックスの使用領域
DeletedItemCount[回復可能なアイテム] フォルダー内のアイテム数
TotalDeletedItemSize[回復可能なアイテム] フォルダー内のアイテムサイズ

回復可能なアイテムについては以下です。

Get-MailboxFolderStatistics

メールボックス内のフォルダーに関する情報を取得するには、Get-MailboxFolderStatistics コマンドレットを使用します。

  • メールボックスのフォルダー内のアイテム数は?
  • メールボックスのフォルダーのサイズは?
  • [回復可能なアイテム] フォルダー内のアイテム数は?
  • [回復可能なアイテム] フォルダーのサイズは?

サンプル

この例では、FolderScope パラメーターを指定せずに、ユーザー User1 に関するすべての情報を取得します。

Get-MailboxFolderStatistics -Identity User1

この例では、FolderScope パラメーターを指定し、[Inbox] (受信トレイ) とサブフォルダーのみの情報を取得します。

Get-MailboxFolderStatistics User1 -FolderScope Inbox | Select Name,FolderSize,ItemsinFolder,FolderPath
実行結果
NameFolderSizeItemsInFolderFolderPath
Inbox713.6 KB (730,687 bytes)22/Inbox
test136.71 KB (37,587 bytes)1/test1
test2120.5 KB (123,355 bytes)5/test2

※ 「test1」、「test2」は [Inbox] のサブフォルダーです。

プロパティ情報

プロパティ説明
Nameフォルダー名
ItemsInFolderフォルダー内のアイテム数
ItemsInFolderAndSubfolders対象フォルダーと配下のサブ フォルダーに格納されているアイテムの数
FolderSizeフォルダーのサイズ
FolderAndSubfolderSize対象フォルダーと配下のサブ フォルダーに格納されているアイテムの容量
FolderPathフォルダーのパス
Dateフォルダーが作成された時間
FolderTypeフォルダータイプ ※ユーザ作成のもか既定のものかどうか

[回復可能なアイテム] フォルダー

以下のコマンドで、[回復可能なアイテム] フォルダーの状態を確認する事も可能です。

Get-MailboxFolderStatistics daisuke -FolderScope RecoverableItems |select FolderPath,ItemsInFolderAndSubfolders,FolderAndSubfolderSize
実行結果
FolderPathItemsInFolderAndSubfoldersFolderAndSubfolderSize
/Recoverable Items13224.607 MB (4,830,768 bytes)
/Audits12484.231 MB (4,436,885 bytes)
/Calendar Logging30122 KB (124,934 bytes)
/Deletions3122.3 KB (125,275 bytes)
/DiscoveryHolds00 B (0 bytes)
/Purges41140.3 KB (143,674 bytes)
/SubstrateHolds00 B (0 bytes)
/Versions00 B (0 bytes)

回復可能なアイテムについては以下です。

Get-User

メールボックスの連絡先情報を取得するためには、Get-User コマンドレットを使用します。

  • どこの部署に所属してる?
  • 事業所はどこ?
  • 役職は何?
  • 上司はだれ?
  • 携帯電話の番号は?

構文

Get-User -Identity 'メールボックス名'

この例は、User1 の連絡先に関する詳細情報を返します。

Get-User -Identity User1 |fl

この例では、User1 という名前のメールボックスで、特定のプロパティを返します。

Get-User -Identity User1 |select DisplayName,Company,Department,Title,Manager

プロパティ情報

プロパティ説明
SamAccountNameユーザーログオン名 (Active Directory)
UserPrincipalNameユーザーログオン名 (Active Directory,Azure AD)
ResetPasswordOnNextLogon初回ログイン時にパスワードの変更を強制
MicrosoftOnlineServicesIDユーザーの Microsoft Online Services ID (Exchange Online のみ)
City市区町村
Company会社名
CountryOrRegion国/地域
Department部署
DisplayNameメールボックスの表示名
FirstName
LastName
Manager管理者
MobilePhone携帯電話
Office事業所
Phone電話番号
PhoneticDisplayNameふりがな
PostalCode郵便番号
SimpleDisplayName簡易表示名。海外などの組織外へ送信する際表示される表示名
StateOrProvince都道府県
StreetAddress番地
Title役職
IsDirSyncedオンプレ Active Directory との同期の有無

Get-DistributionGroup

配布グループ、またはメールが有効なセキュリティ グループを確認するために使用します。グループのメンバーを表示するには、Get-DistributionGroupMember コマンドレットを使用します。

  • SMTP アドレスは?
  • アドレス帳に表示される?
  • グループ参加は所有者の承認が必要?
  • DSN の送信先は?
  • 全てのユーザーが使用可能?
  • 外部ユーザーも使用可能?

サンプル

この例では、ml01 というグループを取得し、オブジェクトを Format-List コマンドにパイプライン処理して、配布グループに関する詳細情報を表示します。

Get-DistributionGroup -Identity ml01 | fl

この例では、エイリアスが ml02、名前が「メール管理2」という配布リスト グループを作成します。この配布グループは既定の OU に作成され、グループ所有者による承認なしに誰でもグループに参加できます。

New-DistributionGroup -Name 'メール管理2' -Alias ml02 -PrimarySmtpAddress ml02@test001.com -MemberJoinRestriction open

プロパティ情報

プロパティ説明既定
EmailAddressesSMTP アドレス
HiddenFromAddressListsEnabledアドレス帳に表示しないFalse
MemberJoinRestriction所有者による承認なしにグループに参加Open
MemberDepartRestriction所有者による承認なしにグループから脱退Open
ManagedBy配布グループの管理者{管理者}
ReportToManagerEnabled管理者に DSN を送信False
ReportToOriginatorEnabled送信者に DSN を送信True
RequireSenderAuthenticationEnabled(Active Directory で) 認証されたユーザーからのみ受信するTrue
AcceptMessagesOnlyFrom指定した送信者 (ユーザー) のみがこのグループにメッセージを送信できる{}
AcceptMessagesOnlyFromDLMembers指定した送信者 (グループ) のみがこのグループにメッセージを送信できる{}
AcceptMessagesOnlyFromSendersOrMembers指定した送信者 (ユーザー、グループ) のみがこのグループにメッセージを送信できる{}
RecipientTypeグループのタイプ
RecipientTypeDetailsグループのタイプの詳細
配布グループ : MailUniversalDistributionGroup
メールが有効なセキュリティグループ : MailUniversalSecurityGroup
既定値は [Exchange 管理センター] から作成した場合の既定値

Get-DistributionGroupMember

既存の配布グループ メンバー一覧を表示します。

  • 配布グループのメンバー
  • 配布グループのメンバーはメールボックスか配布グループか

サンプル

この例を実行すると、配布グループ ml01 の既存の配布グループ メンバーが返されます。

Get-DistributionGroupMember -Identity ml01

この例では、User1 を ml01 という名前の配布グループに追加します。

Add-DistributionGroupMember -Identity ml01 -Member User1

この例では、ml01 という名前の配布グループから User1 を削除します。

Remove-DistributionGroupMember -Identity ml01 -Member User1

プロパティ情報

プロパティ説明
Nameメンバーの名前
RecipientTypeメンバーのタイプ
UserMailbox : メールボックス
MailUniversalDistributionGroup : メーリングリスト

Get-MailContact

メール連絡先は、Exchange 組織外に存在するユーザーに関する情報を含むメールが有効なオブジェクトです。 メール連絡先には、外部ユーザー用のメール アドレスを設定します。

  • SMTP アドレスは?
  • アドレス帳に表示される?

サンプル

この例では、メールが有効な User1 の連絡先を取得します。

Get-MailContact -Identity User1 | Format-List

この例では、jiro tanaka のメール連絡先を作成します。

New-MailContact -Name 'jiro tanaka' -DisplayName '田中二郎' -ExternalEmailAddress jiro@test01.com -Alias jiro

プロパティ情報

プロパティ説明既定
DisplayName表示名
Name名前
Aliasメールボックス名
ExternalEmailAddressExchange 組織外メールアドレス
HiddenFromAddressListsEnabledアドレス帳に表示しないFalse
RecipientTypeメールボックスのタイプMailContact
RecipientTypeDetailsメールボックスのタイプの詳細MailContact

Get-InboxRule

仕分けルールのプロパティを表示するには、Get-InboxRule コマンドレットを使用します。
大量のルールはメールを見失う可能性があるため、注意が必要です。

  • メールボックスに設定されているルールの一覧
  • 各種ルールの詳細な内容
  • ルールを削除する方法

構文

Get-InboxRule -Mailbox 'メールボックス名'

サンプル

この例では、User1 というメールボックスの受信トレイ ルールを取得しています。

Get-InboxRule -Mailbox User1

この例では、User1 というメールボックスに設定されたルールの情報を取得しています。

Get-InboxRule -Mailbox User1 | fl Description,From,MoveToFolder
実行結果
Description:メッセージが次の場合:
メッセージを ‘天気予報’ から受信した場合
次の操作を行います:
フォルダー ‘天気’ にメッセージを移動する
From:{“天気予報” [SMTP:abctenki@aaa.tenki.co.jp]}
MoveToFolder:天気
Descriptionルールの説明
From差出人
MoveToFolder移動先フォルダー名

この例では、メールボックス User1 の仕分けルールを全削除します。

Get-InboxRule -Mailbox user1 | Remove-InboxRule

Get-MailboxPermission

メールボックスのアクセス権を表示するには、Get-MailboxPermission コマンドレットを使用します。

構文

Get-MailboxPermission -Identity 'メールボックス名'

サンプル

この例は、メールボックス User1 に対し、フルアクセス権のあるユーザー情報を返します。

Get-MailboxPermission User1 |? {$_.AccessRights -eq "FullAccess"} |select user,AccessRights
実行結果
UserAccessRights
taro@test01.com{FullAccess}

User1 のメールボックスに対し、taro@test01.com がフルアクセス権を所有しています。

Get-MailboxFolderPermission

メールボックスのフォルダー レベルのアクセス許可を表示するには、Get-MailboxFolderPermission コマンドレットを使用します。

  • 他人の予定表が全くみえないのはなぜ?
  • 他人の予定があるのは分かるが、中身が見れず青く潰れてしまっているのはなぜ?
  • 他人の予定表をダブルクリックで開く方法は?
  • 他人の予定表を直接編集する方法は?

構文

Get-MailboxFolderPermission -Identity 'メールボックス名'

サンプル

この例では、User1 のメールボックスにある予定表に対する現在のユーザー アクセス許可の一覧を取得します。
※ 日本語環境では [calendar] は [予定表] になります。

Get-MailboxFolderPermission User1:\calendar
実行結果
FolderNameUserAccessRightsSharingPermissionFlags
Calendar既定{AvailabilityOnly}
Calendar匿名{None}

この例では、User1 のメールボックスの [予定表] フォルダーで User2 に参照者ロールを付与します。

Add-MailboxFolderPermission -Identity User1:\calendar -User User2 -AccessRights Reviewer

この例では、User1 のメールボックスの [予定表] フォルダーに対する User2 の既存のアクセス許可を上書きします。これで、User2 にフォルダの所有者ロールが付与されました。

Set-MailboxFolderPermission -Identity User1:\calendar -User User2 -AccessRights Owner

この例では、User1 のメールボックスの [予定表] フォルダーに対する User2 のアクセス許可を削除します。

Remove-MailboxFolderPermission -Identity User1:\calendar -User User2

プロパティ情報

プロパティ説明
FolderNameフォルダーの名前
Userアクセス権が付与されるユーザー
AccessRightsアクセス権
SharingPermissionFlags非公開の予定が参照可能か (Delegate,CanViewPrivateItems)

予定表アクセス権

以下アクセス許可のレベルです。ユーザーやグループに適切なアクセス権を付与します。
よくあるケースとしては、会社組織レベルでは厳しいアクセス権 (空き時間情報のみ) を設定し、自身が所属する部署などに対してはやや緩いアクセス権 (空き時間情報、件名、場所) を設定します。

アクセス権アクセス許可レベル
Noneなし
Owner所有者
PublishingEditor発行編集者
Editor編集者
PublishingAuthor発行作成者
Author作成者
NonEditingAuthor非編集作成者
Reviewer参照者
Contributor寄稿者
LimitedDetails空き時間情報、件名、場所
AvailabilityOnly空き時間情報

Outlook から見た予定表アクセス権の設定例です。

名前対象ユーザーアクセス許可見え方
既定Exchange 組織内の全ユーザー空き時間情報、件名、場所件名、場所は見えるが、ダブルクリックで開くことはできない。
User1User1参照者ダブルクリックして内容の詳細が確認可能。
User2User2編集者ダブルクリックして内容の詳細が確認可能。
予定表アイテムの作成、削除、編集が可能。
User3User3空き時間情報予定が埋まっている (青く潰れている) 状態はわかるが、内容の確認はできない。

Get-CalendarProcessing

対象のメールボックスのカレンダー アテンダントの構成を取得するには、Get-CalendarProcessing コマンドレットを使用します。

  • 会議の重複は許可される?
  • 定期的な会議は許可される?
  • 会議出席依頼の件名や添付ファイルはどうなる?
  • 予約可能な期間は?
  • 予約可能な最大の期間は?
  • 会議出席依頼が自動的に承認されるユーザーはどこで設定?

構文

Get-CalendarProcessing -Identity '会議室名'

サンプル

この例では、Identity パラメーターをエイリアス形式で指定して、room1 のカレンダー アテンダントの構成を取得しています。

Get-CalendarProcessing -Identity room1 | Format-List

この例では、会議室 room2 で予約可能なメンバーを制限しています。
会議室 room2 を予約可能なメンバーは Group1 に所属するユーザーのみです。
※ Group1 はメールが有効なセキュリティグループです。他にユーザー、共有メールボックスが指定可能で、複数指定はカンマ区切りを使用します。

Set-CalendarProcessing -Identity room2 -BookInPolicy Group1 -AllBookInPolicy $false

「Group1」に所属していないユーザーが「room2」を予約すると辞退メールが生成されます。

プロパティ情報

プロパティ説明既定
AutomateProcessing会議の予約が入った場合は自動承認するAutoAccept
AllowConflicts重複する会議出席依頼を許可するFalse
DeleteCommentsコメントを削除するTrue
DeleteSubject出席依頼に含まれる件名を削除するTrue
DeleteAttachments会議出席依頼に含まれる添付ファイルを削除するTrue
AddOrganizerToSubject出席依頼の件名に開催者を追加するTrue
AllowRecurringMeetings定期的な会議を許可するTrue
BookingWindowInDays何日先まで予約が可能かを制御する180
EnforceSchedulingHrizon予約可能な期間を越えたら予約情報を拒否するTrue
MaximumDurationInMinutes会議出席依頼の最大期間 (分)
一度の会議で最大何分までできるか
0
(無制限)
ScheduleOnlyDuringWorkHours稼動時間内のみに制限するFalse
AllBookInPolicy全てのユーザーからの会議出席依頼を許可する
$false に変更した場合、BookInPolicy で許可するユーザー、グループを指定
True
BookInPolicy会議出席依頼が自動的に承認されるユーザー/グループを指定{}
ProcessExternalMeetingMessages外部ユーザーからの会議出席依頼を自動処理 (承認、辞退) するかどうか
会議出席依頼のメール自体を拒否するものではない
False
既定値は [Exchange 管理センター] から作成した場合の既定値

Get-MailboxCalendarConfiguration

指定したメールボックスについての予定表設定値を表示するには、Get-MailboxCalendarConfiguration コマンドレットを使用します。

構文

Get-MailboxCalendarConfiguration -Identity 'メールボックス名'

サンプル

この例では、Identity パラメーターをエイリアス形式で指定して、User1 のメールボックスのすべての予定表設定値を取得しています。

Get-MailboxCalendarConfiguration -Identity User1 | Format-List

プロパティ情報

プロパティ説明
WorkDays稼働時間 (曜日)
WorkingHoursStartTime稼働時間 (開始時間)
WorkingHoursEndTime稼働時間 (終了時間)
WorkingHoursTimeZoneタイムゾーン

Get-CalendarDiagnosticObjects (Exchange Online のみ)

Outlook の予定表を CSV ファイルとして出力します。
メールボックスで発生する予定表の問題のトラブルシューティングに使用できます。ログは、すべての予定表アイテムと会議メッセージを追跡します。

サンプル

この例では、User1 のメールボックスから、すべてのアイテムの予定表診断ログを取得します。

Get-CalendarDiagnosticObjects -Identity User1 | Export-Csv -NoTypeInformation -Encoding UTF8 -path D:\work\schedule.csv

この例では、User1 のメールボックスから、期間を指定し、件名が「打ち合わせ」と部分一致するすべてのアイテムの予定表診断ログを取得します。

Get-CalendarDiagnosticObjects -Identity User1 -StartDate 1/9/2021 -EndDate 7/10/2022 -Subject "打ち合わせ" -ExactMatch $false | Export-Csv -NoTypeInformation -Encoding UTF8 -path D:\work\schedule.csv
実行結果
NormalizedSubjectDisplayAttendeesAllLocationStartTimeEndTimeCreationTime
打ち合わせUser1秋葉原ビル07/14/2022 05:30:0007/14/2022 06:00:0007/13/2022 23:52:36

※ 一部のみ抜粋しています。

プロパティ情報

プロパティ説明
NormalizedSubject件名
DisplayAttendeesAllメンバー
Location場所
StartTime (GMT)開始時刻
EndTime (GMT)終了時刻
CreationTimeアイテム作成日時

Get-MessageTrace、Get-MessageTraceDetail

Exchange Online でメッセージをトレースするには、Get-MessageTrace コマンドレットを使用します。

  • メールが受診者に配送されたか
  • メールがいつ配送されたか
  • Outlook の [受信トレイ] 以外のフォルダーに配送されていないか
  • 迷惑メール判定されていないか
  • 受信したはずのメールが存在しない原因
  • メールがどこまで正常に送信されたか
  • メールのサイズはどれくらいか

構文

Get-MessageTrace -SenderAddress <送信者メールアドレス> -RecipientAddress <受信者メールアドレス>

サンプル

この例では、送信者、受信者、日時を指定してトレース情報を取得しています。

Get-MessageTrace -StartDate "2022/7/5 14:00" -EndDate "2022/7/10 19:00" -SenderAddress kimura@akbmacha.net -RecipientAddress yamada@abc.onmicrosoft.com |fl

※ StartDate は、当日から 10 日より前に設定することはできません。

実行結果

Message Trace ID : 06b8bdab-f16d-4b4a-f096-08da6143fb90
Message ID : DM6PR04MB65759E539CC9B18B63B47B63FC859@DM6PR04MB6575.namprd04.prod.outlook.com
Received : 2022/07/09 土曜日 0:43:03
Sender Address : kimura@akbmacha.net
Recipient Address : yamada@abc.onmicrosoft.com
From IP : 40.92.18.44
To IP :
Subject : test0709
Status : Delivered
Size : 23223

上記の [Message ID] から更に詳細な情報を取得します。

Get-MessageTrace -MessageId DM6PR04MB65759E539CC9B18B63B47B63FC859@DM6PR04MB6575.namprd04.prod.outlook.com | Get-MessageTraceDetail
実行結果
DateEventDetail
2022/07/09 0:43:04受信メッセージが TYAPR01MB2960.jpnprd01.prod.outlook.com によって TLS1.2 と …
2022/07/09 0:43:06配信メッセージは正常に配信されました。

メールが正常に受信トレイに配信 (Delivered) されていることが分かります。
他のフォルダーに配送されている場合の確認方法はこちらです。

Get-MessageTrace コマンドと Get-MessageTraceDetail コマンドを組み合わせることで、より詳細なトレース情報を取得可能です。

プロパティ情報

プロパティ説明
SenderAddress 送信者
RecipientAddress受信者
StartDate開始日
EndDate終了日
Subject 件名
MessageIDメッセージ ID
Status配送ステータス

Start-HistoricalSearch

Get-MessageTraceDetail より更に詳細な情報を取得するために、Start-HistoricalSearch コマンドレットを使用します。
90 日以内の情報について検索が可能ですが、レポートのステータスが完了になるまでに数時間を要する場合があります。

  • メールが受診者に配送されたか
  • メールがいつ配送されたか
  • 配布グループは展開されたか
  • 配送に失敗した理由は何か
  • 迷惑メール判定されていないか
  • メールがどこまで正常に送信されたか
  • メールのサイズはどれくらいか

構文

<送信者、受信者を指定して実行する場合>

Start-HistoricalSearch -ReportTitle <任意の実行名> -StartDate yyyy/mm/dd -EndDate yyyy/mm/dd -SenderAddress <送信者メールアドレス> -RecipientAddress <受信者メールアドレス> -ReportType MessageTraceDetail -NotifyAddress <通知メールアドレス>

<メッセージ ID を指定して実行する場合>

Start-HistoricalSearch -ReportTitle <任意の実行名> -StartDate yyyy/mm/dd -EndDate yyyy/mm/dd -MessageID "<メッセージ ID>" -ReportType MessageTraceDetail -NotifyAddress <通知メールアドレス>

サンプル

この例では、送信者、受信者、日付/時間を指定して履歴検索を開始しています。

Start-HistoricalSearch -ReportTitle test0715 -StartDate "2022/07/10 18:00" -EndDate "2022/07/15 20:00" -SenderAddress kimura@akbmacha.net -RecipientAddress yamada@abc.onmicrosoft.com -ReportType MessageTraceDetail -NotifyAddress yamada@abc.onmicrosoft.com

この例では、メッセージ ID を指定して検索履歴を開始しています。

Start-HistoricalSearch -ReportTitle test0716 -StartDate "2022/07/05 14:00" -EndDate "2022/07/16 19:00" -MessageID '20171211023303.EB9E9240AD0@sv123.yamareco.com' -ReportType MessageTraceDetail -NotifyAddress yamada@abc.onmicrosoft.com
実行結果
JobIdSubmitDateReportTitleStatusRowsErrorCodeErrorDescription
7ac460a1-525a-42a5-9a31-5b864fdd76a72022/07/21 8:38:13test0716NotStarted0

[JobId] を控えます。

プロパティ情報

プロパティ説明
SenderAddress 送信者
RecipientAddress受信者
StartDate開始日。90日以内の指定が可能
EndDate終了日。90日以内の指定が可能
ReportTitle任意の検索のタイトルを記載
ReportType取得するレポートのタイプ
MessageIDメッセージの ID
NotifyAddress通知メール送信先
承認済ドメインのみ指定可

出力結果の確認

控えた [JobId] を指定し、以下のコマンドを実行して Status が Done となっていることを確認します。

Get-HistoricalSearch -JobId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" | select JobId,Status,FileUrl
実行結果
JobIdStatusFileUrl
7ac460a1-525a-42a5-9a31-5b864fdd76a7Donehttps://admin.protection.outlook.com/ExtendedReport/Download?Type=OnDema…

該当の JobId の Status が Done となったら、FileUrl に記載されている URL より CSV 形式のメッセージ追跡ログをダウンロードします。
※ Status が Done となるまでには数時間かかる場合があります。
FileUrl の URL が全て表示されない場合は以下のコマンドを実行します。

(Get-HistoricalSearch -JobId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx").FileUrl

ダウンロードした CSV ファイルからは以下のような追跡ログが確認可能です。(一部抜粋)

出力結果のプロパティ情報

追跡ログの主なプロパティ情報は以下です。

プロパティ説明
event_idDELIVER:メッセージがローカル メールボックスに配信された
EXPAND:配布グループが展開された
FAIL:メッセージの配信が失敗した
SEND:トランスポート サービス間でメッセージが SMTP で送信された
RECEIVE:トランスポートサービスの SMTP 受信コンポーネントからメッセージが受信された
DSN:配信状態通知 (DSN) が生成された
DUPLICATEDELIVER:重複するメッセージが受信者に配信された
重複は、受信者が複数の入れ子になった配布グループのメンバーである場合に発生する可能性あり。重複するメッセージはインフォメーション ストアによって検出され、削除される。
recipient_address受信者のアドレス
event_id が EXPAND の場合はメーリングリストのメンバーが表示される。
sender_address送信者のアドレス
recipient_count受信者の数
event_id が EXPAND の場合はメーリングリスト内のメンバー数が表示される。
recipient_status配布グループが展開された等の情報
message_subject件名
message_idメッセージ ID
メッセージ ヘッダー内の Message-Id: header field の値。Message-Id: header field が存在しないか、または空白の場合、Exchange は任意の値を割り当てる。
この値は、メッセージの有効期間全体にわたって不変。 Exchange で作成されたメッセージの場合、値は山かっこ (< >) を含む形式になる。
たとえば、<4867a3d78a50438bad95c0f6d072fca5@mailbox01.contoso.com> など。 他のメッセージング システムは異なる構文や値を使用する可能性がある。

Get-CASMailbox

メールボックス上で構成されたクライアント アクセス設定 (プロトコルの状態) を確認するために Get-CASMailbox コマンドレットを使用します。

サンプル

次の例は、User1 というユーザーのクライアント アクセス設定値 (プロトコルの状態) を返します。

Get-CASMailbox -Identity User1

プロパティ情報

プロパティ説明既定
ActiveSyncEnabledActiveSync 有効True
OWAEnabledOWA 有効True
PopEnabledPOP 有効True
ImapEnabledIMAP 有効True
MapiEnabledMAPI 有効True

Search-Mailbox

Search-Mailbox コマンドレットでは、コピー元のメールボックス内のアイテムを検索し、検索結果に合致したアイテムをコピー先のメールボックス内の指定したフォルダーへコピーを行うことが可能です。
特定の条件に合致したメールの削除、PST ファイルへのコピーも可能です。
コマンド実行ユーザーには次の役割が割り当てられている必要があります。

Mailbox Search
Mailbox Import Export

※ Exchange Online ではこのコマンドは 2020/7/1 に廃止となっており、サポートも利用できないようですが、使用は可能です。(2022/7/1 現在)

構文

Search-Mailbox -Identity <コピー元メールボックスのメールアドレス> -TargetMailbox <コピー先メールボックスのメールアドレス> -TargetFolder <コピー結果を格納するフォルダー名>

サンプル

この例は、UserA のメールボックス内のアイテムを、UserB のメールボックスに “Copy-UserA” というフォルダーを作成し格納します。

Search-Mailbox -Identity UserA -TargetMailbox UserB -TargetFolder "Copy-UserA"

この例は、UserA の Recovalbe Items 配下のアイテムを、UserB のメールボックスに “Copy-UserA” というフォルダーを作成し格納します。

Search-Mailbox -Identity UserA -TargetMailbox UserB -TargetFolder "Copy-UserA" -SearchDumpsterOnly

※ -SearchDumpsterOnly オプションは、Recovalbe Items 配下のアイテムのみを検索するオプションです。

次の例は、UserA のメールボックスを検索し、差出人が tanaka@contoso.com であるメッセージを、UserB のメールボックスに “Copy-UserA” というフォルダーを作成し格納します。

Search-Mailbox -Identity UserA -SearchQuery from:tanaka@contoso.com -TargetMailbox UserB -TargetFolder "Copy-UserA"

コメント

タイトルとURLをコピーしました