仕事でSharePoint管理シェルを使用してSharePointのサイト容量上限と外部共有ポリシーを
設定しようとした時に少しはまったのでメモとして残します
SharePoint管理シェルのインストール等は今回は触れませんので各自実施してください
この記事で使用しているモジュールのバージョンは 16.0.23109.12000 となります
SharePointサイトに対して設定をする
対象サイトの変更前のステータスを確認する
まずは、対象サイトのステータスを以下のコマンドを使用して確認します
# 必要な結果だけを取得
Get-SPOSite $TARGET_SITEURL | select StorageQuota, SharingCapability
結果として容量上限が10GB、外部共有は誰とでも共有できるが返ってきました
サイトの設定を変更する
対象となるSharePointサイトに対して、サイト容量上限と外部共有ポリシーを管理シェルから設定します。サイト容量上限を5GB、外部共有をできなくします
Set-SPOSite -Identity $TARGET_SITEURL -StorageQuota 5000 -StorageQuotaWarningLevel 4000 -SharingCapability Disabled
上記コマンド実行後、エラーが発生していないことを確認し、再度対象サイトのステータスを確認してみます
外部共有設定は変更されましたが、なんとサイト容量上限が変わっていません
エラーが出ているわけでもないのでめちゃめちゃ困りました
結果どうすればよかったのか
容量上限と外部共有設定を分けて実施するようにしたところ、それぞれの設定がきちんと反映されることが確認できました
# なぜか1回のコマンドで設定できなかったので、2回に分ける
Set-SPOSite -Identity $TARGET_SITEURL -StorageQuota 5000 -StorageQuotaWarningLevel 4000
Set-SPOSite -Identity $TARGET_SITEURL -SharingCapability Disabled
なぜコマンドを分けなければきちんと設定されないのかは調べてもわからなかったのですが、
バグだろうと思っています。それにしても、これには困ったものでした
もしかしたら、他のプロパティも2か所同時に設定しようとすると思った通りの動作をしない可能性があるので、その場合もコマンドを2つに分けてみるのがいいかもしれません