Introduction
Last updated
Last updated
The Sitecore PowerShell Extensions (SPE) module is a Sitecore development accelerator that can drastically increase your productivity and curtail the amount of time it takes to deliver a Sitecore solution.
The module provides a command line (CLI) and a scripting environment (ISE) for automating tasks. SPE works with the Sitecore process, capable of making native calls to the Sitecore API and manipulating files. Running commands and writing scripts follow the standard and well-known Windows PowerShell syntax. Windows PowerShell is a common tool used in IT for desktop and server management, so we decided to stick with that as a framework to build upon.
The book provides documentation about how to use the module based on the latest released version. While some of the screenshots and materials may be slightly out-of-date, you will inevitably find details referring to something that doesn't exist on your installed version. Feel free to submit a pull request for corrections here.
Support for Sitecore 7 has discontinued with SPE 5.0. Check the appendix for version compatibility.
The following are some helpful modules distributed with SPE.
Core
Platform
PowerShell Background Session Manager
Recreate site from sitemap
X-UnitTests - examples at how to use Pester to test your scripts
Extensions
Authorable Reports - reports based on the Sitecore Rules Engine.
Index Viewer - similar to the Luke tool
Maintenance
Index On Demand
Media Library Maintenance
System Maintenance
Task Management
Reporting
Content Reports - variety of reports to help audit the Sitecore solution.
Samples
Automatically show quick info section
Enforce user password expiration
Example Event Handlers
Getting Started - includes the Kitchen Sink Demo for Read-Variable
.
License Expiration
Random desktop background
Training Modules
Unlock user items on logout
Tools
Authoring Instrumentation
Copy Renderings
Data Management
Bulk Data Generator - useful for items and users
Bulk Item Restorer - restore items from recycle bin
Bulk Template Changer - can't think of a better description than this
Data Importer - create or update items from a Csv
Find and Replace - use Content Search to change text
Elevated Unlock - provides options to unlock items using delegated administration
Package Generator - a simple method to package up items
Publishing Status Gutter
Security Management
Logged in Session Manager
Transfer item security
Training
There is nothing you can not do with PowerShell Console, because you're inside the Sitecore application. You can call the Sitecore API. - Alistair Deneys - Sitecore Symposium 2012
Recommended by John West to use as a tool for maximizing Sitecore developer productivity.
Get a job done with a one liner! Just provisioned a new language for the whole content tree with a one-liner. Whaaaat? Have to include it as a default install for all sandboxes now. - Alex Shyba's comment on Marketplace
Thank you for the GitBook. Invaluable Reference. - Nick Wesselman's tweet
The Sitecore powershell tools are absurdly good and helpful. I know they make a lot of people nervous, but they are incredibly well managed. Everybody should learn to sling some shell in Sitecore, you'll never look back. - Christopher Campbell tweet
I literally couldn't work without SPE - I can't remember the last implementation I did that didn't have it installed lol @michaellwest & @adamnaj better not ever retire it 😄 - Richard Seal
See the Troubleshooting section for some common fixes.
Questions, comments, and feature requests should be submitted on GitHub. You may also check out the SPE Slack channel for more interactive support. Not on Slack yet? Contact us on Twitter and we'll send you an invite.
Disclaimer: With great power comes great responsibility – this tool can do a lot of good but also bring harm to a lot of content in a very short time – backup your system before running a script that modifies your content and never run any untested scripts in a production environment! We will not be held responsible for any use of it. Test your scripts on your development server first! Test on an exact copy of production before running scripts on production content.