NZ Code Camp 2011 PowerShell + SharePoint

Post on 02-Nov-2014

868 views 0 download

Tags:

description

Nick Hadlee's session on PowerShell and SharePoint 2010 at Code Camp 2011.

Transcript of NZ Code Camp 2011 PowerShell + SharePoint

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/

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