SharePoint 2010 Administration using PowerShell Brian Caauwe Senior Consultant – SharePoint – MCTS March 20, 2010
Introduction PowerShell Basics PowerShell & SharePoint 2010 Demo Q&A Session Agenda
Brian Caauwe Consultant & Speaker – –Blog: MCTS - SharePoint v3 Who am I?
2 nd 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 Minnesota SharePoint User Group
POWERSHELL BASICS
More than just a command prompt Not Exclusive to SharePoint –Exchange 2007 –SQL 2008 –More… Get PowerShell –Windows Server 2003 (KB926139)KB –Windows Server 2008 (Activate Feature) Tab is your friend (auto-complete) Getting Started
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) 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”) Even More PowerShell Information
File Extension (.ps1) Running Scripts –Call using.\script.ps1 ExecutionPolicy minimum RemoteSigned PowerShell Scripts
Output to Console (Write-Host) Output to File (Out-File) PowerShell Output
Get-Help Get-Member PowerShell Help
POWERSHELL & SP 2010
Uses PowerShell v2.0 –Allows Remote Access Microsoft.SharePoint.PowerShell namespace –Get-Command -pssnapin “Microsoft.SharePoint.PowerShell” | more –Beta2 = ~535 cmdlets Download Help files (.chm) from my BlogBlog SharePoint 2010 Management Shell –*Run as Administrator SharePoint 2010
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 Shell Administrator
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 SharePoint 2010 Cmdlet Basics
New-SPConfigurationDatabase (replacing psconfig) Add-SPSolution / Deploy-SPSolution New-SPLogFile Get-SPLogEvent -StartTime (Get- Date).AddHours(-2) -EndTime (Get- Date).AddMinutes(-10) Helpful Cmdlets
Using the Pipe (|) –Joins statements together Get-SPWebApplication | Get- SPSite -Limit All | Get-SPWeb -Limit Allhttp://portal.company.com Get-SPSite | Set-SPSite - SecondaryOwnerAlias DOMAIN\usernamehttp://portal.company.com 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-SPSite | foreach{New-SPWeb -Url ($_.Url + "/blog") - Template Blog#0} –Get-SPWebApplication | Get-SPSite -Limit All | Get-SPWeb -Limit All | ?{$_.WebTemplate –eq “Blog”} | Select Url, Title, WebTemplateIdhttp://portal.company.com More Advanced Cmdlets
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 Store Credentials in a variable –$cred = Get-Credential Load Modules –$env:PSModulePath = \\servername\spmodule; + $env:PSModulePath\\servername\spmodule; –Import-Module SPModule.misc –Import-Module SPModule.setup Remote Scripting
DEMO
Q & A
TechNet – Windows PowerShell for SharePoint Server 2010 – us/library/ee662539(office.14).aspxhttp://technet.microsoft.com/en- us/library/ee662539(office.14).aspx TechNet – Getting Started: Windows PowerShell for SharePoint 2010 Administrators – us/sharepoint/ee aspxhttp://technet.microsoft.com/en- us/sharepoint/ee aspx Zach Rosenfield’s Blog – gories/Category.aspx?Name=PowerShellhttp://sharepoint.microsoft.com/blogs/zach/Lists/Cate gories/Category.aspx?Name=PowerShell Brian Caauwe’s Blog – References
A key element to your success.