Download presentation
Presentation is loading. Please wait.
Published byMartin Sparks Modified over 9 years ago
1
PowerShell Brian Caauwe – Senior Consultant April 14, 2012 The Administrator’s Best Friend
2
Session Agenda What you need to know Top 10 Cmdlets Top 10 Scripts
3
Brian Caauwe – SharePoint Consultant & Speaker Email: bcaauwe@avtex.combcaauwe@avtex.com Twitter: @bcaauwe Blog: http://blog.avtex.com/author/bcaauwehttp://blog.avtex.com/author/bcaauwe – Certifications MCITP: SP Administrator 2010 MCPD: SP Developer 2010 Who am I?
4
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 – 5/9 TBD www.sharepointmn.com
5
Quick Poll SharePoint Version – 2007 – WSS, MOSS – 2010 – SPF, Server, FAST Work Roles – SharePoint Administrator – SharePoint Developer – Business User – Other
6
What you need to know
7
You won’t learn by books or sessions Find YOUR practical applications
8
What you need to know Run “As Administrator” Uses powershell.exe under Windows\system32 Registers Microsoft.SharePoint.PowerShell snap-in via script – C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\CONFIG\POWERSHELL\ Registration\sharepoint.ps1 Sets Execution Policy to RemoteSigned Management Shell
9
What you need to know Microsoft.SharePoint namespace Server Architecture – SPFarm – SPWebApplication – SPContentDatabase Site Architecture – SPSite – SPWeb – SPList – SPListItem MSDN Resource – http://msdn.microsoft.com/en-us/library/ms473633.aspx http://msdn.microsoft.com/en-us/library/ms473633.aspx Object Model
10
What you need to know Call PowerShell from Windows\system32 Register Microsoft.SharePoint.Powershell snap-in -psconsolefile “C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\CONFIG\POWERSHELL \Registration\psconsole.psc1” Call Script -command “E:\PowerShell\Set-ScriptName.ps1” Logging Scheduled Tasks
11
What you need to know Disposable Objects $web.Dispose() $site.Dispose() SPAssignment – Garbage Collector – Global Start-SPAssignment –Global Get-SPSite -Limit All | Get-SPWeb | Select Url, WebTemplate, WebTemplateId | Format-Table -AutoSize Stop-SPAssignment -Global – Scoped $w = Get-SPWebApplication http://www.company.com $siteScope = Start-SPAssignment foreach ($site in ($siteScope | Get-SPSite -Limit All –WebApplication $)) { $webScope = Start-SPAssignment foreach ($web in ($webScope | Get-SPWeb -Limit All -Site $site)) { ## Do Something } Stop-SPAssignment $webScope } Stop-SPAssignment $siteScope Memory Leakage
12
What you need to know Crazy setup Run Commands on SharePoint servers – Enable-PSRemoting –force – Enable-WSManCredSSP –role Server –force – Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 1024 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 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\\servername\spmodule; – Import-Module SPModule.misc – Import-Module SPModule.setup Remote Scripting
13
What you need to know Other Assemblies – IIS (WebAdministration) – SQL – Exchange User Profile – Microsoft.Office.Server.UserProfiles Managed Metadata – Microsoft.SharePoint.Taxonomy What you don’t get
14
Top 10 Cmdlets
15
Tools for the toolbox Some SharePoint, Some NOT – SharePoint requires 2010
16
Top 10 Cmdlets How to Use – Built in help EVERYWHERE – Start with what you know to find what you don’t Examples – Get-Command *-SPFeature* – Get-Help Backup-SPSite -Examples Get-Command | Get-Help
17
Top 10 Cmdlets How to use – Main Cmdlets you will use – Limit parameter – SPSite and SPWeb are disposable Example – $w = Get-SPWebApplication http://my.company.comhttp://my.company.com – $site = Get-SPSite http://my.company.comhttp://my.company.com – $site | Get-SPWeb -Limit All Get-SPWebApplication | Get-SPSite | Get-SPWeb
18
Top 10 Cmdlets How to use – Maintain services on server – Get current server with environment variable – Start-SPServiceInstance may need other configuration Example – $server = Get-SPServer $env:COMPUTERNAME – $svc = Get-SPServiceInstance -Server $server | ?{$_.TypeName -eq “Excel Calculation Services”} – if ($svc.Status –eq “Disabled”){ Start- SPServiceInstance } Get-SPServer | Get-SPServiceInstance
19
Top 10 Cmdlets How to use – Maintain properties of service applications – Pipe to query on TypeName Example – $svcApp = Get-SPServiceApplication | ?{$_.TypeName - eq “User Profile Service Application”} – $svcApp.NetBIOSDomainNamesEnabled = $true – $svcApp.Update() Get-SPServiceApplication
20
Top 10 Cmdlets How to use – Great for troubleshooting – Creates new log file on that server Example – New-SPLogFile New-SPLogFile
21
Top 10 Cmdlets How to use – Merges last hour of logs across farm – Can consume CorrelationId and other filters Example – Merge-SPLogFile –Path “C:\Debug\error.log” – Correlation 470a4ec2-985d-43be-a14e-176eb1c39672 Merge-SPLogFile
22
Top 10 Cmdlets How to use – Gets ALL log events (no time filter) – Single server – Pipe to query and use -StartTime parameter Example – $guid = “470a4ec2-985d-43be-a14e-176eb1c39672” – Get-SPLogEvent –StartTime (Get-Date).AddHours(-1) | ?{$_.Correlation –eq $guid} | Format-List Timestamp, Category, Message | Out-File “c:\Debug\debug.log” Get-SPLogEvent
23
Top 10 Cmdlets How to use – Add farm solution to solution store – Automated deployments Example – Add-SPSolution –LiteralPath “C:\Solutions\spcmis.wsp” – $sol = Get-SPSolution | ?{$_.Name –eq “spcmis.wsp”} – $sol | Install-SPSolution –GACDeployment - AllWebApplications Add-SPSolution | Get-SPSolution | Install-SPSolution
24
Top 10 Cmdlets How to use – Write to the file – Nice for logging on scheduled tasks – Use -Append parameter Example – $msg = “This is what I want to send to the file” – $path = “logging.log” – $currentTime = Get-Date –UFormat “%H:%M:%S” – $msg = $currentTime + “ :: DEB :: “ + $msg – $msg | Out-File $path -append Out-File
25
Top 10 Cmdlets How to use – Write-Host used to display status to the screen Use ForegroundColor for color coding – Read-Host used to get user input Example – $url = Read-Host “What is the web application URL” – $w = Get-SPWebApplication $url – Write-Host -ForegroundColor Green $w.Url Write-Host | Read-Host
26
Top 10 Scripts
27
My favorites to find information in a crazy world
28
Top 10 Scripts What it uses – Merge-SPLogFile – Get-SPLogEvent When to use it – When you get a correlation ID How to use it – Choose to query farm or current server Get-ErrorLog.ps1
29
Top 10 Scripts What it uses – Start-SPAssignment / Stop-SPAssignment – Get-SPWebApplication / Get-SPSite When to use it – Get storage size and quota How to use it – Run as scheduled task or on demand Get-SiteStorageInfo.ps1
30
Top 10 Scripts What it uses – Start-SPAssignment / Stop-SPAssignment – Get-SPWebApplication / Get-SPSite / Get-SPWeb When to use it – Get web properties (Url, Template, Author, Last Modified) How to use it – Run as scheduled task or on demand Get-WebInfo.ps1
31
Top 10 Scripts What it uses – Start-SPAssignment / Stop-SPAssignment – Get-SPWebApplication / Get-SPSite / Get-SPWeb – SPList / SPContentType / SPWorkflowAssociation When to use it – Get workflow properties (SPD, Author, Running Instances) How to use it – Run as scheduled task or on demand Get-WorkflowInfo.ps1
32
Top 10 Scripts What it uses – Start-SPAssignment / Stop-SPAssignment – Get-SPWebApplication / Get-SPSite / Get-SPWeb – SPList When to use it – Get version properties (Item Count, Versioning, Limits) How to use it – Run as scheduled task or on demand Get-VersionInfo.ps1
33
Top 10 Scripts What it uses – System.Net.CredentialCache / WebClient – Get-SPWebApplication / Get-SPSite – Get-Content When to use it – Keep system connections “hot” How to use it – Run as scheduled task or on demand Reference – Kirk Hofer http://kirkhofer.wordpress.com/2008/10/18/sharepoint-warm-up-script/ – Martin Laukkanen http://nearbaseline.com.au/blog/2010/02/powershell-warmup-script-2/ Warmup-Farm.ps1
34
Top 10 Scripts What it uses – Microsoft.Office.Server.UserProfiles – Start-Transcript – Update-SPProfilePhotoStore When to use it – Centrally managed photos to push into SharePoint How to use it – Run as scheduled task or on demand Set-UserProfileImages.ps1
35
Top 10 Scripts What it uses – Get-SPWeb / SPSite – SPAlert When to use it – Fix up alerts after changing web application url or site collection url How to use it – Invoke-AlertFixup -site “http://teams/sites/newteam” - oldurl “http://teams/sites/oldteam” Reference – TechNet http://technet.microsoft.com/en-us/library/cc508847.aspx Invoke-AlertFixup.ps1
36
Top 10 Scripts What it uses – Get-Item – New-ItemProperty When to use it – Need to check for registry value and create if needed How to use it – Use as part of build scripts other server admin Check-Loopback.ps1
37
Top 10 Scripts What it uses – Microsoft.Web.Administration When to use it – Used to recover application pool credentials How to use it – Run on demand, requires application pool name Reference – Raymond Mitchell (IWKid) http://www.iwkid.com/blog/Lists/Posts/Post.aspx?ID=85 Get-AccountCreds.ps1
38
DEMO
39
References Brian’s Blog – http://blog.avtex.com/author/bcaauwe http://blog.avtex.com/author/bcaauwe Windows PowerShell for SharePoint 2010 – http://technet.microsoft.com/en-us/sharepoint/ff603532.aspx http://technet.microsoft.com/en-us/sharepoint/ff603532.aspx Script References – Invoke-AlertFixup http://technet.microsoft.com/en-us/library/cc508847.aspx – Raymond Mitchell’s Blog http://www.iwkid.com/blog – Kirk Hofer’s Blog http://kirkhofer.wordpress.com – Martin Laukkanen http://nearbaseline.com.au/blog/2010/02/powershell-warmup- script-2/ http://nearbaseline.com.au/blog/2010/02/powershell-warmup- script-2/
40
Q & A
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.