2. Craig Pilkenton
o SharePoint Engineer at MassMutual
• Enterprise User Group Lead
• SharePoint Trainer
o Western Mass Microsoft User Group: Co-Lead
(http://mstech.org)
o LinkedIn.com
(http://www.linkedin.com/in/craigpilkenton)
Western Mass Microsoft User
Group--Using Powershell to
Manage SharePoint 1/11/2012 2
3. Overview: what is Windows Powershell
What can('t) it do?
Managing Server‟s
Managing SharePoint
Updating SharePoint
Take-Away‟s
Western Mass Microsoft User
Group--Using Powershell to
Manage SharePoint 1/11/2012 3
4. What is Windows Powershell?
o Powershell is the new extensible command-line shell we
can run on any Windows Server or desktop that allows
for automating administrative tasks, executing any other
command-line toolset, or for calling any regular .NET
class, including those for the SharePoint platform.
What does this really mean?
o Powershell allows for automating repetitive maintenance
tasks, modularizing scripts to “snap-on” future
functionality, built-in enumeration objects, and calling any
other command-line or .NET object to get work done (e.g.
FTP, file-shares, email, etc.). Everything that is queried or
returned to us is an „object‟ that has all of the available
properties and methods.
Western Mass Microsoft User
Group--Using Powershell to
Manage SharePoint 1/11/2012 4
5. What does Powershell look like?
Western Mass Microsoft User
Group--Using Powershell to
Manage SharePoint 1/11/2012 5
6. Demo : Usage and interaction
Western Mass Microsoft User
Group--Using Powershell to
Manage SharePoint 1/11/2012 6
7. Monitor server status & activate (Get-Service, Get-
EventLog, dir/ls, Stop-Service, Restart-Service)
Import/export files for processing or reports (Import-
Csv, Export-Csv, Out-File, Copy-Item, FTP)
Call other command-line utilities
(STSADM.exe, RoboCopy, Team Foundation Server, WinZip)
Instantiate .NET objects to use their functionality
(Email, FileInfo, ArrayList, Hashtable)
Instantiate SharePoint‟s .NET objects to manage the platform
(Site-level, subweb-level, Document Library/List-
level, permission-level)
And just about anything else…
Western Mass Microsoft User
Group--Using Powershell to
Manage SharePoint 1/11/2012 7
8. Many out-of-the-box cmdlets
Not just informational, but reaction-able
o Get-Service
Stop-Service and/or Restart-Service can be fired as
logic determines
o Get-EventLog
Watch for certain events and then fire other
cmdlets, applications, or cmdlets in response
o dir/ls (Get-ChildItem)
Can look for files existing and if not, take action to
get or remove
Western Mass Microsoft User
Group--Using Powershell to
Manage SharePoint 1/11/2012 8
9. Demo : Monitoring our server, and reacting
to it
Western Mass Microsoft User
Group--Using Powershell to
Manage SharePoint 1/11/2012 9
10. Everything returned is a SharePoint object
A „Site‟ object is instantiated AND must be
disposed of when finished
o Load the Microsoft.SharePoint .NET 2.0 object into
memory
o Create a „New-Object‟ to store the SharePoint site
inside of
o Begin querying the new object for its
properties, methods, and stored values; some of
which may be other SharePoint objects and/or
collections themselves
Western Mass Microsoft User
Group--Using Powershell to
Manage SharePoint 1/11/2012 10
11. Demo: Checking on our SharePoint
environment
Western Mass Microsoft User
Group--Using Powershell to
Manage SharePoint 1/11/2012 11
12. We still have a handle to the SharePoint site
object to manipulate
So what does it take?
o We open a new SubWeb object (but this can be done
at any level)
o Inside of our SubWeb object, create a new List
object
o On the new List object, create an instance of an
item, add column-value pairs that match the
SharePoint List,
o Finally call the .Update() method to add new item
Western Mass Microsoft User
Group--Using Powershell to
Manage SharePoint 1/11/2012 12
13. Demo: Add a new Announcement to our
SharePoint site
Western Mass Microsoft User
Group--Using Powershell to
Manage SharePoint 1/11/2012 13
14. Powershell can manage any Microsoft server
or platform (some actually have inherent
cmdlets available e.g. Exchange
2007, SQL, etc.)
Not only is Microsoft moving all
server/platforms to this model, many
vendors are doing the same with their
software packages and/or tools
Powershell not only talks to almost any
command-line interface, but allows for
reflexive decisions based on that data
Western Mass Microsoft User
Group--Using Powershell to
Manage SharePoint 1/11/2012 14
15. Links
o Windows Powershell Team
http://blogs.msdn.com/powershell/
o PowershellCommunity.org
http://www.powershellcommunity.org/
o Microsoft Online—Windows SharePoint Services
http://office.microsoft.com/en-
us/sharepointtechnology/FX100503841033.aspx
Western Mass Microsoft User
Group--Using Powershell to
Manage SharePoint 1/11/2012 15