230 likes | 375 Views
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
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