SharePoint Saturday Charlotte 2010 Recap, Slides and Photos

NorthCarolina     This past weekend I attended SharePoint Saturday Charlotte (SPSCLT) in Charlotte, North Carolina.  For those unfamiliar, SharePoint Saturday is a community driven event where various speakers gather to present at a FREE conference on all topics related to SharePoint.  This made my fourth SharePoint Saturday attended and third I’ve spoken at.  The event was very well organized, attended, and a pleasure to be a part of along with many other great speakers.

At SharePoint Saturday Charlotte I had the opportunity to give two presentations.  First was “The Power of PowerShell + SharePoint 2007” and second was a new one “Managing SharePoint 2010 Farms with PowerShell.”  I want to thank everyone who attended either of my sessions and for all of the feedback given.  Below you will find links to my slides, demo scripts, and pictures taken throughout the event.  If anyone has any questions from the slides or scripts feel free to drop me a line.

 

Pictures

SharePoint Saturday Charlotte Apr ’10 Pictures on Facebook (recommend these with comments and tagging)

 

 

Slides, Scripts, and Rating Links

SharePoint Saturday Charlotte Apr ’10 Slides and Demo Scripts

SpeakerRate: The Power of PowerShell + SharePoint 2007

SpeakerRate: Managing SharePoint 2010 Farms with PowerShell

 

Conclusion

Big thanks out to Brian Gough (@bkgough), Dan Lewis (@sharepointcomic) and all of the other organizers of this event.  Also a big thanks out to the other speakers and sponsors (too many to list) who made the event possible.  Lastly thanks to my Sogeti coworker Kelly Jones (@kellydjones) for picking me up from the airport and a ride back to Columbus.  I hope everyone that attended got something out of the event and will continue to grow the SharePoint community.  I’m on a break from conferences for a few weeks and then have 3 more back to back weekends in May, blog posts announcing those coming later.  Enjoy the slides, scripts, and pictures.

 

-Frog Out

PowerShell Script to Create PowerShell Profile

    Utilizing a PowerShell profile can help any PowerShell user save time getting up and running with their work.  For those unfamiliar a PowerShell profile is a file you can store any PowerShell commands that you want to run when you fire up a PowerShell console (or ISE.)  In my typical profiles (example here) I load assemblies (like SharePoint 2007 DLL), set aliases, set environment variable values (such as max history), and perform other general customizations to make my work easier.  Below is a sample script that will check to see if a PowerShell profile (Console or ISE) exists and create it if not found.  The .ps1 script file version can also be downloaded from my SkyDrive here.

Note: if downloading the .ps1 file, be sure you have enabled unsigned scripts to run on your machine as I have not signed mine.

 

$folderExists = test-path -path $Env:UserProfileDocumentsWindowsPowerShell

if($folderExists -eq $false)

{

    new-item -type directory -path $Env:UserProfileDocumentsWindowsPowerShell > $null

    echo "Containing folder for profile created at: $Env:UserProfileDocumentsWindowsPowerShell"

}

 

$profileExists = test-path -path $profile

if($profileExists -eq $false)

{

    new-item -type file -path $profile > $null

    echo "Profile file created at: $profile"

}

    A few things to note while going through the above script.

  • $Env:UserProfile represents the personal user folder (c:documents and settings…. on older OSes like XP and c:Users… on Win 7) so it adapts to whichever OS you are running but was tested against Windows 7 and Windows Server 2008 R2.
  • “ > $null” sends the command to a null stream.  Essentially this is equivalent to DOS scripting of “@ECHO OFF” by suppressing echoing the command just run, but only for the specific command it is appended to.  I haven’t yet found a better way to accomplish command suppression, but this is definitely not required for the script to work.
  • $profile represent a standard variable to the file path of the profile file.  It is dynamic based on whether you are running PowerShell Console or ISE.

 

Conclusion

    In less than two weeks (Apr. 10th to be exact) I’ll be heading down to SharePoint Saturday Charlotte (SPSCLT) to give two presentations on using PowerShell with SharePoint.  Since I’ll be prepping a lot of material for PowerShell I thought it only appropriate to pass along this nice little script I recently created.  If you’ve never used a PowerShell profile this is a great chance to start using one.  If you’ve been using a profile before, perhaps you learned a trick or two to add to your toolbox.  For those of you in the Charlotte, NC area sign up for the SharePoint Saturday and see some great content and community with great folks.

 

      -Frog Out

