Friday, March 31, 2017

How to determine the SharePoint version in PowerShell

# Add the snapin, in case it's not already installed
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

$ver = (Get-PSSnapin microsoft.sharepoint.powershell).Version.Major
If ($ver -eq "15" )
    {
        Write-Output "SharePoint 2013 is installed"
        }
    elseif ($ver -eq "14")
    {
        Write-Output "SharePoint 2010 is installed"
        }
        else
        {
            Write-Output "Could not determine version of SharePoint"
            } 

Monday, March 27, 2017

Get Details of all fields associated with SharePoint List

$site = new-object Microsoft.SharePoint.SPSite("http://<Site URL>") #Change site URL#
    $web = $site.openweb()
    $list = $web.Lists["<List Name>"] #Get Field Details for specified list
   
    Write-Host "List Name: " $list.Title  ##Print List title
    Write-Host "------------------------------------------------------"
    Write-Host "Field Name | Field Title "
    Write-Host "------------------------------------------------------"        
   
    foreach ($field in $list.Fields) #Get all views in lists
    {
        Write-Host $field.Title " | " $field.Type -ForegroundColor Green #Write out each field (column)                        
       
    }  
    Write-Host "------------------------------------------------------"
    Write-Host " "

    $web.Dispose()
    $site.Dispose()

SharePoint: How to get Field details from list using PowerShell ?

In this article, we retrieved the particular list properties in SharePoint Site.

#Declare the variable for below functions
$SiteCollectionURL="https://sharepointonline.sharepoint.com/sites/mysite"
$listName="Project list"


function GetSPFieldDetailsForList($SiteCollectionURL, $listName)
{
    $site = new-object Microsoft.SharePoint.SPSite($SiteCollectionURL) #Change site URL#
    $web = $site.openweb()
    $list = $web.Lists[$listName] #Get Field Details for specified list
   
    foreach ($view in $list.Views) #Get all views in lists
    {
        $spView = $web.GetViewFromUrl($view.Url) #Grab views URL
        Write-Host "List Name: " $list.Title  ##Print List title
        Write-Host "------------------------------------------------------"
        Write-Host "Field Name | Field Title "
        Write-Host "------------------------------------------------------"
        foreach ($spField in $spView.ViewFields) #Loop through all view URLs and get Fields (columns)
        {
            foreach ($field in $list.Fields) #Get all fields in lists
            {
                if($spField -eq $field.Title) #if field in lists equals field in views
                {
                    Write-Host $spField " | " $field.Type -ForegroundColor Green #Write out each field (column)                      
                }
            }
        }
        Write-Host "------------------------------------------------------"
        Write-Host " "
    }  
    $web.Dispose()
    $site.Dispose()
}

GetSPFieldDetailsForAllLists

function GetSPFieldDetailsForAllLists($SiteCollectionURL)
{
    $site = new-object Microsoft.SharePoint.SPSite($SiteCollectionURL) #Change site URL#
    $web = $site.openweb()
   
    foreach ($list in $web.Lists) #Get all list in web
    {
        foreach ($view in $list.Views) #Get all views in lists
        {
            $spView = $web.GetViewFromUrl($view.Url) #Grab views URL
            Write-Host "List Name: " $list.Title  ##Print List title
            Write-Host "------------------------------------------------------"
            Write-Host "Field Name | Field Title " -ForegroundColor DarkGreen
            Write-Host "------------------------------------------------------"
            foreach ($spField in $spView.ViewFields) #Loop through all view URLs and get Fields (columns)
            {
                foreach ($field in $list.Fields) #Get all fields in lists
                {
                    if($spField -eq $field.Title) #if field in lists equals field in views
                        {
                            Write-Host $spField " | " $field.Type -ForegroundColor Green #Write out each field (column)                        
                        }
                }
            }
            Write-Host "------------------------------------------------------"
            Write-Host " "
        }
    }
    $web.Dispose()
    $site.Dispose()
}

For loops Powershell

For loops can be used (just like in any other programming language) to have a set process run for a finite number of times.
The structure of a for loop looks like this:
for (initial value; run until condition; repeat)
To run a for loop in Powershell, use the following example which prints out the first 5 numbers:
for ($i = 1; $i -lt 6; $i++)
 {
 Write-Host $i
 }
Output:
1
2
3
4
5