Repository navigation
Description
PnP PowerShell コマンドでSharepointのサイトコピー(コピー元サイトリンクから新規サイトリンクへコピー)を実施したところ以下のエラーコードが表示されました。
解消方法をご教授ください。
Invoke-PnPsiteTemplate: Access is denied. (Exception from HRESULT: 0x80070005(E_ACCESSDENIED))
新規サイトのカスタムスクリプトが有効化されていないためと判断し、一時的に有効化を実施しました。
再度同じPnP Powershellを実行したところPowerShell上では警告が表示され、作成した新規サイトを開くと白画面となりサイトページが表示されました。
切り分け
・同一要件・同一手順で実施し、正常にコピーされ利用できているサイトが存在しているため使用したコマンドそのものが唯一の原因とは断定できない状況となります。
再現性
・新規サイトを作成し、PnP Powershellを実行すると同じエラーが表示されたサイトが複数ありました。
事象のパターン分け
①コピー先のSharePointサイトのカスタムスクリプトを有効にし、サイトコピーを実施した場合
サイトリンクをクリックするとサイトページが表示されず真っ白な画面
SharePoint管理センター>該当サイト>メンバー設定で追加していないにも関わらずコピー元のサイトの所有者、管理者が追加されていた
②コピー先のSharePointサイトのカスタムスクリプトを無効のまま、サイトコピーを実施した場合。(エラー発生のまま)
パターンは2つに分かれる
1サイトリンクをクリックすると正常にサイトページが表示される、SharePoint管理センター>メンバー設定で追加していないのに所有者、管理者が追加されていた
2サイトリンクをクリックすると正常にサイトページが表示される、SharePoint管理センター>メンバー設定で追加所有者、管理者追加なし(作業用アカウントのみアクセス権保持)
サイトコピーで使用したコマンドは2種類ある
②を実行時にエラー発生
①
https://pnp.github.io/powershell/cmdlets/Get-PnPProvisioningTemplate.html
Import-Module PnP.PowerShell
Connect To PnP PowerShell
コピー元のサイトURL
$siteUrl = "https://admin.sharepoint.com/sites/xxxx"
登録済みのアプリケーションのクライアントID
$clientId = "xxxxxxx"
テナントID
$tenantId = ""
証明書の拇印
$thumbprint = ""
PnP PowerShellの接続
Connect-PnPOnline -Url $siteUrl -ClientId $clientId -Tenant $tenantId -Thumbprint $thumbprint
Connect-PnPOnline -Url $siteUrl -Interactive -ClientId $clientId
サイトのテンプレートファイル出力(ファイル名や出力先は任意に変更可能です。)
Get-PnPSiteTemplate -Out "C:\work\PnP-Provisioning-File.xml"
切断
Disconnect-PnPOnline
②
https://pnp.github.io/powershell/cmdlets/Invoke-PnPSiteTemplate.html
Import-Module PnP.PowerShell
Connect To PnP PowerShell
コピー先のサイトURL
$siteUrl = "https://adminl.sharepoint.com/sites/xxxxxx"
登録済みのアプリケーションのクライアントID
$clientId = "xxxxxxxxxx"
テナントID
$tenantId = ""
証明書の拇印
$thumbprint = ""
PnP PowerShellの接続
Connect-PnPOnline -Url $siteUrl -ClientId $clientId -Tenant $tenantId -Thumbprint $thumbprint
Connect-PnPOnline -Url $siteUrl -Interactive -ClientId $clientId
サイト→サイトにコピーする場合
サイトのテンプレートの適用(出力したテンプレートファイルを指定してください。)
Invoke-PnPSiteTemplate -Path "C:\work\PnP-Provisioning-File.xml" -ClearNavigation
切断
Disconnect-PnPOnline
Which operating system/environment are you running PnP PowerShell on?
- [☑ ] Windows
Activity