PowerShellでSet CalendarProcessingを使用する方法
PowerShell の Set CalendarProcessing コマンドレットは、リソースメールボックスのカレンダー設定を管理するために使用できます。このコマンドレットはユーザーのメールボックスには使用できません。そのためには、Set-MailboxFolderPermission コマンドレットを使用する必要があります。
リソースメールボックスの場合、このコマンドレットを使用してカレンダーアテンダント、予約アシスタント、およびその他のカレンダー設定項目を構成することができます。
この記事では、PowerShellでSet-CalendarProcessingコマンドレットを使用する方法について見ていきます。
カレンダー処理を設定する
リソースカレンダーは主に会議室に使用されますが、設備の予約にも使用できます。リソースカレンダーの利点は、通常のカレンダーと比較して、異なる予約ポリシーを設定できることです。
コマンドレットの使い方を見ていく前に、リソースカレンダーに関して私たちが持っているさまざまなオプションを簡単に見ていきましょう。
- 会議リクエストを自動的に承認します
- 会議から件名、コメント、添付ファイル、またはカレンダー以外の項目を削除してください。
- 件名に主催者を追加する
- カレンダーの代理人を設定する
- 予約ウィンドウを設定する(予約できるのは何日前からか)
- 会議の対立行動を定義する
- 定期的な会議の設定を定義する
要件
Set CalendarProcessing コマンドレットは、Exchange Online モジュールの一部です。始める前に、最新の EXO モジュールがインストールされ、Exchange Online に接続されていることを確認してください。
会議室カレンダーの追加
前述のように、cmdletはリソースメールボックスでのみ使用できます。会議室のカレンダーがまだない場合は、まずそれを作成する必要があります。Microsoft 365管理センターのリソース>部屋と設備の下でこれを行うことができます。
私たちは、以下のコマンドを使用して会議室のメールボックスを作成するためにPowerShellも使用します。
New-Mailbox -Name "Board Room" -Roomデフォルトのカレンダー設定を表示するには、Get-CalendarProcessingコマンドレットを使用できます。
Get-CalendarProcessing -Identity BoardRoom | Select *カレンダーオプションの設定
会議室が作成されましたので、設定できるさまざまなオプションを見てみましょう。最後に、一般的に使用されるシナリオのいくつかの例を追加しました。
会議の詳細
会議の詳細は、件名、コメント、添付ファイル、および会議の主催者です。デフォルトでは、すべてがカレンダーアイテムから削除されます。つまり、会議室のカレンダーを開くと、カレンダーアイテムの件名として「空いていません」だけが表示されます。
次のパラメータを使用してこれを変更できます:
- –DeleteSubject – デフォルトは $true。会議の件名を表示するには $false に設定してください。
- –DeleteComments – デフォルトは $true。会議の詳細を表示するには $false に設定します。
- –DeleteAttachments – デフォルトは $true。会議の添付ファイルを保持するには $false に設定します。
- –主催者を件名に追加 – デフォルトは$trueです。$falseに設定すると、主催者が非表示になります。
会議項目の主題を保持するために、次のコマンドを使用できます:
Set-CalendarProcessing -Identity BoardRoom -DeleteSubject $falseメモ
DeleteSubject、DeleteComments、DeleteAttachementsのパラメータは新しい会議にのみ影響します。したがって、DeleteSubjectを$falseに設定すると、既存の会議では件名が表示されません。
AddOrganizerToSubjectはデフォルトで有効になっています。しかし、新しい会議室のカレンダーを見ると、主催者が表示されていないことに気付くでしょう。これは、デフォルトではユーザーがカレンダーに対してAvailabilityOnlyの権限しか持っていないためです。
主催者を表示するには、「デフォルト」ユーザーにカレンダーで少し多くの権限を与える必要があります。これは、Set-MailboxFolderPermission コマンドレットを使って行えます。
Set-MailboxFolderPermission -Identity BoardRoom:\calendar -User Default -AccessRights Reviewer会議を受け入れる
リソースカレンダーの真の強みは、予約ポリシーに基づいて会議のリクエストを自動的に承認する能力です。このポリシーは、設定の組み合わせで作成でき、ニーズに合わせて要件を調整することができます。
最も重要な設定は-AutomateProcessingパラメータです。デフォルトでは、これはAutoAcceptに設定されており、衝突がない場合は会議のリクエストを自動的に承認します。
他の選択肢は:
- なし - カレンダー処理は完全に無効です
- 自動更新 - 会議のリクエストは仮の状態で配置され、代理人が会議を承認または拒否する必要があります。
- 自動承認 - デフォルトオプション; 他のポリシーに基づいて会議が承認されます。
Set-CalendarProcessing -Identity BoardRoom -AutomateProcessing AutoAccept対立を許す
デフォルトでは、競合は許可されていません。単一の会議リクエストにおいては、これはあまり重要な設定ではないことが多く、ユーザーは会議招待を作成する際にオプションがすぐに利用可能かどうかを見ることができます。
しかし、定期的な会議を作成する際、将来のすべての日付を確認して、すでに会議があるかどうかを確認することはできません。このとき、AllowConflictsの設定が役立ちます。
$trueに設定すると、既存の予約と衝突があっても、定期的な会議シリーズが許可されます。デフォルトの$falseオプションの方が実際にはより興味深いです。このオプションは、シリーズ内の衝突の量に応じて、会議シリーズを拒否するだけです。
これに対して、リクエストを拒否するかどうかを判断するために、他の2つの設定を使用します: 許可される衝突割合または 最大衝突インスタンス。
MaximumConflictInstancesの設定は、定期的な会議が持つことができる対立の数を指定します。0の場合、対立を持つことはできません。これは、任意の数に設定できますが、デフォルトは0です。
もう一つのオプションはConflictPercentageAllowedです。これもデフォルトでは0で、あなたが望む任意のパーセンテージに設定できます。
Set-CalendarProcessing -Identity BoardRoom -AutomateProcessing AutoAccept -AllowConflicts $false -MaximumConflictInstances 3 -EnableResponseDetails $true上記のオプションの一つを使用する際は、EnableResponseDetailsを有効にすることをお勧めします。このようにすると、主催者は会議のシリーズでの各拒否の発生について通知を受け取ります。
営業時間のみ
設定 -ScheduleOnlyDuringWorkHours は、リソースが作業時間中のみ予約できることを保証します。この設定が有効であるためには、リソースの作業時間が設定されていることを確認する必要があります。
次のPowerShellコマンドでこれを確認できます:
Get-MailboxCalendarConfiguration -Identity boardroom
Result
Identity WorkDays WorkingHoursStartTime WorkingHoursEndTime WorkingHoursTimeZone
-------- -------- --------------------- ------------------- --------------------
boardroom Weekdays 08:00:00 17:00:00 W. Europe Standard TimeWorkingHoursTimeZoneがユーザーのタイムゾーンと一致することを確認してください。そうしないと、時間が合いません。Set-MailboxCalendarConfiguration コマンドレットを使用して設定を構成できます。このことについてはこの記事で詳しく説明しています。
次の設定を有効にしてください:
Set-CalendarProcessing -Identity BoardRoom -ScheduleOnlyDuringWorkHours $true追加の応答を追加する
Set-CalendarProcessing コマンドレットの便利な機能は、確認メールに追加の返信を追加できることです。たとえば、リソースの使用方法に関する情報を追加したり、他の追加情報を提供したりできます。
これには2つのパラメータを設定する必要があります。最初のものは-AdditionalResponseです。ここでは、追加したいテキストを含む文字列を追加できます。そして、2つ目のものは-AddAdditionalResponseで、実際にレスポンスにテキストを追加するには、$trueに設定する必要があります。
Set-CalendarProcessing -Identity BoardRoom -AdditionalResponse "Make sure to get your own coffee" -AddAdditionalResponse $trueユーザーがリソースを予約すると、確認メールに次のテキストが表示されます:
予約およびリクエストポリシー
Set-CalendarProcessing コマンドレットを見ると、ポリシーの予約に関連する複数のパラメータとリクエストに関連するパラメータが見えます。これらのパラメータは見た目には少し混乱するかもしれませんが、誰が予約リクエストを行えるのか、またそのリクエストが自動的に承認されるかどうかを管理するために使用されます。
オプションを理解するために知っておくべきいくつかの違いがあります。
- ポリシーに基づくリクエスト – 予約ルールに合致する会議リクエスト、例えば、許可されている時間帯や、対立がない場合です。
- ポリシー外のリクエスト – 予約ルールと一致しません。たとえば、他の予約と衝突したり、許可された時間外である場合です。
- BookInPolicy - これらはポリシーに従う場合、自動承認されるユーザーです。
- リクエストポリシー - このグループのユーザーは常に承認を得る必要があります(ポリシーに従っている場合でも)
さらにお手伝いするために、会議リクエストに与えるさまざまなパラメーターの概要を作成しました:
| パラメーター | 効果が $true のとき | 効果が $false のとき |
|---|---|---|
| 全てのポリシーにおける書籍 | すべてのユーザーのポリシー内リクエストは自動的に承認されます。(デフォルト: $true) | すべてのユーザーのポリシーに基づくリクエストは代理の承認が必要です。 |
| ポリシー内のすべてのリクエスト | すべてのユーザーのポリシー内のリクエストは代理人によって承認される必要があります。 | RequestInPolicyにいるユーザーのみが承認が必要です。他のユーザーは自動的に承認されます。 |
| すべてのリクエストはポリシー外 | すべてのユーザーのポリシー外のリクエストは代表者の承認を得る必要があります。 | 承認が必要なのはRequestOutOfPolicyのユーザーのみで、他のユーザーは自動的に却下されます。 |
| ポリシー内の書籍 | 特定のユーザーを定義し、そのポリシー内リクエストは自動的に承認されます。 | これらのユーザーは、代わりにデフォルトの AllBookInPolicy 設定に従います。 |
| ポリシー内の要求 | 特定のユーザーを定義し、そのポリシー内のリクエストは代理人の承認を必要とする。 | これらのユーザーは、代わりにデフォルトの AllRequestInPolicy 設定に従います。 |
| ポリシー外のリクエスト | 特定のユーザーを定義し、そのポリシー外リクエストは代理人の承認を必要とする。 | これらのユーザーは、デフォルトのAllRequestOutOfPolicy設定に従います。 |
いくつかの例を見て、異なるオプションがどのように相互に関連しているかをよりよく理解しましょう。
デフォルトでは、すべてのユーザーからの予約リクエストは、予約ルールに合致する場合に自動的に承認されます。これは、デフォルトで$trueに設定されているパラメーター-AllBookInPolicyによって反映されています:
Set-CalendarProcessing -Identity BoardRoom -AllBookInPolicy $trueすべての会議リクエストに承認が必要です
会議リクエストをすべて代理人によって承認されるようにしたい場合は、パラメータ-AllRequestInPolicyを$trueに設定し、-AllBookInPolicyを$falseに設定する必要があります。また、リソースカレンダーに対して1人以上の代理人が設定されていることを確認する必要があります。
Set-CalendarProcessing -Identity BoardRoom -AllBookInPolicy $false -AllRequestInPolicy $true -ResourceDelegates "john@lazyadmin.nl"ポリシー外の会議リクエストには承認が必要です
デフォルトでは、ポリシー外の会議リクエストは自動的に拒否されます。さて、ユーザーが会社の車を予約できるリソースカレンダーがあるとします。その車は勤務時間中のみ使用できるため、-ScheduleOnlyDuringWorkHoursを$trueに設定しています。
ユーザーが勤務時間外に車を予約したい場合、承認を求める必要があります。これを解決するために、パラメータ -AllRequestOutOfPolicy を使用できます。これを $true に設定すると、ユーザーは承認がリソースメールボックスの代理人によって必要なポリシー外リクエストを提出することができます。
Set-CalendarProcessing -Identity Car02 -AllRequestOutOfPolicy $true -ResourceDelegates "john@lazyadmin.nl" -ScheduleOnlyDuringWorkHours $true特定のユーザーのみ予約を許可する
-BookInPolicy および -RequestInPolicy パラメータは、どのユーザーがリソース予約カレンダーを作成/使用できるかを設定することを可能にします。
例えば、営業マネージャーのみが使用できる会議室や特定のユーザーのみが予約できるリソースがある場合、AllBookInPolicyを$falseに設定し、予約リクエストを行うことができるユーザーを指定することができます。
BookInPolicyパラメータは追加の承認が不要な場合に使用し、RequestInPolicyパラメータはリクエストが代理人による承認を必要とする場合に使用します。
Only allow Adele and Megan to book the company car
Set-CalendarProcessing -Identity Car02 -AutomateProcessing AutoAccept -BookInPolicy "adelev@lazyadmin.nl","meganb@lazyadmin.nl" -AllBookInPolicy $false
Only allow members of the group "Sales" to book the conference room and require approval by delegate
Set-CalendarProcessing -Identity "Sales Room" -AutomateProcessing AutoAccept -RequestInPolicy "Sales Management" -AllBookInPolicy $false -ResourceDelegates "john@lazyadmin.nl"営業グループのメンバーでないユーザーが会議室の予約を試みた場合、リクエストが拒否されたという自動メールが送信されます。
すべての設定を組み合わせる
さまざまなオプションについて議論したので、完全でより複雑な構成を見て、可能性を示してみましょう。
以下に、会議室のためのset calendarprocessing設定を示します。設定をより読みやすくするためにスプラッティングを使用しました。
$roomSettings = @{
"Identity" = "Board Room"
"ScheduleOnlyDuringWorkHours" = $true
"EnforceCapacity" = $true
"AllowConflicts" = $false
"MaximumConflictInstances" = 3
"BookingWindowInDays" = 90
"EnableResponseDetails" = $true
"AutomateProcessing" = "AutoAccept"
"BookInPolicy" = "Management"
"AllBookInPolicy" = $false
"RequestInPolicy" = "Sales Management"
"AllRequestOutOfPolicy" = $false
"RequestOutOfPolicy" = "Management"
"ResourceDelegates" = "jane@lazyadmin.nl"
}
Set-CalendarProcessing @roomSettings設定を分解してリソースカレンダーへの影響を見てみましょう:
- 勤務時間内のみ → この部屋は勤務時間内にのみ予約できます (ScheduleOnlyDuringWorkHours=$true).
- オーバーブッキングなし → 部屋は収容人数を超えて予約できません
(EnforceCapacity=$true). - 競合する会議はありません → この部屋では ダブルブッキングは許可されません
(AllowConflicts=$false). - 制限された衝突の例外 → 衝突が許可される場合、最大3つの重複するインスタンスが許可されます (MaximumConflictInstances=3).
- 予約期間: 90日 → ユーザーは最大で90日前まで予約することができます (BookingWindowInDays=90).
- 詳細な回答を送信する → リクエストが承認または拒否された場合、返信メールには詳細が含まれます (EnableResponseDetails=$true).
- 自動承認の予約 → システムはポリシーに適合する会議リクエストを自動的に処理し、承認します (AutomateProcessing=“AutoAccept”).
誰が部屋を予約できますか?
- 管理者は自動的に予約できます → 彼らのリクエストは、予約ルールに従う限りすぐに承認されます (BookInPolicy=“管理者”).
- 営業管理は承認が必要です → たとえ彼らのリクエストが規則に従っていても、代理人の承認が必要です (RequestInPolicy=“営業管理”).
- 他の全員がブロックされています → AllBookInPolicy=
$falseのため、BookInPolicyまたはRequestInPolicyに含まれていないユーザーは、部屋をまったく予約できません。 - 管理職はポリシーに反する宿泊予約を要求できますが、承認が必要です → 管理職が許可されたルールの外で予約しようとする場合でも、代理人の承認が必要です (ポリシー外予約=“管理職”)。
誰がリクエストを承認しますか?
- ジェーン (@lazyadmin.nl) は代理人です → 彼女は手動審査を必要とするリクエストの承認を担当します (ResourceDelegates=“jane@lazyadmin.nl“).
まとめ
Microsoft 365管理センターでリソースメールボックスのいくつかのオプションを設定できますが、set-calendarprocessingコマンドレットを使用すれば、設定を細かく調整することができます。
この記事がリソースカレンダーの設定に役立ったことを願っています。質問があれば、下にコメントしてください。


