🤖

[Outlook]予定表の公開設定を管理者側で一括設定したいとき

2024/06/06に公開

やりたいこと

  • 社内でOutlookでの予定管理を導入すると、デフォルトでは「ほかの人の予定」は「予定あり」としか表示されない。
  • 各社員に設定してもらえば問題ないが、作業依頼コストが高いので管理者側で一括指定したい。

前提

  • 小規模グループでのシステム管理者

作業手順

以下の手順に従う。

PowerShellでExchangeOnlineへ接続

PowerShellを管理者権限で起動

まずモジュールのインストールが要るっぽいので以下を実行。

Install-Module -Name ExchangeOnlineManagement -RequiredVersion 3.5.0

その後インポート

Import-Module ExchangeOnlineManagement

接続

Connect-ExchangeOnline

管理者アカウントで。

メールボックスのチェック&権限変更

まずはメールボックスが表示されるか確認。

Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize Unlimited

あとは参考サイトにあるとおり...と思っていたが:\Calendarなぞ存在しないと怒られる。
ひとまずカレンダーが存在しているか確認。

Get-MailboxFolderStatistics -Identity hoge@huga.co.jp | Where-Object {$_.FolderType -eq "Calendar"}

# ...
# Name : 予定表
# Identity : hoge@huga.co.jp\予定表
# ...

どうやら<メールアドレス>:\予定表 とする必要があるっぽい。

Get-MailboxFolderPermission -Identity "hoge@huga.co.jp:\予定表"

#FolderName           User                 AccessRights                                         SharingPermissionFlags
#----------           ----                 ------------                                         ----------------------
#予定表               既定                 {Reviewer}
#予定表               Anonymous            {None}

全ユーザーの[規定] に設定したいので最終的には以下の通り。

Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize Unlimited | ForEach-Object { Set-MailboxFolderPermission -Identity "$($_.PrimarySmtpAddress):\予定表" -User "規定" -AccessRights Reviewer -ErrorAction SilentlyContinue }

一応最後に接続解除

DisConnect-ExchangeOnline

おわり。

参考サイト

https://learn.microsoft.com/ja-jp/powershell/module/exchange/connect-exchangeonline?view=exchange-ps

https://learn.microsoft.com/en-us/powershell/exchange/exchange-online-powershell-v2?view=exchange-ps#updates-for-version-300-the-exo-v3-module

https://learn.microsoft.com/ja-jp/powershell/module/exchange/set-mailboxfolderpermission?view=exchange-ps#parameters

Discussion