There are some really amazing contributions and add-ons to SPE from the community.
Unicorn
A well known and widely adopted module Unicorn has published some SPE commands. These commands are available (and optional) after installing Unicorn. Below are some samples ripped off from Kam Figy's blog posts here and here.
Configurations
Example: The following lists configurations by name.
# Default returns all configurationsGet-UnicornConfiguration# Exact matchGet-UnicornConfiguration-Filter "Foundation.Foo"# Filter using a wildcardGet-UnicornConfiguration-Filter "Foundation.*"
Syncing
Example: The following syncs configurations just like you would through the Unicorn Control Panel or the PowerShell API.
# Sync oneSync-UnicornConfiguration"Foundation.Foo"# Sync multiple by nameSync-UnicornConfiguration@("Foundation.Foo","Foundation.Bar")# Sync multiple from pipelineGet-UnicornConfiguration"Foundation.*"|Sync-UnicornConfiguration# Sync all, except transparent sync-enabled configurationsGet-UnicornConfiguration|Sync-UnicornConfiguration-SkipTransparent# Optionally set log output level (Debug, Info, Warn, Error)Sync-UnicornConfiguration-LogLevel Warn
Partial Syncing
# Sync a single item (note: must be under Unicorn control)Get-Item"/sitecore/content"|Sync-UnicornItem# Sync multiple single items (note: all must be under Unicorn control)Get-ChildItem"/sitecore/content"|Sync-UnicornItem# Sync an entire item tree, show only warnings and errorsGet-Item"/sitecore/content"|Sync-UnicornItem-Recurse -LogLevel Warn
Reserializing
# Reserialize oneExport-UnicornConfiguration"Foundation.Foo"# Reserialize multiple by nameExport-UnicornConfiguration@("Foundation.Foo","Foundation.Bar")# Reserialize from pipelineGet-UnicornConfiguration"Foundation.*"|Export-UnicornConfiguration
Partial Reserializing
# Reserialize a single item (note: must be under Unicorn control)Get-Item"/sitecore/content"|Export-UnicornItem# Reserialize multiple single items (note: all must be under Unicorn control)Get-ChildItem"/sitecore/content"|Export-UnicornItem# Reserialize an entire item treeGet-Item"/sitecore/content"|Export-UnicornItem-Recurse
Converting to Raw Yaml
# Convert an item to YAML format (always uses default excludes and field formatters)Get-Item"/sitecore/content"|ConvertTo-RainbowYaml# Convert many items to YAML stringsGet-ChildItem"/sitecore/content"|ConvertTo-RainbowYaml# Disable all field formats and field filtering# (e.g. disable XML pretty printing,# and don't ignore the Revision and Modified fields, etc)Get-Item"/sitecore/content"|ConvertTo-RainbowYaml-Raw
Converting from Raw Yaml
# Get IItemDatas from YAML variable$rawYaml |ConvertFrom-RainbowYaml# Get IItemData and disable all field filters# (use this if you ran ConvertTo-RainbowYaml with -Raw)$yaml |ConvertFrom-RainbowYaml-Raw
Deserialization
# Deserialize IItemDatas from ConvertFrom-RainbowYaml$rawYaml |ConvertFrom-RainbowYaml|Import-RainbowItem# Deserialize raw YAML from pipeline into Sitecore # Shortcut bypassing ConvertFrom-RainbowYaml$yaml |Import-RainbowItem# Deserialize and disable all field filters# (use this if you ran ConvertTo-RainbowYaml with -Raw)$yaml |Import-RainbowItem-Raw# Deserialize multiple at once$yamlStringArray |Import-RainbowItem# Complete example that does nothing but eat CPUGet-ChildItem"/sitecore/content"|ConvertTo-RainbowYaml|Import-RainbowItem
Packaging
# Create a new Sitecore Package (SPE cmdlet)$pkg =New-Package-Name MyCustomPackage# Get the Unicorn Configuration(s) we want to package$configs =Get-UnicornConfiguration"Foundation.*"# Pipe the configs into New-UnicornItemSource # to process them and add them to the package project# (without -Project, this would emit the source object(s) # which can be manually added with $pkg.Sources.Add())$configs |New-UnicornItemSource-Project $pkg# Export the package to a zip file on diskExport-Package-Project $pkg -Path "C:\foo.zip"-Zip
SPE Modules
The following are Sitecore modules that enhance the SPE experience.