SharePoint Online のサイトを PowerShell と CSOM で作成する


SharePoint MVP の Corey さんがブログに非常に参考になったエントリを作成されているので、試してみました。

How to: Create and Manage sites in SharePoint Online using PowerShell and CSOM
http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2014/04/30/how-to-create-and-manage-sites-in-sharepoint-online-using-powershell-and-csom.aspx

簡単に書くと、「SharePoint Online Management Shellは利用せず、PowerShell と CSOM (SharePoint Server 2013 Client Components SDK) でコマンドによるサイトの管理を行う」というものです。
オンプレミス (社内設置型) の SharePoint Server 2013 を PowerShell + CSOM で管理する方法とほぼ同じですので、慣れている方やハイブリットで運用する方には嬉しい限りです。

サイトの作成方法はスクリプト センターに掲載されていますので、そちらを参照していただければいいのですが、おおよそ以下の手順で実行します。

  1. インストールしていない場合には、CSOM (SharePoint Server 2013 Client Components SDK) をダウンロードして、インストールします。私は OS が 64bit なので、64bit 版をインストールしました。
  2. 以下のスクリプトを CreateSite.ps1 ファイルとして保存します (ファイルをここに置いておきます)。XXX の箇所は環境に合わせて、自分の好きなように変更します。”STS#0” はチーム サイトを作成するなら、このまま利用し、それ以外のサイトを作成したい場合には Get-SPOWebTemplate コマンドで取得した値を利用します。
  3. Add-Type -Path “c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll”
    Add-Type -Path “c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll”

    $siteUrl = “https://XXX.sharepoint.com/”
    $username = “XXX@XXX.onmicrosoft.com”
    $password = Read-Host -Prompt “Enter password” -AsSecureString
    $ctx = New-Object Microsoft.SharePoint.Client.ClientContext($siteUrl)
    $credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $password)
    $ctx.Credentials = $credentials

    $webCreationInformation = New-Object Microsoft.SharePoint.Client.WebCreationInformation
    $webCreationInformation.Url = “XXX”
    $webCreationInformation.Language = 1041
    $webCreationInformation.Title = “XXX”
    $webCreationInformation.WebTemplate = “STS#0”
    $newWeb = $ctx.Web.Webs.Add($webCreationInformation)

    $ctx.Load($newWeb)
    $ctx.ExecuteQuery()
    Write-Host “Title” $newWeb.Title

  4. PowerShell を [管理者として実行する] で起動し、上記でファイルを作成して保存したフォルダに移動し、実行します (下線部のコマンドを入力します)。パスワードを求められますので、Sharepoint Online 管理者 (PowerShell スクリプト内に指定したユーザー) のパスワードを入力します。
    cd XXX
    .\CreateSite.ps1
  5. おしまい!

さすがにサイトを一つ作成して満足してもアレですので、パラメータなどを工夫してバッチ ファイルにしておけば、急なサイト作成依頼やサイトの大量作成にも対応できるかと。

広告