SharePoint Saturday Cleveland 2009 Recap

As noted in my previous post I attended and spoke at the SharePoint Saturday Cleveland 2009 conference.  For those unfamiliar, SharePoint Saturday is a community driven event where various speakers gather to present at a FREE conference on all topics related to SharePoint.  This was my first SharePoint Saturday and it was a great community event to attend.  Over the past 6 months or so I’ve been following various Twitter users talking about SharePoint Saturdays in their region so I was excited to see what all the buzz was about.

Friday night I arrived in Cleveland for the speaker (nerd) dinner at Fahrenheit in Tremont.  I was finally able to put a face (real, not just their picture online) to various names like Eric Harlan (@ericharlan) and Jesse Murray (@lackscreativity) from the Baltimore and Detroit Sogeti offices, Rick Black (@ricknology), and also see some familiar faces again like John Ferringer (@ferringer), Sean McDonough (@spmcdonough), Callahan (@cacallahan) and Melissa Lucarelli (@smartyskirt).  Can you sense that I know too many people by their Twitter names?

Saturday started off early as I was scheduled to speak during the first session.  I gave my “The Power of PowerShell + SharePoint” presentation to about 20 people.  As most of the crowd was still waking up I threw in some jokes and funny slides to keep things lively.  They had a number of great questions as we went along and hopefully learned a good introduction to PowerShell and how to use it with SharePoint.

After my session I tried to attend talks on other topics that I hadn’t heard much about such as PerformancePoint, InfoPath Forms, SharePoint branding, and the new Metadata Manager.  I wish I could have attended more sessions, but only so much time in the day and I can only be in one place at a time.  Overall the level of content was good and I appreciate all the time and hard work each speaker put into the day.

Following the conference wrap-up session a dozen or so attendees and speakers met at The Blind Pig in downtown Cleveland for a ritual SharePint.  The Blind Pig was nice enough to host us and provide drinks and appetizers while us conference folks got to unwind from the day.  It was good to hear positive feedback from the conference and get to share SharePoint and personal stories.

As all good things must come to an end, so did my time at SharePoint Saturday Cleveland.  I was able to snap a few pictures which I’ve posted a link to below.  I’ve heard there will be a SharePoint Saturday Indianapolis early in 2010 as well as ones being planned for Pittsburgh and Columbus not far after.  If you’ve never been to a SharePoint Saturday I would highly encourage you to attend (did I mention it’s FREE!)  A final thanks to everyone who helped put on the event, spoke, sponsored, or had any hand in making this event happen.  Without you this never would have been possible.  I look forward to attending more such events and keeping the SharePoint community growing.

-Frog Out

SharePoint Saturday Cleveland Slides and Demo Scripts – PowerShell + SharePoint

     This weekend I spoke at the SharePoint Saturday Cleveland event and gave my “PowerShell + SharePoint” talk.  At some point I believe they will be publishing our slides and any demo items but I wanted to list mine here as I promised I would for various attendees.  Below are links to my SkyDrive where I have hosted these files.  If you have any questions or issues getting them let me know.  I’ll be posting a recap with some pictures soon as well.  Thanks to all who attended my presentation and SPSCleveland, look forward to more such events in the future.

 

SharePoint Saturday Cleveland demo files and slides

 

   -Frog Out

Windows 7, SharePoint 2010, and Events I’m Speaking At Coming Up

As most of the technology world knows (and even the general public thanks to commercials like the one below… who doesn’t love unicorns, kittens and rainbows) Windows 7 is releasing to the public on Oct 22, 2009.  Normally this would get me very excited except that I’ve been running Windows 7 RTM as the primary boot on my home desktop and as the secondary boot on my work laptop for a few months now.  I didn’t get much chance to use Vista over the past few years (client workstations with XP, working more with servers, etc) so I’m taking a more concerted effort to jump into Windows 7 early on.  So far the experience has been great with only one major issue I had with IE8 (crashing due to plug-ins) which I’m writing another post about.

