PowerShellでサイト管理を行う上で、同時に複数サイトを取り扱うケースが少なからずあるかもしれません。
しかし、扱うサイトを切り替える毎にConnect-PnPOnline
とDisconnect-PnPOnline
を実行するのはあまりよろしくないように思えます。
上記の問題を解消する方法がありますので、以下に記載します。
接続方法
普段接続に使用しているConnect-PnPOnline
の引数に-ReturnConnection
を追加し、任意の変数に格納します。
$SiteA = Connect-PnPOnline -Url <site url> -ReturnConnection
$SiteB = Connect-PnPOnline -Url <site url> -ReturnConnection
各コマンド実行方法
例えば各サイトに対してGet-PnPList
を発行したい場合は引数に-Connection <接続情報変数>
を追加します。
以下の例では、上記接続方法で用意された$SiteA
と$SiteB
を使用しています。
Get-PnPList -Connection $SiteA
Get-PnPList -Connection $SiteB
接続解除方法
普段、接続解除に使用しているDisconnect-PnPOnline
の引数に-Connection <接続情報変数>
を追加します。
(各コマンド実行方法と同じですね)
Disconnect-PnPOnline -Connection $SiteA
Disconnect-PnPOnline -Connection $SiteB
余談
Connect-PnPOnlineに引数として-ReturnConnection
は記載されていますが、サンプルは特にありません…。
Get-PnPListなどのParameters欄の-Connection
に
Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline
と書いてあるくらいです。
Connect-PnPOnline
のサンプルにチラっとでも書いててほしかったなぁという気持ちではあります。