皆様こんにちは!SxS担当です!
東京には雪が降ると噂がありましたが、結局降らず良いような悪いような…。
寒いですが体調崩されていないでしょうか?
さて、タイトルの通り、SharePointのオンプレミス(2013, 2016, 2019)で使用できるPowerShell「Copy-SPSite」コマンドについて、ナレッジの少ない事象を発見致しました。
目次
【事象】
サイトコレクションのコンテンツデータベースやURLを変更するためによく使用される 「Copy-SPSite」 ですが、正常に実行完了しても、コピー先URLにアクセスすると 404 エラーでサイトが表示されないことがあります。
また、404で表示されないサイトは全体管理から見ると、サイト情報がない状態で存在しており、「Remove-SPSite」で削除することもできなくなります。
【原因】
実はこの 「Copy-SPSite」コマンド、 -TargetUrl のパラメータの最後に「/」がついているとうまく実行完了できません。
NGパターン
Copy-SPSite http://sp201904/sites/test01 -DestinationDatabase testContentDB -TargetUrl
http://sp201904/sites/test01_copy/
OKパターン
Copy-SPSite http://sp201904/sites/test01 -DestinationDatabase testContentDB -TargetUrl http://sp201904/sites/test01_copy
【解決方法】
以下のように「ForceDeleteSite」を使用して宙に浮いてしまっているサイトを削除し、(完全に削除されるまで少し待ってから)あらためて「/」なしで Copy-SPSiteを実行しましょう。
$siteUrl = "http://sp201904/sites/test01_copy"
$site = get-spsite $siteUrl
$siteId = $site.Id
$siteDatabase = $site.ContentDatabase
$siteDatabase.ForceDeleteSite($siteId, $false, $false)
SxSではこのようにSharePoint オンプレミスの質問やお困りごとにも対応しております。
もし興味がありましたらお気兼ねなく「お問合せ」からご連絡下さい。