Sitecore PowerShell Extensions (サイトコア パワーシェル エクステンションズ / SPE)について紹介します。
Sitecore PowerShell Extensionsでは、アイテムをインストール可能なパッケージを作成することが可能です。パッケージファイルをファイル化してエクスポートすることも可能です。
色々な活用が出来ますが、今回はアイテムパスからアイテムを取得してパッケージ化し、ローカルPC内に保存するところまで紹介していきます。
パッケージの作成
まず初めに、新しいパッケージを宣言し、作成します。パッケージ名や作者、説明などの情報を設定することもできます。
# パッケージ名の設定
$package = New-Package "Sample-Package";
# アイテムソースを初期化
$package.Sources.Clear();
# パッケージのメタデータを設定
$package.Metadata.Author = "Sample-Author";
$pakage.Metadata.Publisher = "Sample‐Publisher";
$package.Metadata.Version = "1.0";
$package.Metadata.Readme = 'This text will be visibe to people installing your package';
ここで設定した情報は、パッケージインストール時の検証画面に表示されます。
パッケージに中身を追加
次にアイテムを取得し、先ほど宣言したパッケージにソースを追加します。ソースの追加方法としては、大きく分けて二つ存在します。
まず一つ目に、アイテムパスから特定のアイテムをソースとして追加する方法を紹介します。この方法では、指定した明示的なアイテムのソースのみを追加し、サブアイテムは含みません。
#アイテムパスを指定し、アイテムを取得、アイテムソースを作成
$source = Get-Item 'master:/sitecore/content/Sample/TestItem' | New-ExplicitItemSource -Name 'Item'
# パッケージにアイテムソースを追加
$package.Sources.Add($source);
二つ目に、クエリを利用して、条件に当てはまるアイテムをソースとしてすべて追加する方法を紹介します。この方法では、選択したアイテムに関連するサブアイテムも含みます。例えば、”content”配下の”Sample Template”を利用しているアイテムを抜き出したい場合は、以下のようなクエリになります。
# クエリを使用し、クエリ条件に当てはまるアイテムを取得、アイテムソースを作成
$itemSource = New-ItemSource -Name "Item" -root "/sitecore/content" -query "fast:/sitecore/content//*[@@templatename='Sample Template']"
# パッケージにアイテムソースを追加
$package.Sources.Add($itemSource);
エクスポート
最後に、ここまでソースを追加してきたパッケージのエクスポートをします。
# パッケージをセーブ
Export-Package -Project $package -Path "$($package.Name)-$($package.Metadata.Version).zip" -Zip
“Export-Package”コマンドを利用することによってパッケージを保存することが出来ます。ファイル名は自由に設定でき、今回の場合であれば「Sample-Package-1.0」という名前で保存されます。 また、-ZipプロパティをつけることでZipファイルとして保存されます。
デフォルトの保存先は”/inetpub/wwwroot/○○(Website)/App_Data/Packages”です。エクスポートしたファイルは、エクスプローラで参照できます。インストールウィザードのパッケージ選択画面から、参照することも可能です。
DownLoad-File(Send-File)コマンドを使用すれば、パッケージのセーブに続けてダウンロードさせることも可能です。先ほどエクスポートしたパッケージファイルを指定します。
# パッケージのダウンロード
Download-File "$SitecorePackageFolder\\$($package.Name)-$($package.Metadata.Version).zip"
その結果、ダウンロードのウィンドウが表示されます。
各コマンドの詳しい機能説明やパラメータについては公式のドキュメントに掲載されていますので、併せて確認してください。
https://doc.sitecorepowershell.com/appendix
以上になります。
※エントリーの内容・画像等は、公開時点での情報に基づきます。
※Sitecoreのバージョンによって実装されている機能が異なります。