Despite the Windows 7 release this week, what really has me excited is the start of the SharePoint Conference 2009 today.  Sadly I am unable to attend the conference this year so I’ve been trying to follow news coming out of the conference through live blogging from EndUserSharePoint.com and Twitter tweeps.  One of the best pieces of news I heard confirmed one of my long held beliefs: STSADM is essentially being replaced by PowerShell (reference).  Now this isn’t to say that you can’t use STSADM going forward with SharePoint 2010.  STSADM will still be around for backwards compatibility, but you really do want to learn PowerShell if you’ll be working in any sort of developer or administrative role with SharePoint.

Speaking of SharePoint and PowerShell, I just received word today that I was accepted to speak at SharePoint Saturday Cleveland coming up on Nov. 14th, 2009.  My presentation is titled “The Power of PowerShell + SharePoint” and it will be half introduction to PowerShell and half overview of how admins/developers can use PowerShell to maintain and develop against their farm.  I’ve been using PowerShell to help me with SharePoint for over a year now and I’m very happy to see that PowerShell is taking such a prominent place amongst tools for SharePoint.  So if you’re free on the Sat Nov 14th and can make it to the Cleveland area come see me talk, the event is free.  Registration and schedules should be posted shortly to the link above.  I’ll post my slides and code samples to my blog for those unable to attend or wishing to try out samples as well.

 

-Frog Out

PowerShell Script: Find All SharePoint Features Installed On Farm

     Determining all of the SharePoint features installed on a farm CAN be a very labor intensive process, but it doesn’t have to be.  If you’ve ever used the STSADM command line tool you may be aware that there is an “stsadm –o enumsolutions” command to determine all solutions on the farm, but there is no “stsadm –o enumfeatures” command.  At a client of mine I was doing wrap up documentation and detailing all of our custom WSP solutions (over 20 now) and the associated features (over 70 it turns out.)  Rather than dig through SharePoint admin screens or the numerous Visual Studio projects for hours documenting this information, I decided to fire up my trusty friend PowerShell and see if I couldn’t write a quick script to find the information I was looking for.

     Sure enough, using PowerShell and the SharePoint API I was able to write a script in 5 minutes that saved me over an hour of work.  I created 2 version of the script for different possible needs.

  1. Version 1 – simple output of all features in table format sorted by solutionId then featureName
  2. Version 2 – output of all features in table grouped by solutionId, then solutionId is replaced by actual solution name with a separate lookup (very minor performance loss due solution name replacement)

    Additionally, all out of the box features (solutionId is all 0’s) are ignored so only custom features are returned.  Run the below commands making sure to fill in the appropriate URL for your farm.  Additionally you can download both from my SkyDrive here: Version 1 and Version 2

Version 1
$url = "Your site URL here"

 

$site= new-Object Microsoft.SharePoint.SPSite($url)

 

$site.WebApplication.Farm.FeatureDefinitions `

| where-object {$_.solutionid -ne '00000000-0000-0000-0000-000000000000'} `

| Sort-Object solutionid,displayname `

| ft -property solutionid,displayname,scope -auto > features.txt

 

$site.Dispose()

 

Version 2
$url = "Your site URL here"

 

$site= new-Object Microsoft.SharePoint.SPSite($url)

 

#send all features to output file features.txt

$site.WebApplication.Farm.FeatureDefinitions `

| where-object {$_.solutionid -ne '00000000-0000-0000-0000-000000000000'} `

| Sort-Object solutionid,displayname `

| ft -property displayname,scope -auto -groupBy solutionid > features.txt

 

#replace solutionId in features.txt with solution name

foreach($s in $site.WebApplication.Farm.Solutions)

{

    (Get-Content features.txt) `

    | Foreach-Object {$_ -replace $s.solutionid.ToString(), $s.Name} `

    | Set-Content features.txt    

}

 

$site.Dispose()

 

    Feel free to leave feedback if you find these useful.  I’m starting to build up some more PowerShell + SharePoint scripts for some talks later this fall and it’s always good to know what others are looking to get out of PowerShell scripting.  Thanks for reading.

 

      -Frog Out