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” 辺りで検索するとたくさんヒットすると思いますので、色々試してみてください。