フォルダの表示言語に依存しないでアクセス権限を設定する方法について
今回は Exchange コマンド レットで「予定表」フォルダにアクセス権限を設定する際に "Calendar" や "予定表" などフォルダの表示言語に依存しないで実施する方法をご紹介いたします。
Exchange Server 2010 / 2013 や Exchange Online では Set-MailboxFolderPermission などを利用することで管理者から「受信トレイ」や「予定表」などのフォルダにアクセス権限を設定する機能が提供されています。
例えば、メールボックス 'userA' の「予定表」フォルダに設定されている '既定' のアクセス権限を変更する場合、以下のように対象メールボックスで使用されているフォルダの表示言語に合わせて Identity で指定する値を切り替えて実行する必要があります。
[フォルダの言語が英語で構成されている場合]
Set-MailboxFolderPermission -Identity "userA:\Calendar" -User -User "Default" -AccessRights Reviewer
[フォルダの言語が日本語で構成されている場合]
Set-MailboxFolderPermission -Identity "userA:\予定表" -User "Default" -AccessRights Reviewer
管理者が手動で「予定表」のアクセス権限を変更するようなシナリオでは対象メールボックスで使用されているフォルダの表示言語を知らなくても Try & Error で対応することもできます。
具体的には "予定表" でアクセス権限の設定を試みて「フォルダが見つからない」などのエラーが発生すれば "Calendar" に切り替えてアクセス権限の設定を再度実施するという方法です。
ただし、スクリプトなどで機械的に処理させるシナリオでは上記のような Try & Error で実施するように構成するのは難しいと思います。
なお、Set-MailboxFolderPermission の Identity では「<Mailbox>:\<フォルダ名>」以外に「<Mailbox>:<フォルダ ID>」で指定することも可能となっています。
「フォルダ ID」に関しては Get-MailboxFolderStatistics などで取得することができますので、これらを組み合わせて利用することでメールボックスで使用されているフォルダの表示言語に依存しないで「予定表」などのフォルダにアクセス権限を設定することができます。
以下のサンプルは Get-MailboxFolderStatistics で対象メールボックスの「予定表」フォルダの「フォルダ ID」を取得し、その情報を利用して Set-MailboxFolderPermission で「予定表」フォルダのアクセス権限を変更する例となります。
1: $Mailbox = "<対象メールボックス>"2: # 「予定表」フォルダに関する情報を取得 (ユーザーが個別に作成した「予定表」フォルダは除外)3: $Calendar = Get-MailboxFolderStatistics -Identity $Mailbox -FolderScope Calendar | where { $_.FolderType -eq "Calendar" }4: foreach ($Folder in $Calendar) {5: # Identity で指定する文字列を生成6: $CalendarPath = $Mailbox + ":" + $Folder.FolderId7: # '既定' のアクセス権限を Reviewer に変更8: Set-MailboxFolderPermission -Identity $CalendarPath -User "Default" -AccessRights Reviewer9: } |
注: 左に記載している行番号は実際にサンプルを実行する際には含めないでください。
- 参考情報
Title: Get-MailboxFolderStatistics
URL: https://technet.microsoft.com/ja-jp/library/Aa996762(v=EXCHG.150).aspx
Title: Set-MailboxFolderPermission
URL: https://technet.microsoft.com/ja-JP/library/Ff522363(v=EXCHG.150).aspx