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.
{% hint style="info" %} 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. {% endhint %}
{% hint style="warning" %} Support for Sitecore 7 has discontinued with SPE 5.0. Check the appendix for version compatibility. {% endhint %}
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
- Platform
- Extensions
- Authorable Reports - reports based on the Sitecore Rules Engine.
- Index Viewer - similar to the Luke tool
- Authorable Reports - reports based on the Sitecore Rules Engine.
- 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.