はじめに
Exchange Online 環境で他人の予定表を見ようとした際、既定では相手の予定表にどんな予定が入っているか見ることはできません。
この状態ですと少々不便ですので、「既定のアクセス権限」を変更して他人の予定表を見ることができるように変更します。
PowerShellで設定します。
環境構築
- PowerShell version: 5.1.19041.2673
- モジュール Exchange Online PowerShell
PowerShellウィンドウで以下のコマンドを実行して、Exchange Onlineモジュールをインストールします。
既にインストール済みの方は飛ばしても大丈夫です。
# Exchange Onlineモジュールをインストール
Install-Module -Name ExchangeOnlineManagement -Force -AllowClobber
インストールが完了したら、以下のコマンドでモジュールをインポートします。
Import-Module ExchangeOnlineManagement
予定表の既定のアクセス権変更
テナント内のすべてのメールボックスの既定のアクセス権を「Reviewer」に変更します。
使用するPowerShell
ExchangeOnlineに接続します。権限は「グローバル管理者」または「Exchage管理者」が必要になります。
# 接続、グローバル管理者 or Exchage管理者
Connect-ExchangeOnline
メールボックスを取得します。会議室や備品は除外したいという場合はフィルターをかけてください。
# すべてのメールボックスを取得
$AllMailBox = Get-EXOMailBox
共有メールボックスのみの情報を取得する際は以下のように実行します。
# 共有メールボックスの情報を取得
$SharedMailBox = Get-EXOMailBox -RecipientTypeDetails SharedMailbox
現在のメールボックスのタイムゾーンと言語を確認します。
# 現在のメールボックスのタイムゾーンと言語を確認
$settings = foreach($MailBox in $AllMailBox)
{
Get-MailboxRegionalConfiguration `
-Identity $MailBox.PrimarySmtpAddress `
| Select-Object @{
n="DisplayName"
e={$MailBox.DisplayName}
},@{
n="PrimarySmtpAddress"
e={$MailBox.PrimarySmtpAddress}
},Language,DateFormat,TimeFormat,TimeZone
}
メールボックスのタイムゾーンと言語を「日本」に変更します。
これは英語になっている場合があるので変更をします。
# メールボックスのタイムゾーンと言語を日本に変更
foreach($MailBox in $AllMailBox)
{
Set-MailboxRegionalConfiguration `
-Identity $MailBox.PrimarySmtpAddress `
-DateFormat "yyyy/MM/dd" `
-Language "ja-JP" `
-TimeFormat "H:mm" `
-TimeZone "Tokyo Standard Time" `
-LocalizeDefaultFolderName:$true
}
全メールボックスの予定表を規定のユーザーから参照できるように変更します。
これを行うことで他のユーザーの予定表にどんな予定が入っているか確認することができます。
# 予定表の参照権限を既定のユーザーに与える
foreach($MailBox in $AllMailBox)
{
$calendar = $MailBox.PrimarySmtpAddress + ":\予定表"
$calendar
Set-MailboxFolderPermission `
-Identity $calendar `
-User "既定" `
-AccessRights reviewer
}
すべての予定表の参照権限を確認をします。
# 確認
$yotei = foreach($MailBox in $AllMailBox)
{
$calendar = $MailBox.PrimarySmtpAddress + ":\予定表"
Get-MailboxFolderPermission `
-Identity $calendar `
-User "既定" `
| Select-Object @{
n="FolderName"
e={$calendar}
},User,AccessRights
}
証跡としてCSVファイルを作成します。
「-Encoding utf8BOM」で文字化けする場合は「-Encoding utf8」に書き換えて実行します。
# 確認用のCSVファイル作成
$yotei | export-CSV -Path "保存先のパス+作成するファイル名" -Append -Encoding utf8BOM
以下のように出力されていれば予定表の既定のアクセス権が「Reviewer」に変更されています。
FolderName User AccessRights SharingPermissionFlags
---------- ---- ------------ ----------------------
予定表 既定 {Reviewer}
予定表 既定 {Reviewer}
予定表 既定 {Reviewer}
予定表 既定 {Reviewer}
予定表 既定 {Reviewer}
予定表 既定 {Reviewer}
予定表 既定 {Reviewer}
予定表 既定 {Reviewer}
予定表 既定 {Reviewer}
予定表 既定 {Reviewer}
予定表 既定 {Reviewer}
予定表 既定 {Reviewer}
Exchange Online から切断します。
# Exchange Onlineから切断する
Disconnect-ExchangeOnline -Confirm:$false
まとめ、所感
- Microsoft 365ではデフォルトで他人の予定表のタイトルを見ることができないので、この設定はほぼマストです。
- 特定のユーザーの予定表は他ユーザーから見れないようにしたいという要件がある場合は「Set-MailboxFolderPermission」でアクセス権を変更します。