⏱️

New-SPOSite した直後に更新操作をしようとすると失敗することがある

に公開

SharePoint Online Management Shell を使って New-SPOSite を実行し、サイト コレクションを作成します。その後、CSOM などで何らかの更新操作 (サイト グループの作成など) を行おうとすると、まれにエラーが発生します。

そもそも、SharePoint Online でのサイト コレクションの操作には時間がかかります。完全にタイミングによりますが、運が悪いと 30 分以上かかることもあります。SharePoint Online Management Shell では、操作が完了するまで定期的に状況をポーリングします。なお、操作の完了を待たなくてよい場合は NoWait を指定できます。

CSOM を使う場合でも、同様のサンプルコードが掲示されています。

https://docs.microsoft.com/en-us/previous-versions/office/sharepoint-csom/dn174769(v=office.15)?WT.mc_id=M365-MVP-5002941

しかし、実際にはこれだけでは不十分な場合があります。操作が完了したという結果が返ってきても、サイト コレクションの内部ステータスが Active になっていないことがあります。そのため、New-SPOSite のあとに続けて操作したい場合は、ステータスが Active になるまでさらに待つ必要があります。

$url = "{{site-url}}"
$title = "{{site-title}}"
$owner = "{{site-owner}}"
New-SPOSite -Url $url -Title $title -Owner $owner -StorageQuota 26214400 -LocaleId 1041
while ($true) {
    Start-Sleep -Seconds 5
    if ((Get-SPOSite -Identity $url).Status -eq "Active") {
        break
    }
}

Discussion