300 likes | 441 Views
Code Camp NZ 2011. # CCNZ. www.mscommunities.co.nz. Introduction. PowerShell and SharePoint extensively covered on TechNet 2010 Products administration by using Windows PowerShell http://technet.microsoft.com/en-us/library/ee806878.aspx Session Goals Demystify PowerShell + SharePoint
E N D
Code Camp NZ 2011 #CCNZ www.mscommunities.co.nz
Introduction • PowerShell and SharePoint extensively covered on TechNet2010 Products administration by using Windows PowerShellhttp://technet.microsoft.com/en-us/library/ee806878.aspx • Session Goals • Demystify PowerShell + SharePoint • Examples of PowerShell in action
Session Agenda • Quick review of the basics and some useful Cmdlets • Walkthrough building a portal using PowerShell • Farm Administration • Site Administration • Deployment of Customisations • Diagnostics and Troubleshooting • Tips and Resources
PowerShell Basics basics
How Do I?Work with PowerShell + SharePoint • SharePoint 2010 Management Shell If you’re not using the SP2010 ManagementShell make sure $host.Runspace.ThreadOptions = "ReuseThread" • The PowerShell SharePoint Snapin provides the SP Cmdlets It’s always helpful include a reference to the Snapin Add-PSSnapinMicrosoft.SharePoint.PowerShell-ErrorActionSilentlyContinue
What Do I Get?With PowerShell + SharePoint • SharePoint Cmdlets • 245 listed on TechNet for SharePoint Foundation • 527 listed on TechNet for SharePoint Server (there’s more according to Get-Command)
Cmdlets“…a lightweight command [for PowerShell]…” • Cmdlets return or operate on objects or collections • Use the pipeline | to pass and process objects$myObject | ForEach-Object { DoStuff $_ } ForEach %$myObject | Where-Object { $_ -gt 1 } Where ? • I need some help? Some helpful Cmdlets: Get-HelpGet-Command $myObject | Get-Member
Assemblies and ClassesPowerShell is not just limited to Cmdlets • Create objects with New-Object $site = New-Object Microsoft.SharePoint.SPSite("http://tech.ed") • Load other SharePoint or .NET assemblies [System.Reflection.Assembly]::LoadWithPartialName ("Microsoft.Office.Server.Search") [System.Reflection.Assembly]::Load ("Microsoft.Office.Server.Search, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") Deprecated
Farm AdministrationAdding content to the farm • Adding Web ApplicationsNew-SPWebApplication • Update the Web ApplicationGet-SPWebApplication • Adding Site CollectionsNew-SPSite • Content Databases • Adding new databasesNew-SPContentDatabase • Attaching existing databasesMount-SPContentDatabase • Test them using Test-SPContentDatabase
Farm AdministrationProtect and share the content • Backup and Restore • See the backup historyGet-SPBackupHistory • Farm and more granularBackup-SPFarmandRestore-SPFarm • Site CollectionBackup-SPSiteandRestore-SPSite • Search • The SAGet-SPEnterpriseSearchServiceApplication • Content SourcesGet-SPEnterpriseSearchCrawlContentSource
Farm Administration demo
Site Collections and SitesSites…Also known as SPWeb’s • Adding sub sitesNew-SPWeb • Change the site collection(s) and site(s) properties • Get-SPSiteandGet-SPWeb • Site Permissions and Users • Add users and permissionsNew-SPUserandSet-SPUser • Site collection administratorsSet-SPSiteAdministration
Site HierarchySPWeb has a lot of friends • The site’s hierarchy • Sub sites.Webs • Lists.Lists • Content Types.ContentTypes • Fields.Fields • . . .
Site Administration demo
Customisations and Deployment • Solutions • Retrieve solutions in farmGet-SPSolutionand download to file system.SolutionFile.SaveAs() • Add/Deploy new solution to farmAdd-SPSolutionand Install-SPSolution • Remove existing Solution to farmRemove-SPSolutionandUninstall-SPSolution • Update existing farm solutionUpdate-SPSolution • Features • List all features in farmGet-SPFeature • Install/Remove featureInstall-SPFeatureand Uninstall-SPFeature • Activate/Deactivate featuresEnable-SPFeatureand Disable-SPFeature
Diagnostics and Troubleshooting • Developer Dashboard[Microsoft.SharePoint.Administration.SPWebService] ::ContentService.DeveloperDashboardSettings • Listening to SharePoint’s logging service (ULS) Get-SPLogEvent
Resources and Tips tips
Script Tips • Use and save scripts – they can be reused, maintained, reused, reused… PS C:\TENZ11\PS> .\myscript.ps1 • Use variables – they make scripts easier to read and maintain $siteUrl = "http://intranet" • Use functions – pieces of logic in the script function Update-SiteTitle($site, $title) { $site.Title = $title $site.Update() } • Use comments # This explains what the script is doing which is helpful in the future • Tab Ahead - PowerShell lets you tab to complete pathname and input • Providing some output is helpful Write-Host “About to do stuff" vs. “About to do stuff" • Build and test your scripts incrementally. Not directly in production!
Disposal TipsObject disposal is important to release memory • Easiest method is to useSPAssignment Start-SPAssignment -Global # Do stuff ... Stop-SPAssignment –Global • You can use.Dispose()to clean up after yourself$site = Get-SPSite http://intranet; $site.Usage; $site.Dispose() • Closing the PowerShell Console cleans up the session but it’s the lazy option
Scripts Won’t Run?Usually it will be permissions • What’s your Execution Policy?Set-ExecutionPolicyRestricted | AllSigned | RemoteSigned| Unrestricted • Is UAC on? You may have to “Run as Administrator” • Does the account have rights on databases? Add-SPShellAdmin-UserNamedemo\SPUser-database SP2010_Content_TENZ
Session TipsSome More Useful Cmdlets • Let the farm document itself usingExport-Clixmlhttp://bit.ly/psfarmdoc • UseOut-GridViewto output to a Grid UINeeds PowerShell ISE feature enabled (not on by default) • UseImport-CSVto read from CSV files. Great input to other “creation” Cmdlets likeNew-SPUserand New-SPWebhttp://bit.ly/psimportcsv
ResourcesUseful Blogs • NiklasGoudehttp://www.powershell.nu/ • Zach Rosenfieldhttp://sharepoint.microsoft.com/Blogs/zach • Gary Lapointehttp://blog.falchionconsulting.com/
ResourcesOfficial Stuff • Windows PowerShell for SharePoint Server 2010http://technet.microsoft.com/en-us/library/ee662539.aspx • Windows PowerShell for SharePoint Foundation 2010http://technet.microsoft.com/en-us/library/ee662510.aspx • STSADM to Windows PowerShell mappinghttp://technet.microsoft.com/en-us/library/ff621081.aspx • Microsoft.SharePoint Namespace (MSDN)http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.aspx
Track ResourcesInstallation • AutoSPInstallerhttp://autospinstaller.codeplex.com/ • Install SharePoint Server 2010 by using Windows PowerShell (SPModule)http://technet.microsoft.com/en-us/library/cc262839.aspx • The Wizard Likes His GUIDs (Configuring Service App’s without the Wizard)http://todd-carter.com/post/2010/04/26/The-Wizard-Likes-His-GUIDs.aspx
4th Annual Community SharePoint Conference • Business and Technical Tracks, all levels • Superb Internationally Renowned SharePoint Experts Content Slide
Thanks to our sponsorsand partners! Sponsor Premier Partners Associated Partners Supporting Partners