Best practices and tools for PowerShell and SharePoint Scripting SharePointFest SIA202

Post on 07-Nov-2014

296 views 1 download

Tags:

description

Best practices for using PowerShell scripting with SharePoint 2013, SharePoint 2010, and MOSS 2007.

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

Mblumenthal@PSCListens.com

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

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

• MBlumenthal@psclistens.com• psclistens.com• www.cspug.org• Twitter: @MichaelBL• SPYam

Thank you for your time today.