オンプレミスの Exchange と Microsoft 365 の両方で、予定表の権限を管理するのは少々難しい場合があります。特に、複数のユーザーや共有メールボックスに対して設定する必要がある場合はなおさらです。自分の予定を誰かに知らせたい場合でも、秘書に完全な編集権限を与えたい場合でも、設定方法を知っておくと多くの手間を省くことができます。権限が不足していたり、正しく動作しなかったりして、予定表の情報が正しく表示されなかったり、ユーザーが本来見るべきものを見ることができなかったりすることがあります。朗報です。この問題は、Outlook の GUI または PowerShell コマンドを使って解決できる方法がいくつかあります。PowerShell コマンドは、自動化や一括更新を行う場合に便利です。基本的に、これらの手順をいくつか実行することで、権限設定がより明確になり、共有がスムーズに機能し、空き時間などの空き情報の表示がより安定するようになります。ただし、更新や構成変更後には、適切な設定を切り替えたり、権限を再適用したりする必要がある場合もあることを覚えておいてください。何かおかしい点があると思われる場合は、サーバー設定をより深く調べる前に、必ずユーザー権限を確認してください。
Exchange と Microsoft 365 のカレンダー権限と空き時間情報設定を修正する方法
Outlook と Outlook Web App で予定表を共有する方法
Outlookから直接カレンダーを共有するのは通常簡単ですが、ここで混乱が生じることがあります。Exchangeがカレンダーを特別なフォルダーのように扱うのが少し奇妙で、OutlookまたはWeb版Outlook内で権限を調整する必要があります。誰かがあなたのスケジュールを表示できない、またはあなたが他の人のカレンダーを編集できないと言われた場合は、以下の手順に従ってください。
- Outlookデスクトップ版またはOutlook Web App(Outlook on the web)を開きます。サイドバーでカレンダーを見つけて右クリックし、「共有とアクセス許可」に進みます。
- 権限ウィンドウで、既にアクセス権を持っているユーザーを確認できます。ユーザーを追加する場合は、「追加」をクリックして、相手のメールアドレスを入力してください。
- 権限レベルを選択します。例えば、「すべての詳細を表示可能」、「編集可能」、「忙しいときにのみ表示可能」などです。より多くの権限を付与したい場合は、それに応じて選択してください。設定によっては、デフォルトで表示される情報が限られている場合があるため、ここで権限をアップグレードする必要があるかもしれません。
- 権限を設定したら、「送信」または「共有」をクリックします。受信者には、承認用のリンクが記載された招待メールが届くことがよくあります。簡単ですよね?しかし、権限が反映されなかったり、うまく動作しなかったりする場合もあります。
この方法は、一度限りの簡単な共有や、自分の空き時間情報を誰かに確認してもらう必要がある場合に適しています。一部のパソコンでは、権限が正しく保存されていない場合やOutlookが完全に更新されていない場合、この共有がうまく機能しないことがあります。
PowerShell でカレンダー権限を割り当てる – GUI では不十分な場合
多数のユーザーを管理している場合や、大規模な権限設定が必要な場合は、PowerShellが最適です。特に数十、数百のメールボックスがある場合は、すべてを手動で行うのは少し面倒です。また、権限が同期されなくなることもありますが、PowerShellで再適用するだけですぐに修正できます。
これを実行するには、組織のExchange環境に接続する必要があります。ここからは少し技術的な話になります。
- オンプレミスの Exchange サーバーの場合は、次のようなコマンドで接続できます。
$ExchAdmCred = Get-Credential $Session = New-PSSession -ConfigurationName Microsoft. Exchange -ConnectionUri http:///PowerShell/ -Authentication Kerberos -Credential $ExchAdmCred Import-PSSession $Session - Exchange Online (Microsoft 365) の場合は、公式モジュールを使用します。
Connect-ExchangeOnline -UserPrincipalName [email protected]
接続したら、次の方法で現在の権限を確認します。
Get-MailboxFolderPermission -Identity JohnDoe:\Calendar
注: フォルダ名はロケールによって異なります。例えば、ドイツ語では となりますKalender。権限を追加する場合は、次のようにします。
Add-MailboxFolderPermission -Identity JohnDoe:\Calendar -User JaneSmith -AccessRights Editor
編集者をレビュー担当者に変更して読み取り専用にします。権限を取り消すには、以下を実行します。
Remove-MailboxFolderPermission -Identity JohnDoe:\Calendar -User JaneSmith
PowerShellでは一括エクスポートも可能です。すべての権限をCSVファイルにエクスポートすれば、どこに何が設定されているかを確認できます。すべてのメールボックスの権限を取得する簡単なスクリプトを以下に示します。
$Mailboxes = Get-Mailbox -ResultSize Unlimited foreach ($mb in $Mailboxes) { Get-MailboxFolderPermission -Identity "$($mb. UserPrincipalName):\Calendar" | Select-Object @{Name="UserPrincipalName";Expression={$mb. UserPrincipalName}}, FolderName, User, AccessRights | Export-Csv C:\PS\Calendar_permissions.csv -NoTypeInformation -Append }
こうすることで、Outlook を何度もクリックしなくても、誰がどのような権限を持っているかを正確に把握できます。
共有可能なカレンダーの空き時間情報を完全に表示する方法
多くの人は、同僚やリソースルームの空き状況は、詳細を漏らさずに表示したいだけでしょう。Default=AvailabilityOnly基本的なスケジュール設定にはデフォルト設定で十分ですが、会議のテーマや場所など、より詳しい情報が必要な場合もあります。
ユーザーが共有ルーム カレンダーの詳細情報を表示できるようにするには、次のようなコマンドを実行します。
Foreach ($mb in (Get-Mailbox -ResultSize Unlimited) | Where {$_. ResourceType -eq "Room"}) { Add-MailboxFolderPermission -Identity "$($mb. Name):\Calendar" -AccessRights AvailabilityOnly -User Default }
実際の件名を人々に見てもらいたい場合は、カレンダーの処理設定を微調整する必要があります。
Set-CalendarProcessing room123 -DeleteComments $false -DeleteSubject $false -AddOrganizerToSubject $false
Exchange Onlineの管理ポータルでは、「組織」 → 「共有」でカレンダーの共有ポリシーを設定することもできます。ここでは、社内または社外で共有する情報の量を指定できます。空き時間情報のみを共有するか、件名や場所などのより詳細な情報を共有するかを選択できます。
もちろん、権限が切り捨てられたり、変更後すぐに適用されなかったりする場合があります。そのような場合は、Outlook を再起動するか、キャッシュをクリアすると解決します。また、特にポリシーや共有ポリシーが最近更新された場合は、サーバー側の権限を更新する必要がある場合もあります。
カレンダーの権限を修正するには、Outlookで手動で行う場合でも、PowerShellを使って一括処理する場合でも、適切な権限が割り当てられていることを確認することが重要です。権限は予期せずリセットまたは更新されることがあるため、権限を再確認して再適用することが、表示に関する問題を解決する鍵となる場合があります。もちろん、Microsoftはそれを少し複雑にする必要があるからです。