Site cover image

🐧 きまぐれクラウド日記

NotionをヘッドレスCMSとして利用しています。 AzureとMirosoft 365 に関することを備忘録と頭の整理の為に書いていきます。

🐧 Exchange Online で他人の予定表を操作できるようにする(管理者向け)

はじめに

Outlookの予定表を操作している際に「自分は巻き込まれずに◯◯さんの予定だけを操作したい」というケースがあると思います。

自分に対してその方の予定表の「Editer」権限を付与することで、その願いは叶います。

この記事では、その願いを叶えるためのPowerShellを紹介します。

※設定はGUIでも可能ですが、操作される側で設定する必要があるため今回はPowerShellを使用します。

※操作には管理者権限が必要になります。

環境構築

  • PowerShell version: 7.4.0
  • モジュール Exchange Online PowerShell

PowerShellで以下のコマンドを実行して、Exchange Onlineモジュールをインストールします。

既にインストール済みの方は飛ばしても大丈夫です。

# Exchange Onlineモジュールをインストール
Install-Module -Name ExchangeOnlineManagement -Force -AllowClobber

インストールが完了したら、以下のコマンドでモジュールをインポートします。

Import-Module ExchangeOnlineManagement

操作

準備

Exchange Online に接続します。

# 接続、グローバル管理者 or Exchage管理者
Connect-ExchangeOnline

対象のユーザーのメールボックスの地域設定を確認します。

#現在のメールボックスの地域確認
#$mb = "[email protected]"

$mb = <対象となるメールアドレスに書き換えてください>

Get-MailboxRegionalConfiguration -Identity $mb `
    | Select-Object @{
        n="PrimarySmtpAddress"
        e={$mb}
    },DateFormat,Language,TimeFormat,TimeZone

実行結果が以下のように日本仕様になっていれば大丈夫です。

PrimarySmtpAddress : user01@example.com
DateFormat         : yyyy/MM/dd
Language           : ja-JP
TimeFormat         : H:mm
TimeZone           : Tokyo Standard Time

日本仕様になっていない場合以下のコマンドを実行します。

実行後もう一度先程のコマンドで確認してみてください。

#メールボックスの言語や時刻を日本に合わせます。
$mb = <対象となるメールアドレスに書き換えてください>

Set-MailboxRegionalConfiguration `
	-Identity $mb `
	-DateFormat "yyyy/MM/dd" `
	-Language "ja-JP" `
	-TimeFormat "H:mm" `
	-TimeZone "Tokyo Standard Time" `
	-LocalizeDefaultFolderName:$true

権限付与

予定表の編集可能権限を付与します。

このコマンドを実行することで、対象のユーザーの予定表を直接操作することが可能になります。

#$操作されるユーザー = "[email protected]"
#$操作するユーザー = "[email protected]"

$操作されるユーザー = <予定表を操作されるユーザーのメールアドレスに書き換えてください>
$操作するユーザー = <予定表を操作するユーザーのメールアドレスに書き換えてください>

$calendar = $操作されるユーザー + ":\予定表"
	
Add-MailboxFolderPermission `
-Identity $calendar `
-User $操作するユーザー `
-AccessRights Editor

正常に設定されたか確認をします。

#$操作されるユーザー = "[email protected]"
#$操作するユーザー = "[email protected]"

$操作されるユーザー = <予定表を操作されるユーザーのメールアドレスに書き換えてください>
$操作するユーザー = <予定表を操作するユーザーのメールアドレスに書き換えてください>

$calendar = $操作されるユーザー + ":\予定表"
	
Get-MailboxFolderPermission `
-Identity $calendar `
-User $操作するユーザー `
| Select-Object @{
    n="FolderName"
    e={$calendar}
},User,AccessRights

実行結果のAccessRightsが以下のように「Editor」になっていれば大丈夫です。

FolderName                  User              AccessRights
----------                  ----              ------------
user01@example.com:\予定表  user02            {Editor}

操作が全て終了したので、Exchange Online から切断します。

#切断
Disconnect-ExchangeOnline

まとめ・所感

  • 他人の予定表を操作したい場合は「Editor」の権限を付与する。
  • 権限はGUIでも設定可能だが、操作される側のOutlookで設定する必要がある。

参考