💻

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

2022/01/01に公開

SharePoint Online Management Shell を使って New-SPOSite したあとに、CSOM などで何らかの更新操作 (たとえばサイト グループを作ったりするなど) をしようとするとエラーになることがあります。

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

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
    }
}
脚注
  1. 操作の完了を待たなくていい場合は NoWait を指定することもできます。 ↩︎

Discussion