CNT 4603: System Administration Spring 2012 Scripting – Windows PowerShell – Part 1
Best practices and tools for PowerShell and SharePoint Scripting SharePointFest SIA202
-
Upload
michael-blumenthal -
Category
Technology
-
view
295 -
download
1
description
Transcript of Best practices and tools for PowerShell and SharePoint Scripting SharePointFest SIA202
SIA 202Tools and Best Practices
When PowerShell Scripting for SharePoint
Michael BlumenthalPSC Group, LLC
2
Who is Michael Blumenthal?
Sr. Solution Architectat PSC Group
CSPUG Co-LeaderINETA Champ 2010-201219 years in IT Consulting10 years working with
SharePoint (2003,2007,2010, 2013)
3
This is about you
Version of SharePoint?Admin, Developer, Both, Other?PowerShell experience?SharePoint experience?Unix experience?Scripting experience?
4
Agenda
• Tools 1• One Trick2• Best Practices3• Resources4
5
Chapter 1
TOOLS
ToolsISE• Add Windows Feature
PowerShell Plus - Idera• SP2010 focused
PowerGui• Pro version Too
PowerShell Studio - Sapien• Not Free
Visual Studio 2012
7
ISE, ISE Baby
Microsoft’s
Available Since POSH V2• SP2010 -> POSH 2; SP2013 -> POSH 3
OS Feature
8
You might have to add the ISE
9
V1
10
V2Use With SP2010
11
PowerShell V3 ISE - for SP2013
12
POSH vs the SharePoint Mgmt Shell
POSH + SnapIn = SharePoint Management Shell
13
Where is it?
14
15
PowerGUI
Created for POSH v1 originally
Free & large community support
Lots of Add-ons• SCCS in Pro
16
17
PowerGUI screen shot
18
Idera’s PowerShell Plus
Free with ads for Idera’s other productsIncludes support for SP2010, but not 2013
Framework Dependecy….Lots of features…. Bloated Overkill?
19
20
Sapien’s PowerShell Studio
Trial requires special trial license in a VMDoes create a POSH Library
21
22
Sapien Bonus
23
Visual Studio 2012 Integration with TFSFor SharePoint developers, tool of choiceAdd-ons available
24
25
26
27
Conclusion on POSH IDEs
One TrickDecompiling a SharePoint Page
29
Use a Decompiler to see MSFT’s Code!
ILSpy.net
dotPeek (jetbrains)
justDecompile (Telerik)
.Net Reflector(RedGate)
Others…
30
31
32
33
34
35
Chapter 3
BEST PRACTICES
36
Best Practices
• Write your scripts as functions that announce themselves1
• Comment Your Functions2• Follow the Verb-Noun pattern3•Use Source Control4
37
Self Announcing Functions
…
38
Comment your functions
<#.SYNOPSIS –a brief explanation of what the script or function does..DESCRIPTION – a more detailed explanation of what the script or function does..PARAMETER name – an explanation of a specific parameter. Replace name with the parameter name. You can have one of these sections for each parameter the script or function uses..EXAMPLE – an example of how to use the script or function. You can have multiple .EXAMPLE sections if you want to provide more than one example..NOTES – any miscellaneous notes on using the script or function..LINK – a cross-reference to another help topic; you can have more than one of these. If you include a URL beginning with http:// or https://, the shell will open that URL when the Help command’s –online parameter is used.
#>
39
Use an Action-Thing Function Name
Add Backup Clear Connect Convert Copy Disable Disconnect Dismount Enable
Etc…
SPAppDeniedEndpoint SPClaimTypeMapping SPDiagnosticsPerformanceCounter SPDistributedCacheServiceInstance SPEduClassMember SPEduUser SPInfoPathUserAgent SPPluggableSecurityTrimmer SPProfileLeader SPProfileSyncConnection
Etc…
42 verbs combined with 347 nouns to give us 799 cmdlets
40
41
Find custom commands this way
Refresh the command list
Actions you can take once you fill in parameters
42
TFS for Source Code Control
43
Compare versions
44
Compare Versions – the Diff
45
More Good Ideas
Always read scripts before running themMake yours safe when others don’tCheck for valid parameter values get-help about_Functions_Advanced_Parameters
Do error handling get-help about_Try_Catch_Finally get-help about_CommonParameters
-ErrorAction and -ErrorVariable
Dispose of SPWebs and SPSites
46
Chapter 4
MORE RESOURCES
48
49
50
51
52
53
54
JEFF HICKS
55
Resources SummaryMSFT
Reverse Engineering SharePoint PagesBruce Payette’s Book v2PowerShell Product Team Blog
CommunityCodePlex: PSBBs (mine), CodePlex:SPInstaller My Blog at BlumenthalIT.NetJeff Hicks , Gary LaPointe, Raymond Mitchell, Todd Klindt, SharePoint JackPOSHCODE.ORG, ScriptCenter, get-spscripts.com
56
Improve your POSH Scripts.Your future self will thank you.
It’s Easy to Get Started!
Learn & Use the PowerShell Syntax
More Resources
In Review…
57
Questions& Raffle
• Michael BlumenthalSharePoint ArchitectPSC Group, LLC
• [email protected]• psclistens.com• www.cspug.org• Twitter: @MichaelBL• SPYam
Thank you for your time today.