Three very useful powershell commands

PowerShell gains clarity the more you use it.  In SharePoint 2010, there are numerous things that are only possible via PowerShell.

These are three PowerShell command-lets that I find very useful in administering SharePoint and this example is one way to use them together to interrogate objects within SharePoint:

Where-Object – http://technet.microsoft.com/en-us/library/ee177028.aspx

Get-Command – http://technet.microsoft.com/en-us/library/ee176842.aspx

Get-Member – http://technet.microsoft.com/en-us/library/ee176854.aspx

Example:

Assumes your powershell has the SharePoint snap-in loaded or that you are using the SharePoint management console.

Get-SpFeature ran by itself will return a list of SharePoint features that are present in your SharePoint environment.  One of the headings (aka properties) in the list that results from running this cmdlet, is DisplayName.

Get-SPfeature piped into Get-member will return a list of all the methods and properties that are present within the Get-SPFeature.

Get-SPFeature | Get-Member

 

Now let’s backup a few and assume that the exact name of the powershell command-let with that gets SharePoint features is partially uknown, but that it is known that it has “feature” as part of the word in the noun section.  Verb-Noun, *-*Feature*

So, run Get-Command -Noun *feature* and a generate list of comand-lets which appear with feature in the noun section, Get-SPFeature, included.

Finally, the where-object command used in conjunction with get-spfeature will bring a list of features that contain “WebParts” in the displayname, as follows:

Get-SPFeature | Where-object {$_.Displayname -like "*webparts*"}

 

The results of the one-liner above,  include only three of the properties of Get-SpFeature, one of them shows the admin that webparts are scoped at the Web (application), Farm, or Site (collection) level.  This is handy when troubleshooting activation of features, as sometimes solutions that are scoped at web parts which are scoped to the site collection, require the use of ?Scope=Site appended to the control page, in order to access the button tied to the method that allows activation.