PowerShell
Recently my fellow SharePoint PFE and teammate Jim Matson (@jamesmatson3) was looking for a way to display the number of documents inside each document library on a SharePoint 2010 / 2013 farm. Below is the script that we came up with. Problem It is not too difficult to find all of the document libraries and their item count in a given SharePoint 2010 or 2013 site collection, web application, or farm. What can be difficult is finding all of that along with the full URL of the site that contains the ......
<Updated 2013-05-11> Recently Derek, a fellow Premier Field Engineer (PFE), had a customer request on how to remove duplicates from a SharePoint 2010 list. I have written some PowerShell scripts that remove list items, but never to check for duplicates. My main concern for this was performance as looping through a list searching for duplicates could be an expensive operation. Problem As it turns out the customer had a list with more than 85,000 items and many of the list items were duplicates. ......
Just a quick post to mention that I have a guest blog post up on the Hey Scripting Guy! Blog today titled Get Exchange Online Mailbox Size in GB. The guest post is a cleaned up version of this post I wrote on my blog many months ago. I’m honored to be a guest blogger on there for the second time and look forward to future collaborations. -Frog Out ......
<Updated 2013-02-06> Recently a fellow SQL PFE Lisa Gardner asked me for a PowerShell script that would create a SharePoint list with numerous (100+) columns. She was doing some research for an upcoming internal presentation on SharePoint databases for SQL database administrators and wanted samples of really nasty SQL queries that are generated when querying a large SharePoint list. The script that I came up with is below in the Solution section. <Update 2013-02-06> Lisa posted her findings ......
Recently I posted a script to find where SharePoint 2010 Features Are Activated. I built the original version to use SharePoint 2010 PowerShell commandlets as that saved me a number of steps for filtering and gathering features at each level. If there was ever demand for a 2007 version I could modify the script to handle that by using the object model instead of commandlets. Just the other week a fellow SharePoint PFE Jason Gallicchio had a customer asking about a version for SharePoint 2007. With ......
The script on this post will find where features are activated within your SharePoint 2010 farm. Problem Over the past few months I’ve gotten literally dozens of emails, blog comments, or personal requests from people asking “how do I find where a SharePoint feature has been activated?” I wrote a script to find which features are installed on your farm almost 3 years ago. There is also the Get-SPFeature PowerShell commandlet in SharePoint 2010. The problem is that these only tell you if a feature ......
As mentioned in my previous post I was recently working with a customer to get started with Exchange Online PowerShell commandlets. In this post I wanted to follow up and show one example of a difference in output from commandlets in Exchange 2010 on-premises vs. Exchange Online. Problem The customer was interested in getting the size of mailboxes in GB. For Exchange on-premises this is fairly easy. A fellow PFE Gary Siepser wrote an article explaining how to accomplish this (click here). Note that ......
This past week I worked with some customers who were getting started with using PowerShell against Exchange Online as part of their new Office 365 solution. As you may know Exchange is not my primary focus area but since these customers’ needs centered around PowerShell I thought this would be a good opportunity to learn more. What soon became apparent to me was a few things: The output / objects returned from Exchange Online vs. on-premises commandlets sometimes differ (mainly due to Exchange Online ......
I will be speaking at SPTechCon Boston 2012. This will be my 3rd time speaking at SPTechCon and 4th time attending. The conference has steadily been growing over the past few years and is one of the biggest non-Microsoft run conferences for SharePoint in the US. I’ll be presenting two topics which I have given before but this time around with some updated content. Registration is currently open and you can save $200 (on top of the current early bird discount of $400) by using the code "JACKETT” during ......
The first ever PowerShell Saturday will be taking place at the local Microsoft office in Columbus, OH on March 10, 2012. This is a little bit of a delayed announcement as the event has already sold out (yes, sold out a month before the event.) This will be a one day conference with speakers from around Ohio and a few from further away. The schedule and speaker lineup has not been officially announced but will be soon. If you were lucky enough to get one of the 100 registrations you’ll be able to ......
Thanks to everyone who attended the Metalogix webcast “Master Your SharePoint Migration with PowerShell” I guest presented on today. We had great attendance and no technical hitches which is always a plus. A number of attendees asked for my slide deck which you can find at the link below. As a bonus I am including a set of demo scripts that I typically use with the longer version of this presentation. If you have any questions or comments please feel free to reach out to me. A big thanks once again ......
On March 10th, 2012 the first ever PowerShell Saturday conference took place in Columbus, OH and I couldn’t be happier with the outcome. We had 100 attendees from 10 different states (the biggest surprise to me) come to see 6 speakers present on a variety of PowerShell topics: introduction, WMI, SharePoint, Active Directory, Exchange, 3rd party products and more. A big thank you also goes out to a number of people. Planning committee Wes Stahler, lead organizer of PowerShell Saturday Columbus, president ......
A few days ago my friend Todd Klindt (click here for his blog, I get helpful advice there all the time) asked the following question on Twitter: ‘Is there a way to see if someone just his enter with “read-host –assecurestring”? I need to test for no input. #powershell’. Problem As you may know, secure strings in PowerShell are not readable (unless using ConvertFrom-SecureString or some alternate process). If attempt to check equality of a secure string against an empty string or the null variable ......
Over the past few years I’ve written a number of blog posts on performing various actions against a site collection or web application (display site collection admins, find all SPShell admins with database, find closed web parts). Invariably with every post I get some comments along the lines of “this is great, how can I run this against every site in the farm”. Well today you get your wish (sort of). Below you will find a template script that traverses all sites within your local farm. Isn’t that ......
This Thursday May 19th, 2011 I will be presenting my “PowerShell for the SharePoint 2010 Developer” session at the Buckeye SharePoint User Group (BuckeyeSPUG). BuckeyeSPUG is my local SharePoint user group and I always enjoy giving back by helping out with the steering committee, presenting, and volunteering with any other areas that I can. I recently gave this presentation at SharePoint Saturday Michigan last weekend and the early feedback I heard was good. I’m looking forward to a good meeting ......
In this post I present a script that will display all of the site collection administrators for a given web application. This script will work for SharePoint 2007 or 2010 as it uses the object model rather than the new SharePoint 2010 commandlets. Special thanks to Tasha Scott (Twitter) for posting a request for this script. It took less than 15 minutes to come up with and formalize. Solution The solution is fairly straight forward. First you grab a reference to a site collection. Get the web application ......
Last weekend at SharePoint Saturday Virginia Beach (website) I was asked by Christian Buckley (twitter) from Axceler (website) to do a short video for his “The One Thing You Need To Know About SharePoint 2010” video series. Below is the video. Background When Christian asked me to do this video I was in a time crunch to make it to the airport for my flight home. I was literally running out the door right after we finished. As a result I was rushed in my response which led to my funny line at the ......
This weekend I presented “Managing SharePoint 2010 Farms with PowerShell” at SharePoint Saturday New Orleans. This was my first time visiting New Orleans so I was excited for the experience. A big thanks to everyone who attended my session. I condensed the material a little but the slides and scripts below have additional material that we couldn’t cover. Let me know if you have any comments, questions, or feedback. Thanks. Slides and Scripts Managing SharePoint 2010 Farms with PowerShell Photos Pictures ......
Note: Updated 2/12/11 with links to both presentation materials. This past week I presented two sessions at SPTechCon San Francisco 2011. The first session was “The Expanding Developer Toolbox for SharePoint 2010” which . Thanks to all of my attendees for this session. They had so many great questions that we ran out of time before covering all of the planned material. Especially for them I’ve provided the slides and code samples to walk through them on their own. The second session was “Real World ......
This past weekend I presented “Managing SharePoint 2010 Farms with PowerShell” and “SharePoint 2010 and Integrating Line of Business Applications” SharePoint Saturday Virginia Beach. A big thanks to everyone who attended my sessions. I had a great time presenting, getting to meet new folks, and exploring a little bit of the local life. Below are slides, materials, and pictures from the event. Let me know if you have any comments, questions, or feedback. Thanks. Slides and Materials Managing SharePoint ......
<Update 2011-29-06: Modify script to handle multiple admins per database> Problem Yesterday on Twitter my friend @cacallahan asked for some help on how she could get all SharePoint 2010 SPShellAdmin users and the associated database name. I spent a few minutes and wrote up a script that gets this information and decided I’d post it here for others to enjoy. Background The Get-SPShellAdmin commandlet returns a listing of SPShellAdmins for the given database Id you pass in, or the farm configuration ......
On Thursday Dec 9th, 2010 at 11:30am EDT I will be a guest presenter with Stephen Cawood (@cawood) from Metalogix as part of an ongoing webinar series titled Migrating to SharePoint 2010. This specific webinar will be focused on Master your SharePoint 2010 Migration with PowerShell. During the webinar I’ll be presenting a brief overview of how and why to use PowerShell to administrate your SharePoint 2010 farm. I’ve known Stephen through various interactions at conferences, events, and Twitter so ......
Are your SharePoint pages loading slowly because you have numerous closed web parts eating up valuable resources? Are you an admin tasked with tracking down those closed web parts? Recently my friend Brian Gough asked me a fairly simple question: “Is it possible to use PowerShell to find all ‘closed’ webparts in a site collection?” In this post I’ll show you a short PowerShell script that will identify all closed web parts on a site and it’s sub-sites. Solution The script below uses an advanced function ......
In this post I will talk about a new script I wrote to save PowerShell ISE files to a versioned SharePoint document library as well as a side project I created on CodePlex to host this code and future releases. Background Recently I began listening to the PowerScripting Podcast and I’m slowly catching up on old podcasts. On episodes 121 and 122 (most recent ones I’ve listened to as of this writing) Hal and Jonathan talked about an idea that piqued my interest immediately: using SharePoint as a script ......
A few days ago I mentioned that I had been busy recently writing a guest blog post for a fairly high profile blog. Today I can happily announce the details. My article “Deploy a PowerShell Module with SharePoint Cmdlets” was published on the Hey, Scripting Guy! blog this morning. Click here for the link. Anyone familiar with Windows PowerShell will most likely know the Scripting Guy Ed Wilson and his teammate Craig Liebendorfer. A little over a month ago Ed asked if I would submit a guest blog post ......
This month I had the pleasure of presenting at the BuckeyeSPUG (formerly Central Ohio SPUG) meeting here in Columbus, OH. This is the first time I was the main presenter at our user group, having done small presentations along with other presenters in past meetings. The attendees had some great questions and hopefully learned some new tricks to use on their SharePoint 2007 farms. Thanks to everyone who came out. Below are the slides and demo scripts for those interested. Slides and Scripts: click ......
This past Saturday I am very pleased to say that SharePoint Saturday Columbus 2010 (SPSColumbus) was a success. I’m happy to say that for many reasons, not least amongst 1) I had an awesome team help me plan this event, 2) the session I presented went really well, and 3) the early feedback I’ve gotten from those who attended has been very positive. This marks the first SharePoint Saturday in Columbus and second in Ohio (SPSCleveland was last Novermber.) It’s great to see SharePoint Saturdays expanding ......
This past weekend I gave my “Managing SharePoint 2010 Farms with PowerShell” talk at SharePoint Saturday New York City (SPSNYC) 2010. Thanks to everyone that attended my talk. They had a lot of great questions and seemed engaged. I’ve begun to lose track of how many SharePoint Saturdays I’ve attended or spoken at now, but it’s close to 9 and 7 respectively. This was a great trip as it’s been over 10 years since I’ve been to New York and this time around held it’s own set of stories to share. For ......
With the busy schedule I’ve been keeping lately I realized I hadn’t even posted on here that I will be speaking at SharePoint Saturday New York (SPSNY) 2010 this weekend. I will be presenting my “Managing SharePoint 2010 Farms With PowerShell” session for the second time ever. The last time I presented this talk SharePoint 2010 hadn’t RTMed yet so I’ve updated the slides and demo scripts a little bit since then. Aside from giving this presentation I’m also excited to be sitting in on a number of ......
In this blog post I’ll show you a quick an easy way to create a shortcut to the HOSTS file on Windows 7/Server 2008+. By itself that wouldn’t be a huge deal, but I’ll throw in a nice bonus so that you’ll add the “Run as Administrator” property so you can save the edits you make. If you are like me and frequently need to edit the HOSTS file on a computer running with UAC enabled (Vista, Windows 7, Server 2008+) you may have run into the following error when trying to save changes: “C:\Windows\System32\driver... ......
This is a quick blog post for a fun PowerShell script I got to write today. My client asked me to make a listing of all instances of a particular workflow currently running on one of our SharePoint farms. Since we have dozens of SharePoint lists spread out across numerous sub-sites on this farm I decided to tackle the request with PowerShell. Here is a quick overview of what the scrip accomplishes. First I get a reference to the site collection in question. Next I get the workflow template from the ......
Three weeks ago at the Central Ohio Day of .Net 2010 conference (my recap here) I was approached by one of my Sogeti coworkers David Giard to do a guest interview on PowerShell for his popular video series Technology and Friends. If you’ve never gotten a chance to see this series, in each episode David interviews a special guest on topics ranging across all forms of technology. David even puts in some nice production value with music, overlays, and a special unique ending. His series is a great way ......
This weekend I presented my “The Power of PowerShell + SharePoint 2007” session at the Central Ohio Day of .Net conference in Wilmington, OH. This is the second year I’ve attended this conference, first time as a presenter. For those unfamiliar Day of .Net conferences are a one-day conference on all things .NET organized by developers for developers. These events are usually offered at no cost to anyone interested in .NET development. The attendees of my session had some great questions and I hope ......
Next time you fire up PowerShell to work with the SharePoint API make sure you launch the proper bit version of PowerShell. Last week I had an interesting error that led to this blog post. Travel back in time a little bit with me to see where this 32 vs. 64 bit debate started. History Ever since the first pre-beta bits of Office 2010 landed in my lap I have been questioning whether it’s better to run 32 or 64 bit applications on a 64 bit host operating system. In relation to Office 2010 I heard a ......
Wow! This past weekend I attended SharePoint Saturday Washington DC (SPSDC) which was quite an event to say the least. 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 fifth SharePoint Saturday attended and fourth I’ve spoken at. SPSDC was a bit different than most SharePoint Saturdays mostly due to the scale of it. We had almost 950 attendees, over 80 speakers presenting ......
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 ......
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 ......
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 ......
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 ......
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.) ......
As part of my automated deployment post last week, one step of my deployment script called for creating a SharePoint site collection using the “STSADM –o createsite” command with the –sitetemplate option used for a specific site template. If you have never had to create a site collection from a template at the command line you may not know what to put (or know what is available to you) for the –sitetemplate option. To remedy this I created a very simple PowerShell script that opens a site collection ......
Now this is a topic that really excites me. It combines two things I love: automation and SharePoint. At my current client we are in the process of moving our custom SharePoint applications to the production environment. As we are moving to production, that means that we develops have less handle on the implementations be they databases, code migration, etc. To ease the load on the infrastructure team who is implementing our custom application I took the liberty of automating as much of the process ......
On Friday, May 22nd the Central Ohio SharePoint User Group (COSPUG) is hosting a Show and Tell Event at the Microsoft office in Columbus. I’ll be presenting on combining PowerShell and SharePoint. This will be an introductory style presentation for those who have limited to medium experience with PowerShell and a few “laser show” type finale scripts to hopefully wow the crowd. With the current schedule I’ll be presenting during the last technical track session of the day. Shane Young from SharePoint911 ......
<Update> Posting code didn’t format as well as hoped. Download the below script here. </Update> For those of you who are SharePoint admins or developers but have never dug into the SharePoint API or PowerShell, I would recommend first checking out some tutorials on both and referencing the SharePoint Developer Center. At a later date I hope to be able to provide some quick demo scripts that highlight the power, time savings, and overall usefulness that can be gained by combining PowerShell ......