Wednesday, May 14, 2014

View GUID via PowerShell: SharePoint 2007, SharePoint 2010 and SharePoint 2013

Issue: View from the View drop down on SharePoint list disappears.

Background: We had a user who had an issue with a view loading slow, very slow on a SharePoint list. This view was set as default view for the list. We noticed that there were close to 50 odd webparts on the page that was in closed state. We asked the user to delete them from webpart maintenances page by appending URL with ?contents=1.

Now the problem starts,

Once you try to load the list again, it loaded with the new view as lending page, and to our surprise the previous view vanished from the View drop down.


It seems that one of the webparts which was deleted from the default view had any link-up with the view so deleting webpart deleted this as well.

However, this was difficult to recreate the view as it was having allotted of customization on the page.

We checked the whole list and there was no view the same name and we are clue less what to do. We were able to open the view by typing its name after the list name; however, that was not acceptable solution for the customer.

Though of editing the view using the GUID  from the URL as form the GUI GUID of lost view is not available.

To get Views from the SharePoint site URL: you can refer to the below references:

However, among these none o f my use as we had lost the edit capability from GUI being view not available in View drops down list.

So here not next reference come up to take some help from Share Master Controller, which I refer as PowerShell …! To get View GUID via Powershell and amend in the List URL to get to Views Edit mode to set it as default view to resolve the problem.

I got a very good reference of script while searching online.
$sourceWebURL = “http://sharepointsite”
$sourceListName = “MyList”
$spSourceWeb = Get-SPWeb $sourceWebURL
$spSourceList = $spSourceWeb.Lists[$sourceListName]
$spView = $spSourceList.Views
$spView >C:\a.txt
Open txt file you can see

It was my hard luck to say that problem was not limited here as this PowerShell code is for SharePoint 2010 environment. The issue were experiencing was Customer with 2007 environment.  

We all know MOSS has a limited capabilities when it comes to PowerShell and everything needs to be done by calling SharePoint Object model.

Further challenge was to prepare SharePoint 2007 to work with PowerShell-

CodePlex Reference for SharePoint 2007 for PowerShell:

Instead following all these great source of information we were clue less. Thanks to our MS PFE  who wrote a PoweShell code for me to get this working.

# load in the SharePoint assemblies
# equivalent of Get-SPSite
[string]$url = "http://SharePointPortal/sites/Amar"
$collSite = New-Object Microsoft.SharePoint.SPSite($url)
# get the sub site that we want (need to change the title to whatever site you are trying to get)
#$web = $collSite.AllWebs | where {$_.Title -eq 'subSite1'}
# get the list that we need to work on (need to change the title to whatever list you are trying to get)
$rootWeb = $collSite.RootWeb
$list = $rootWeb.Lists | where {$_.Title -eq 'Tasks'}
$viewColl = $list.Views
    foreach ($view in $viewColl)
    {write-host $view.ID $view.Title $view.DefaultView  }

Some more reference to manage SharePoint lib using PowerShell:

Deploy a PowerShell Module with SharePoint Cmdlets

Use PowerShell Cmdlets to Manage SharePoint Document Libraries

Applies to: SharePoint 2007, SharePoint 2010, SharePoint 2013, PowerShell.

Post a Comment


snow flakes

blogger widgets Blogspot Tutorial


Related Posts Plugin for WordPress, Blogger...