PowerShell サンプル – サイト コレクションの作成、取得、編集、削除

こんにちは、SharePoint サポートの佐伯です。
今回の投稿では、PowerShell を使用してサイト コレクションの基本的な操作を実施する方法についてご紹介します。
あまり PowerShell のご経験がない方にも分かりやすくするために、ここではシンプルなサンプルをご紹介していきます。目的の処理を実装する際にご参考になりましたら幸いです。
実装の際は MSDN の資料も合わせてご参照ください。

 

■サイト コレクションの作成

#サイト コレクションを作成します。
New-SPSite <サイト コレクションの URL> -OwnerAlias <サイト コレクションの管理者のログイン名>

 

例) サイト コレクションを作成する (ルート サイトのテンプレートは後で適用)
New-SPSite https://sharepoint/sites/site -OwnerAlias contoso\adminuser

 

#サイト コレクションを作成します。
New-SPSite <サイト コレクションの URL> -OwnerAlias <サイト コレクションの管理者のログイン名> -Template <Web テンプレート>

 

例) ルート サイトのWeb テンプレートを指定してサイト コレクションを作成する (ルート サイトはチーム サイト)
New-SPSite https://sharepoint/sites/teamsite -OwnerAlias contoso\adminuser -Template STS#0

 

#サイト コレクションを作成します。
New-SPSite <サイト コレクションの URL> -OwnerAlias <サイト コレクションの管理者のログイン名> -Template <Web テンプレート> -Language <言語識別子 (LCID)>

 

例) ルート サイトの Web テンプレート、言語識別子 (LCID) を指定してサイト コレクションを作成する (ルート サイトは英語のチーム サイト)
New-SPSite https://sharepoint/sites/teamsite -OwnerAlias contoso\adminuser -Template STS#0 -Language 1033

補足 : <Web テンプレート> に設定する値は、Get-SPWebTemplate を使用してグローバルにインストールされている Web テンプレート一覧を取得し、確認します。

 

参考 : New-SPSite のその他のパラメーターについては下記の資料をご参照ください。
https://technet.microsoft.com/ja-jp/library/ff607937%28v=office.15%29.aspx

 

■サイト コレクションの取得

#サイト コレクションを取得します。
$site = Get-SPSite <サイト コレクションの URL>
#サイト コレクションのプロパティを取得します。
$site.<サイト コレクションのプロパティ>

 

例) サイト コレクションの GUID を取得する
$site = Get-SPSite https://sharepoint/sites/teamsite
$site.ID

 

#取得するサイト コレクションの URL を変数にセットします。
$url = "<サイト コレクションの URL>"
#サイト コレクションを取得します。
$site = New-Object Microsoft.SharePoint.SPSite($url)
#サイト コレクションのプロパティを取得します。
$site.<サイト コレクションのプロパティ>

 

例) サイト コレクションの GUID を取得する
$url = "https://sharepoint/sites/teamsite"
$site = New-Object Microsoft.SharePoint.SPSite($url)
$site.ID

 

#取得するサイト コレクションの GUID を変数にセットします。
$guid = [System.Guid]("<GUID 文字列>")
#サイト コレクションを取得します。
$site = New-Object Microsoft.SharePoint.SPSite($guid)
#サイト コレクションのプロパティを取得します。
$site.<サイト コレクションのプロパティ>

 

例) サイト コレクションのルート サイトの URL を取得する
$guid = [System.Guid]("726d4ff8-091d-4ed1-81fa-89f4a9254d36")
$site = New-Object Microsoft.SharePoint.SPSite($guid)
$site.Url

 

参考 : その他の <サイト コレクションのプロパティ> は下記の資料をご参照ください。
https://msdn.microsoft.com/ja-jp/library/microsoft.sharepoint.spsite_properties(v=office.15).aspx

 

■サイト コレクションの編集

#サイト コレクションを取得します。
$site = Get-SPSite <サイト コレクションの URL>
#サイト コレクションのプロパティに値を設定します。
$site.<サイト コレクションのプロパティ> = <変更後のプロパティ値>

 

例) SharePoint Designer を使用したサイト コレクション内のサイトの編集を許可しないよう設定する (ただし、サイト コレクションの管理者は常にサイトの編集が可能)
$site = Get-SPSite https://sharepoint/sites/teamsite
$site.AllowDesigner = $false

 

参考 : 編集が可能なその他の <サイト コレクションのプロパティ> は、下記の資料を参考にご確認ください。
https://msdn.microsoft.com/ja-jp/library/microsoft.sharepoint.spsite_properties(v=office.15).aspx

 

■サイト コレクションの削除

#サイト コレクションとそのサイト コレクションに含まれるすべてのサイトを削除します。
Remove-SPSite <サイト コレクションの URL>

 

例) サイト コレクションとそのサイト コレクションに含まれるすべてのサイトを削除する
Remove-SPSite https://sharepoint/sites/teamsite

 

- 補足
目的の処理を実施した後は、SPWeb.Dispose メソッドを使用して SPWeb オブジェクトを閉じ、リソースを解放します。

$web.Dispose()