共有メールボックスのメール送信者を確認する – PowerShell 利用
前々回、 「共有メールボックスのメール送信者を確認する」 にて、共有メールボックスの送信者を Microsoft 365 の監査ログから確認する方法をご紹介しました。今回は同様の内容を PowerShell を用いて確認する方法をご紹介します。
Exchange Online への接続
まずは PowerShell を用いて Exchange Online に接続します。
-
- Exchange Online モジュールをインストールします。
すでにモジュールがインストール済みでも、モジュールがバージョンアップされている可能性があるため、上書きインストールを行ってください。通常のインストール、上書きインストールともに下のコマンドレットで行えます。
Install-Module ExchangeOnlineManagement -Force
- Exchange Online に接続します。
Connect-ExchangeOnline
エラーが発生した場合は以下を実行後、再度接続してください。
Set-ExecutionPolicy RemoteSigned -Scope Process
管理者アカウントとパスワードを入力し Microsoft 365 にサインインしてください。
- Exchange Online モジュールをインストールします。
PowerShell でメール送信者を確認
監査ログ画面での確認方法と同様に検索を行います。
- SendAs のログを変数に格納します。
SendAs は送信者権限を使ったメッセージの送信に対するログです。StartDate と End Date には確認したいメールの送信日の範囲を指定してください。
$SendAsLogs = Search-UnifiedAuditLog -RecordType ExchangeItem -StartDate "2024/04/01" -EndDate "2024/04/29" -Operation "SendAs" -ResultSize 5000
- 変数に格納したログの中からメールの送信日時 (CreationTime)、メールの送信者 (UserID)、共有メールボックスのメールアドレス (SendAsUserSmtp)、メールのタイトル (Mail Title) を取得し、表示します。
$SendAsLogs.AuditData | ConvertFrom-Json | select CreationTime,UserID,SendAsUserSmtp,@{Name = 'Mail Title'; Expression = {$_.Item.Subject}} -Unique
上のコマンドレットをベースにカスタマイズしてみました。
【結果を CSV ファイルに保存】$SendAsLogs.AuditData | ConvertFrom-Json | select CreationTime,UserID,SendAsUserSmtp,@{Name = 'Mail Title'; Expression = {$_.Item.Subject}} -Unique | Export-Csv -Encoding UTF8 -NoTypeInformation -Path "C:\Work\Auditlog_SendAs.csv"
【表示する共有メールボックスを指定】
$SendAsLogs.AuditData | ConvertFrom-Json | Where {$_.SendAsUserSmtp -eq <共有メールボックス メールアドレス>} | select CreationTime,UserID,SendAsUserSmtp,@{Name = 'Mail Title'; Expression = {$_.Item.Subject}} -Unique
注意事項として、メールの送信日時 (CreationTime) は日本時間ではなく、UTC 時間です。メールの送信日時が 08:01:48 と表示されている場合、日本時間に変換すると 17:01:48 に送信したことになります (日本時間との差は +9時間)。
監査ログ画面でもメール送信者は確認できますが、確認のたびに監査ログから検索を行うのは少々面倒です。PowerShell でスクリプトを作成しておけば、操作の手間が省けますね。PowerShell を使ったことがないという方もぜひこの機会にお試しください。
Microsoft 365 管理者向けコース
- CI505-H Microsoft 365 運用管理
Microsoft 365 の運用管理において必要となる知識を習得し、行うべき設定項目を理解いただけます。アカウントやデバイス管理の必須となる Azure AD に対する必須知識から、Exchange Online、Microsoft Teams、SharePoint Online、OneDrive for Business などの各サービスに対して行うべき設定、推奨される設定、理解しておきたいしくみなど、運用管理に必要となる内容を基本から、運用にもとめられるレベルまで解説します。また入退社や人事異動への対応方法、監査ログや検疫といったセキュリティ・コンプライアンス対策のために行うべきこともあわせてご紹介します。 - CI506-H Microsoft 365 デバイス管理
Azure AD や Microsoft Intune を利用したデバイスの登録や管理、アプリの配布、デバイス情報を利用したセキュリティ対策など、デバイス管理手法を解説します。管理デバイスにおける Microsoft 365 利用時のセキュリティ対策など、よりセキュアな環境で作業ができるように行うべき内容をあわせてご紹介します。実機 (iPhone をご用意) を使用した実習が含まれているためモバイルデバイスの管理方法について実際にハンズオンにて動作を確認しながらご理解いただけます。 - CI507-H Microsoft 365 情報保護とコンプライアンス
Microsoft 365 の管理者を対象に、ファイルやメール、チームといった Microsoft 365 内の情報を保護するために必要な基本知識や利用すべき機能、および利用方法を解説します。 - CI508-H Microsoft 365 PowerShell による管理効率化
Microsoft 365 に対する運用管理で PowerShell を利用するための基本や Exchange Online、SharePoint Online、Microsoft Teams を設定するための便利なコマンドライン、設定を自動化するためのスクリプトの作成方法など、PowerShell による Microsoft 365 管理の基本から必須スキルを運用管理で利用できるサンプルをもちいて解説します。また、今後利用が推奨される Microsoft Graph PowerShell SDK の利用方法もあわせて解説します。