sharepoint 2010 administration using powershell brian caauwe senior consultant – sharepoint –...
Post on 21-Dec-2015
217 views
TRANSCRIPT
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
– Email: [email protected]– Blog: http://blogs.inetium.com/blogs/bcaauwe
• MCTS - SharePoint v3
Who am I?
• 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
Minnesota SharePoint User Group
www.sharepointmn.com
POWERSHELL BASICS
• 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)
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 Blog• 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 http://portal.company.com | Get-SPSite -Limit All | Get-SPWeb -Limit All
• Get-SPSite http://portal.company.com | Set-SPSite -SecondaryOwnerAlias DOMAIN\username
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 http://portal.company.com/dept/* | foreach{New-SPWeb -Url ($_.Url + "/blog") -Template Blog#0}
– Get-SPWebApplication http://portal.company.com | Get-SPSite -Limit All | Get-SPWeb -Limit All | ?{$_.WebTemplate –eq “Blog”} | Select Url, Title, WebTemplateId
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 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
Remote Scripting
DEMO
Q & A
• TechNet – Windows PowerShell for SharePoint Server 2010– http://technet.microsoft.com/en-us/library/ee662539(offi
ce.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
References
A key element to your success.