Oh! 365 blog

Office 365 と生きていく

SharePoint Online のサイト URL リネーム機能を使用する

MC193275 で通知されていた SharePoint Online のサイト URL のリネーム機能が使用できるようになっていました。Admin Center と PowerShell の両方で使えるようになっていたので、今回は PowerShell の方法を試してみました。

それでは内容に進みましょう!


1. サイトリネーム機能について

まず、この機能は以下の番号でメッセージ センターよりアナウンスされています。


MC193275 : SharePoint Site URL Rename

 

背景としては、ユーザーが直接開発部門へのフィードバックが可能な、UserVoice に下記アイデアが投稿された結果、多くのユーザーから Vote を集めたことで開発に至った機能のようです。4000 Vote 以上集めてますね

Enable renaming the site collection URLs – SharePoint Experiences in Office365 and/or SharePoint Server

 

ユーザーのフィードバックを重視する姿勢はうれしいですね。
この機能は 2019 年 10 月末を目途に全テナントへの展開が完了する予定のようです。既に関連した公式記事も公開されているため、本記事は公式記事を参照しつつまとめます。

2. Start-SPOSiteRename コマンドを使用したサイトのリネーム
 

本機能は新しい UI のSharePoint 管理センター、および、PowerShell のコマンドで実施できます。

画面操作で行う場合

新しい SharePoint 管理センターの、以下の [編集] という箇所から行います。

f:id:keisuke-blog:20191101124129p:plain

 

PowerShell で行う場合

SharePoint 管理シェルのコマンド Start-SPOSiteRename を使用します。

 
使用例
※ テナント名は適当に cotoso に置き換えています。

- 元のサイト URL

https://contoso.sharepoint.com/sites/oldsite01

- リネームする URL

https://contoso.sharepoint.com/sites/renamesite01

 

コマンド

Connect-SPOService -url https://contoso-admin.sharepoint.com
Start-SPOSiteRename -Identity https://contoso.sharepoint.com/sites/oldsite01 -NewSiteUrl https://contoso.sharepoint.com/sites/renamesite01


これで 終了です。変更が終わると、https://contoso.sharepoint.com/sites/oldsite01 にアクセスすると、https://contoso.sharepoint.com/sites/renamesite01 にリダイレクトされるようになります。

3. 注意点

この機能の使用例として、本来つけるべき URL をタイポしてしまった場合などに、本来付ける予定だった URL に修正するような場面を想定しているようです。もし、古い URL を再利用し、新しいサイト作成しようと考えている場合は、事前に古いサイトコレクションを削除する必要がある点に注意が必要です。

調べたところこの機能は内部的に以下のような動作となるようです。

  •  既存のサイトを 1 つ指定し、リダイレクト先として新しい URL を指定する
  • 指定した新しい URL のサイト (サイト コレクション) が作成され、既存コンテンツが移動される
  • 既存のサイトは読み取り専用のリダイレクト サイトとマークされる
  • リダイレクト サイトとマークされた既存のサイト URL が要求されたとき、サーバー側で新しいサイト URL へリダイレクトする

上記のような動作により、古い URL を要求したとき、そのサイトがリダイレクトサイトとしてマークされていたら、新しい URL へリダイレクトするようです。既存の URL が上書きされるわけではなく、既存のサイトはリダイレクトサイトという特殊なサイトとして存在し続けます。

そのため、仮に古い URL で新しいサイトコレクションを作ろうとすると競合します。厄介なことに、確認する限りリダイレクトサイトとしてマークされた古いサイトは、 SharePoint 管理センターの UI には出てこないようです。つまり、既存のサイト URL と同じサイト URL の新規サイトを作成するような場合は、Remove-SPOSite コマンドを使用し、既存のサイトをコマンドを使用して削除する必要があるということです。


このことは以下の公開情報に記載されています。

docs.microsoft.com

ちなみに、古いサイトを Get-SPOSIte で取得すると、記事にもかいてあるように、読み取り専用、かつ、リダイレクトサイトという特殊なテンプレート (RedirectSite#0) が使われていることがわかります。

f:id:keisuke-blog:20191101125843p:plain


以下の黒いブログによると、古いサイトを削除しないままその URL を使ってサイトを作ることもできるようですが、末尾に 01 のような通し番号が付けられるようです。そのまま使えるのかは不明ですが、おそらく想定していないと思うので、公開記事に沿って削除してから使うほうが賢明だと思います。

art-break.net


その他、各 Office 365 サービスを含む、注意点や影響などは下記公開情報にまとめられているのでチェックしてみてください。

https://docs.microsoft.com/ja-jp/sharepoint/change-site-address#effects-of-changing-a-site-address


2013 形式のワークフローを使用している場合は、サイトのアドレス変更後に再発行が必要となったりするようです。

 

4. おわりに

最近は UserVoice や PnP のコミュニティなど、ユーザーからのフィードバックを重要視していますね。とても素晴らしい試みだと思います。最近はすっかりブログ更新を止めていましたが、アウトプットを継続するために、更新を再開していきます。面白いことに、2 年前に書いた Flow の記事がいまなお多くの方にアクセスされているので、Flow はとても関心が高いのだなと感じています。次回は Flow の記事にしようかと思います。

mountfuji.hatenablog.com

 

また、最後になりますが、11/23(土) に開催される下記イベントにも、"SharePoint Framework で Teams タブ開発" というセッションの、ハンズオンスタッフとして参加します。多くの方々と交流し、新しいアイデアを蓄えてきます。

connpass.com

 今回の投稿は以上となります。