230 likes | 362 Views
Join Brian Caauwe, Senior Consultant and MCTS-certified specialist, as he explores SharePoint 2010 administration through PowerShell in this insightful session. This presentation will cover the basics of PowerShell, its integration with SharePoint 2010, and include practical demonstrations. Attendees will learn essential cmdlets, scripting techniques, and how to efficiently manage SharePoint environments. Perfect for SharePoint administrators seeking to enhance their skills with powerful automation tools. Don’t miss the opportunity to deepen your understanding of PowerShell in a SharePoint context!
E N D
SharePoint 2010 Administration using PowerShell Brian Caauwe Senior Consultant – SharePoint – MCTS March 20, 2010
Session Agenda • Introduction • PowerShell Basics • PowerShell & SharePoint 2010 • Demo • Q&A
Who am I? • Brian Caauwe • Consultant & Speaker • Email: bcaauwe@inetium.com • Blog: http://blogs.inetium.com/blogs/bcaauwe • MCTS - SharePoint v3
Minnesota SharePoint User Group • 2nd Wednesday of the Month • 9:00 – 11:30 AM • SharePoint resources and links • Meeting Schedule • Past User Group Presentations • This Presentation • Next Meeting – 4/14 • Business Process and Digital Forms 2007 / 2010 www.sharepointmn.com
Getting Started • More than just a command prompt • Not Exclusive to SharePoint • Exchange 2007 • SQL 2008 • More… • Get PowerShell • Windows Server 2003 (KB926139) • Windows Server 2008 (Activate Feature) • Tab is your friend (auto-complete)
More PowerShell Information • Use .NET objects • System.String • System.Int32 • Etc. • Access Registry • cd HKLM:\System • cd HKCU:\Software • Store Variables • $myArray = “value1”,”value2”,”value3” • Supports Complex operations • Loops (For, While) • If / Else • Switch • Supports Functions • Function Get-Information([string]$arg)
Even More PowerShell Information • Syntax differences • Operators • -lt is Less than (<) • -le is Less than or Equal To (<=) • -eq is Equivalent (==) • -gt is Greater than (>) • -ge is Greater than or Equal to (>=) • -ne is Not Equal (!=) • -or is Logical Or (||) • -and is Logical And (&&) • ? is Where (Where-Object) • Enums and Static Methods • [System.Reflection.Assembly]::LoadWithPartialName(“Microsoft.SharePoint”)
PowerShell Scripts • File Extension (.ps1) • Running Scripts • Call using .\script.ps1 • ExecutionPolicy minimum RemoteSigned
PowerShell Output • Output to Console (Write-Host) • Output to File (Out-File)
PowerShell Help • Get-Help • Get-Member
SharePoint 2010 • Uses PowerShell v2.0 • Allows Remote Access • Microsoft.SharePoint.PowerShell namespace • Get-Command -pssnapin “Microsoft.SharePoint.PowerShell” | more • Beta2 = ~535cmdlets • Download Help files (.chm) from my Blog • SharePoint 2010 Management Shell • *Run as Administrator
SharePoint Shell Administrator • SharePoint_Shell_Access SQL Server Role • Get-SPShellAdmin • Add-SPShellAdmin • Need to be a local admin to run this cmdlet • Adds user to WSS_Admin_WPG • Remove-SPShellAdmin
SharePoint 2010 Cmdlet Basics • All Cmdlets are Object Model Based • SPSite • SPWeb • Etc… • Start-SPAssignment / Stop-SPAssignment • Garbage Collector for Disposable objects • Can be used on variables or globally • Use the -WhatIF parameter to see what “would” happen
Helpful Cmdlets • New-SPConfigurationDatabase (replacing psconfig) • Add-SPSolution / Deploy-SPSolution • New-SPLogFile • Get-SPLogEvent -StartTime(Get-Date).AddHours(-2)-EndTime (Get-Date).AddMinutes(-10)
Advanced Cmdlets • Using the Pipe (|) • Joins statements together • Get-SPWebApplicationhttp://portal.company.com | Get-SPSite -Limit All | Get-SPWeb -Limit All • Get-SPSitehttp://portal.company.com| Set-SPSite -SecondaryOwnerAliasDOMAIN\username
More Advanced Cmdlets • Querying Objects • Get-SPWeb-Filter {$_.Template -eq“Blog"} • Get-SPLogEvent -StartTime (Get-Date).AddHours(-1)| ?{$_.Correlation -eq$guid} | Select Timestamp, Category, Message • Get-SPSitehttp://portal.company.com/dept/*| foreach{New-SPWeb -Url ($_.Url + "/blog") -Template Blog#0} • Get-SPWebApplicationhttp://portal.company.com | Get-SPSite -Limit All | Get-SPWeb -Limit All | ?{$_.WebTemplate –eq“Blog”} | Select Url, Title, WebTemplateId
Remote Scripting • Run Commands on SharePoint servers • Enable-PSRemoting –force • Enable-WSManCredSSP –role Server –force • Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 1000 • Run Commands on local machine • Enable-PSRemoting -force • Enable-WSManCredSSP –role Client –DelegateComputer “*.domain.com or COMPUTERNAME” –force • Shared SPModule (\\servername\spmodule) • Zach Rosenfields’s Blog http://sharepoint.microsoft.com/blogs/zach/Lists/Posts/Post.aspx?ID=54 • Store Credentials in a variable • $cred = Get-Credential • Load Modules • $env:PSModulePath = \\servername\spmodule; + $env:PSModulePath • Import-Module SPModule.misc • Import-Module SPModule.setup
References • TechNet – Windows PowerShell for SharePoint Server 2010 • http://technet.microsoft.com/en-us/library/ee662539(office.14).aspx • TechNet – Getting Started: Windows PowerShell for SharePoint 2010 Administrators • http://technet.microsoft.com/en-us/sharepoint/ee518673.aspx • Zach Rosenfield’s Blog • http://sharepoint.microsoft.com/blogs/zach/Lists/Categories/Category.aspx?Name=PowerShell • Brian Caauwe’s Blog • http://blogs.inetium.com/blogs/bcaauwe