Post on 02-Nov-2014
description
transcript
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
basics
PowerShell Basics
How Do I?Work with PowerShell + SharePoint SharePoint 2010 Management Shell
If you’re not using the SP2010 Management
Shell make sure $host.Runspace.ThreadOptions = "ReuseThread"
The PowerShell SharePoint Snapin provides the SP CmdletsIt’s always helpful include a reference to the Snapin
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
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-Help Get-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 Administration
Farm AdministrationAdding content to the farm
Adding Web Applications New-SPWebApplication Update the Web Application Get-SPWebApplication
Adding Site Collections New-SPSite
Content Databases◦ Adding new databases New-SPContentDatabase◦ Attaching existing databases Mount-SPContentDatabase
◦ Test them using Test-SPContentDatabase
Farm AdministrationProtect and share the content
Backup and Restore◦ See the backup history Get-SPBackupHistory◦ Farm and more granular Backup-SPFarm and Restore-SPFarm
◦ Site Collection Backup-SPSite and Restore-SPSite
Search ◦ The SA Get-SPEnterpriseSearchServiceApplication◦ Content Sources Get-SPEnterpriseSearchCrawlContentSource
demo
Farm Administration
Site Administration
Site Collections and SitesSites…Also known as SPWeb’s Adding sub sites New-SPWeb Change the site collection(s) and site(s)
properties ◦ Get-SPSite and Get-SPWeb
Site Permissions and Users◦ Add users and permissions New-SPUser and Set-SPUser
◦ Site collection administrators Set-SPSiteAdministration
Site HierarchySPWeb has a lot of friends
The site’s hierarchy◦ Sub sites .Webs◦ Lists .Lists◦ Content Types .ContentTypes◦ Fields .Fields◦ . . .
demo
Site Administration
Customisation Deployment
and Diagnostics
Customisations and Deployment Solutions
◦ Retrieve solutions in farm Get-SPSolution and download to file system .SolutionFile.SaveAs()
◦ Add/Deploy new solution to farm Add-SPSolution and Install-SPSolution
◦ Remove existing Solution to farm Remove-SPSolution and Uninstall-SPSolution
◦ Update existing farm solution Update-SPSolution
Features◦ List all features in farm Get-SPFeature◦ Install/Remove feature Install-SPFeature and Uninstall-SPFeature
◦ Activate/Deactivate features Enable-SPFeature and Disable-
SPFeature
Diagnostics and Troubleshooting Developer Dashboard [Microsoft.SharePoint.Administration.SPWebService]
::ContentService.DeveloperDashboardSettings
Listening to SharePoint’s logging service (ULS) Get-SPLogEvent
demo
Customisation Deployment
and Diagnostics
tips
Resources and 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 scriptfunction 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 use SPAssignmentStart-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-ExecutionPolicy Restricted | AllSigned | RemoteSigned | Unrestricted
Is UAC on? You may have to “Run as Administrator”
Does the account have rights on databases?
Add-SPShellAdmin -UserName demo\SPUser -database SP2010_Content_TENZ
Session TipsSome More Useful Cmdlets Let the farm document itself using Export-Clixml
http://bit.ly/psfarmdoc
Use Out-GridView to output to a Grid UINeeds PowerShell ISE feature enabled (not on by default)
Use Import-CSV to read from CSV files. Great input to other “creation” Cmdlets like New-SPUser and New-SPWebhttp://bit.ly/psimportcsv
ResourcesUseful Blogs
Niklas Goudehttp://www.powershell.nu/
Zach Rosenfield http://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
Content Slide
◦ 4th Annual Community SharePoint Conference
◦ Business and Technical Tracks, all levels
◦ Superb Internationally Renowned SharePoint Experts
PremierPartners
Sponsor
Thanks to our sponsorsand partners!
AssociatedPartners
SupportingPartners