PowerShellでOffice365を操作する~予定表のデフォルトの公開範囲を設定しよう

Office365
PowerShellでOffice365を操作する~予定表のデフォルトの公開範囲を設定しよう

前回は、PowerShell で Office365 のユーザーの一括登録を行いました。

今回は、PowerShell で予定表のデフォルトの公開範囲設定を行いたいと思います。

初期状態の公開範囲では、公開される情報が少なすぎてほとんど意味を為していません。それをCSVファイルを使って一括で変更します。

ちなみに SharePoint ではなく、Exchange の予定表です。

予定表の公開範囲とは

内緒

Office365 の予定表の主目的は、自分の予定を他人に知ってもらうことです。

特に上の立場の人はどんどん入力して公開すべきです。上の立場の人は関係者の報告・相談を受けて決断することが仕事です。お互い仕事を効率よく進めるためにも、自分の所在を常にはっきりさせておきましょう。

ということで、予定表は他人に公開することができます。

しかし、デフォルトでは予定の有無しか知ることができません。

AvailabilityOnly:空き時間情報を公開する

これではどこで何をしているのかさっぱり分かりませんので、公開する意味がほとんどありません。

最低限、いつどこで何をしているのか分かるようにすべきでしょう。

LimitedDetails:空き時間情報、件名、場所を公開する

個々人に公開範囲を設定してもらうことも可能なのですが、手順書を作る必要があったり、なかなか設定してくれないなど、おすすめできません。

そこで PowerShell を使って一度に設定してしまいましょう。

Exchange Onlineへの接続

接続する

ユーザー登録の時は MS Online への接続で良かったのですが、Exchange の予定表を操作するには Exchange Online への接続が必要です。

管理者で PowerShell を起動する

いつも通りです。

PowerShell の実行ポリシーを設定する

現在のポリシーを確認します。

> Get-ExecutionPolicy

ポリシーが Unrestricted もしくは RemoteSigned ではない場合、後述の処理ができません。その場合、以下のコマンドで RemoteSigned に設定します。

> Set-ExecutionPolicy RemoteSigned

資格情報オブジェクトを作成する

MS Online への接続のときと同じです。

> $credential = Get-Credential

ダイアログが表示されるので、IDとパスワードに Office365 の管理者アカウントを入力します。

Exchange Onlineに接続する

> $exchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $credential -Authentication Basic -AllowRedirection
> Import-PSSession $exchangeSession

警告が表示されますが、気にしなくてよいです。

Exchange Onlineドメインへの接続確認

以下のコマンドを実行してドメイン情報が表示されれば、正常に Exchange Online 接続できたことが確認できます。

> Get-AcceptedDomain

公開範囲を設定する

公開する

注意すること

ログインしたことがあるユーザーのみ有効

公開範囲の設定は、Office365 にログインしたことがあるユーザーに対して有効です。

ログインしたことが無いユーザに対して行った場合、メールアドレス:\予定表 が見つからないエラーが発生します。

これは予定表に限らず、Exchange Online 全般に言えることです。

新規アカウントをユーザーに通知してから1~2日経った後で行ったほうがよいでしょうね。

既に登録した予定表も影響を受ける

設定前にユーザーが登録した予定も、同じ公開範囲となります。

どうしても空き時間だけしか公開したくないユーザーがいる場合(そんなケースがあるか疑問ではありますが・・・)、そのユーザーを一括設定の対象から外すなど対策を行う必要があります。

設定するユーザーのCSVファイルを作成する

フォーマット

Identity
メールアドレス(Office365のアカウント):\予定表

Identity
taro.azasu@a-zs.co.jp:\予定表
hanako.kawasaki@a-zs.co.jp:\予定表

文字コード

UTF-8で作成します。
改行コードは CR + LF でよいです。

コマンド

> Import-CSV "CSVファイルのフルパス" | Set-MailboxFolderPermission -User Default -AccessRights LimitedDetails

c:\Users.csv に設定対象ユーザーのCSVファイルを配置した場合は

> Import-CSV "c:\Users.csv" | Set-MailboxFolderPermission -User Default -AccessRights LimitedDetails

となります。

おまけ – 設定対象が1人だけの場合

あまり使うことはありませんが、設定対象が1人だった場合はCSVファイル無しで設定できます。

> Set-MailboxFolderPermission -Identity 設定したいOffice365のアカウント:\予定表 -User Default -AccessRights LimitedDetails

PowerShellのセッションを終了する

設定作業が終了したら、以下のコマンドで必ずセッションを終了しましょう。

> Remove-PSSession $exchangeSession

最後に

今回は、全ユーザーから LimitedDetails の公開範囲で見えるように設定を行いました。これでほとんど意味のない予定表公開は改善されると思います。

実は、特定のユーザーから見られた場合の公開設定もできます。公開範囲も様々あり、編集権限を与えることも可能です。

“Set-MailboxFolderPermission”、”User”、”AccessRights” 辺りで検索するとたくさんヒットすると思いますので、色々試してみてください。