コンテンツへスキップ

Microsoft 365 Outlook の予定表で「会議室」の予定の詳細を表示する。

Microsoft 365 Outlook の予定表で「会議室」の予定の詳細を表示する。

Office 365のOutlook で会議室オブジェクトへを作り、予約状況をカレンダーで共有する運用しようとするも、「予定あり」としか表示されていなくて詳細がわからない。誰が予約しているのかもわからないので、調整も不便だったので予定の詳細を表示できるようにしたいと思った次第。

WEB 上でMicrosoft 365 管理センターの画面から、会議室オブジェクトの予定表共有設定を変更できないのかなーと思って調べていましたが、結局のところPower Shell の「outlook モジュール」ってのを使って、会議室オブジェクトの設定変更をするしかないようです。

ざっくりな手順

  1. PowerShell でExchenge のサーバーに接続する。
  2. コマンドラインから、会議室オブジェクトの予定表にユーザーの閲覧権限を付与する。

Exchange Online へ接続した Windows PowerShell 

outlook モジュールをインストールする。

(※初回のみです。一回やっておけば 次回からは不要です。)

ExchangeOnlineManagement 3.1.0

コマンドラインを実行してみる。(管理者権限)

Install-Module -Name ExchangeOnlineManagement

Yにしてみる。

PS C:\Windows\system32> Install-Module -Name ExchangeOnlineManagement

続行するには NuGet プロバイダーが必要です
PowerShellGet で NuGet ベースのリポジトリを操作するには、'2.8.5.201' 以降のバージョンの NuGet
プロバイダーが必要です。NuGet プロバイダーは 'C:\Program Files\PackageManagement\ProviderAssemblies' または
'C:\Users\s-shiraki\AppData\Local\PackageManagement\ProviderAssemblies'
に配置する必要があります。'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force' を実行して
NuGet プロバイダーをインストールすることもできます。今すぐ PowerShellGet で NuGet
プロバイダーをインストールしてインポートしますか?
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"):

Y にしてみる。

信頼されていないリポジトリ
信頼されていないリポジトリからモジュールをインストールしようとしています。このリポジトリを信頼する場合は、Se
t-PSRepository コマンドレットを実行して、リポジトリの InstallationPolicy の値を変更してください。'PSGallery'
 からモジュールをインストールしますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"):

モジュールを確認してみる。

Get-InstalledModule

Get-InstalledModule

PS C:\Windows\system32> Get-InstalledModule

Version    Name                                Repository           Description
-------    ----                                ----------           -----------
3.1.0      ExchangeOnlineManagement            PSGallery            This is a General Availability (GA) r...

PS C:\Windows\system32>

インストールされたっぽい。

次はモジュール読み込み。

(※これも初回のみ、一回やっておけば 次回からは不要です。)

Import-Module ExchangeOnlineManagement

なんかエラーです。。。

about_Execution_Policies

ポリシーを設定する場合はこんな感じのコマンド。

Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope CurrentUser

オフにする場合。

Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser

ポリシーを設定してから、モジュールを再度読み込み直す。


PS C:\Windows\system32> Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope CurrentUser

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_
Policies のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): Y
PS C:\Windows\system32>

読み込みできた。

この信頼されていない発行元からのソフトウェアを実行しますか?
ファイル C:\Program
Files\WindowsPowerShell\Modules\ExchangeOnlineManagement\3.1.0\netFramework\ExchangeOnlineManagement.psm1
の発行元は CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
であり、このシステムで信頼されていません。信頼された発行元からのスクリプトのみを実行してください。
[V] 常に実行しない(V)  [D] 実行しない(D)  [R] 一度だけ実行する(R)  [A] 常に実行する(A)  [?] ヘルプ
(既定値は "D"):R

モジュールからExchange サーバーに接続。

Connect-ExchangeOnline

ログイン画面がキタ。

うまくいったっぽいな。

メールボックスにつながった!

Get-Mailbox

アクセス権を変更。

やっと会議室のアクセス権を。。。

会議室メールボックスの予定表のアクセス許可設定を確認します。
calendar が「予定表」 になる場合もあるらしい。

メールアドレスは「Get-Mailbox」で取得した「Alias」の値でもいける。

Get-MailboxFolderPermission -Identity <会議室のメールアドレス>:\calendar

(このコマンドで、予定表フォルダに設定されているアクセス権を確認できる。)

PS C:\Windows\system32> Get-MailboxFolderPermission -Identity <会議室のメールアドレス>:\calendar

FolderName           User                 AccessRights                      SharingPermissionFlags
----------           ----                 ------------                      ----------------------
Calendar             既定                 {AvailabilityOnly}
Calendar             匿名                 {None}


PS C:\Windows\system32>

予定が表示されるように、アクセス権を変更する。
まあ変更というか、任意のユーザーに対して「予定を確認する権限」を追加している。

Add-MailboxFolderPermission `
-Identity <会議室メールボックスのメールアドレス>:\calendar `
-AccessRights Reviewer `
-User <ユーザーのメールアドレス>
PS C:\Windows\system32> Add-MailboxFolderPermission `
>> -Identity <会議室のメルアド>:\calendar `
>> -AccessRights Reviewer `
>> -User <任意のユーザーのメルアド>

FolderName           User                 AccessRights                      SharingPermissionFlags
----------           ----                 ------------                      ----------------------
Calendar             <ユーザー名が表示>  {Reviewer}


PS C:\Windows\system32>

その他の利用可能なアクセス権

  • Owner: フォルダーの完全な管理権限。
  • Editor: フォルダー内のアイテムを作成、編集、削除可能。
  • Reviewer: フォルダーの内容を閲覧可能。
  • Author: アイテムの作成と自分が作成したアイテムの削除が可能。

複数のユーザーに権限を一括付与する

面倒なので、バッチ処理する場合。

権限を付与するユーザーリストとして、$users 配列を定義しておき、foreach で順番に取り出しながら処理します。

# 権限を付与する対象フォルダー
$folderIdentity = "ayla@contoso.com:\Calendar"

# 権限を付与するユーザーリスト
$users = @("user1@contoso.com", "user2@contoso.com", "user3@contoso.com")

# 一括で権限を付与
foreach ($user in $users) {
    Add-MailboxFolderPermission -Identity $folderIdentity -User $user -AccessRights Editor
    Write-Output "権限を付与しました: $user"
}

アクセス権を変更する前と後

アクセス権を設定する前

アクセス権を設定後

見える。。。

連続で1440 分以上の会議を設定できない場合の対処

リソースだと、面倒な設定だった利するので、1か月くらい会議を設定できるようにしてみる。

このコマンドで、アカウントが持つ 現在の設定値(最大の会議時間)が確認できる。
(「$target_mail」には、対象のメールアドレスが入る。)

Get-CalendarProcessing -Identity $target_mail | fl MaximumDurationInMinutes

上限を引き上げるコマンド。1か月に延長する。(超絶ブラックやん。。。)

Set-CalendarProcessing -Identity $target_mail -MaximumDurationInMinutes 44640

予定が重複したら拒否する設定

会議室は、スケジュールが重複しないようにしたい。

Set-CalendarProcessing -Identity $target_mail `
	-AutomateProcessing AutoAccept `
	-AllowConflicts $false `
	-MaximumConflictInstances 0 `
	-ConflictPercentageAllowed 0

参考リンク

会議室メールボックスの予定表におけるアイテムの表示を変更する方法

代理人が共有メールボックスの場合、Outlook で会議室メールボックスの会議出席依頼を受け入れることができない

Exchange Online PowerShell に接続する

以上です。

(Visited 1,337 times, 1 visits today)
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です