todd klindt and shane young sharepoint911. who is this todd guy?

Post on 18-Jan-2016

225 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

HITP09 Administration of SharePoint 2010 using Windows PowerShell, the New Coolness

Todd Klindt and Shane YoungSharePoint911

Who is this Todd guy?WSS MVP since 2006Speaker, writer, consultant, Blackjack expertPersonal Blogwww.toddklindt.com/blogCompany web sitewww.sharepoint911.comE-mailtodd@sharepoint911.comTwitter me! @toddklindt

Shane Young

Owner of SharePoint911.comMicrosoft Office SharePoint Server MVPConsultant, Trainer, Writer, & Speaker • shane@sharepoint911.com• Blog• http://msmvps.com/shane

• SharePoint Consulting• http://www.sharepoint911.com

• http://twitter.com/shanescows

Always hits on soft 16

Who Am I?

Agenda• Remoting• General PowerShell tricks for the

SharePoint admin• Avoiding the Farm Configuration

Wizard• PowerShell techniques for everyday

SharePoint admins

General PowerShell tips

• It’s just a shell, spruce it up some• Color• Size• Run as Admin

• Enable quick edit• Use the included ISE• Use a third party solution

Remoting• Must be enabled on each server• Nothing much to do on the client• Two ways in• Enter-PSSession• Invoke-Command

• Use Enable-PSRemoting to enable• Get-Help about_remoting• Watch out for security settings• Increase MaxMemoryPerShellMB

Avoiding the Farm Config Wizard• The Farm Config Wizard does some very bad things• Wise SharePoint admins avoid it• Use PowerShell to replicate its functionality• Steps• Managed accounts• Web applications• MySite host• Service application pool (and an IISRESET)• State Service• Usage Service• Search• User Profile Service• The rest

Everyday tasks - Overview• Add-SPShellAdmin• Move-SPSite• Enable Developer Dashboard• Visual Upgrade• Troubleshooting• Master pages• Get database sizes

Add-SPShellAdmin• Necessary for unprivileged accounts, since

you’re not logging in as the Farm account, right? RIGHT??

• Must specify databases to give access to• Gives permissions to an account• WSS_Admin_WPG on SharePoint servers• SharePoint_Shell_Access role on database

• To run it account must have:• Security_Admin role SQL instance • db_owner role on database• Local admin on SharePoint server

Move-SPSite• Used to move Site Collections between

content databases• Everything ‘mergecontentdbs’ can do,

this can do better• Mostly done on the SQL side• Databases must be attached to the

same web application, be on the same SQL instance, and have the same favorite color

• Works great to get rid of Content databases with GUIDs

Developer Dashboard• Can be enabled with STSADM, but

that’s just embarrassing• More flexibility with PowerShell

$dash = [Microsoft.SharePoint.Administration.SPWebService]::ContentService.DeveloperDashboardSettings;

$dash.DisplayLevel = 'OnDemand';

$dash.TraceEnabled = $true;

$dash.Update()

Visual Upgrade• Can be used to rapidly check or change

status$db = Get-SPContentDatabase WSS_Content_SharePoint_2007 $db.Sites | Get-SPWeb -limit all | ForEach-Object {$_.UIversion = 4; $_.UIVersionConfigurationEnabled = $false; $_.update()}

• Or$db = Get-SPContentDatabase WSS_Content_SharePoint_2007 $db.Sites | foreach-object {$_.VisualUpgradeWebs}

Troubleshooting• Use New-SPLogFile immediately before

and right after recreating a problem• Use Merge-SPLogFiles to collect trace

logs from all servers in your farm• Use Get-SPLogEvent to get events• Can filter by a number of properties,

like Correlation ID• Can point at alternate directory

Get-SPLogEvent -StartTime (Get-Date).addminutes(-10) –Directory e:\logs | Where-Object {$_.correlation -eq "dc07834b-9982-4eaf-aacf-d62a6b398f87"}

Master Pages• Can be used to set the master page$web = Get-SPWeb http://sharepoint $web.CustomMasterUrl = "/_catalogs/masterpage/nightandday.master" $web.MasterUrl = "/_catalogs/masterpage/nightandday.master" $web.Update()

Database Information• Use Get-SPDatabase to get list of

databases and their properties

Get-SPDatabase | Sort-Object disksizerequired -desc | Format-Table Name, @{Label ="Size in MB"; Expression = {$_.disksizerequired/1024/1024}}

Get-SPDatabase | ForEach-Object {$db=0} {$db +=$_.disksizerequired; $_.name + " - " + $_.disksizerequired/1024/1024} {Write-Host "`nTotal Storage (in MB) =" ("{0:n0}" -f ($db/1024/1024))}

A short list of people that are smarter than us

• Zach Rosenfield’s blog• http://sharepoint.microsoft.com/Blogs/zach

• SPModule• http://

www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=c57556ff-8df0-44fd-aba6-3df01b9f80ce

• Gary Lapointe’s blog• http://stsadm.blogspot.com/

• Document your farm with PowerShell• http://technet.microsoft.com/en-us/library/ff645391.aspx

• PS Scripts• http://get-spscripts.com/

Things we referenced

• Determine database sizes in PowerShell• http://www.toddklindt.com/blog/Lists/Posts/Post.aspx?ID=193

• Using PowerShell to control Visual Upgrade• http://www.toddklindt.com/blog/Lists/Posts/Post.aspx?ID=173

• Remoting requirements for SharePoint 2010• http://

sharepoint.microsoft.com/blogs/zach/Lists/Posts/Post.aspx?ID=45• Developer Dashboard

• http://www.toddklindt.com/blog/Lists/Posts/Post.aspx?ID=189• Master Pages

• http://www.toddklindt.com/blog/Lists/Posts/Post.aspx?ID=226• Good farm configuration script from another Todd

• http://todd-carter.com/post/2010/04/26/The-Wizard-Likes-His-GUIDs.aspx

• Use Move-SPSite• http://www.toddklindt.com/blog/Lists/Posts/Post.aspx?ID=233

Thanks

Please fill out your evaluations

And tip your wait staff

top related