Reset unique permission for SharePoint document library and files

Sometime we need to reset the unique permission for document library, sub folders and files. If the document library has only 1-2 documents then we can handle it manually, but if you have thousands of files and folder so its quite difficult to reset it for all one by one. Below piece of code can help to reset unique permission for document library and its content. This script will take the top level permission from document library.


function ResetUniquePermission {
Param(
[Parameter(Mandatory = $true, HelpMessage="Enter the site url")][ValidateNotNullorEmpty()][string] $SiteURL ,
[Parameter(Mandatory = $true, HelpMessage="Enter the library name")][ValidateNotNullorEmpty()][string] $LibraryName,
[Parameter(Mandatory = $true, HelpMessage="Total number of files")][ValidateNotNullorEmpty()][int] $TotalFiles

)

$Web = Get-SPWeb $SiteURL 
$List= $Web.Lists[$LibraryName]
$Query = New-Object Microsoft.SharePoint.SPQuery
$Query.ViewXml =  @"
<View Scope="RecursiveAll">
    <Query>
        <OrderBy><FieldRef Name='ID' Ascending='TRUE'/></OrderBy>
    </Query>
    <RowLimit Paged="TRUE">$TotalFiles</RowLimit>
</View>
"@;

$Items = $List.GetItems($Query)
for($j=0;$j -lt $Items.Count ;$j++)
{
    $Items[$j].ResetRoleInheritance()
    Write-Host "Permission reset done for file "$Items[$j]["Title"] -ForegroundColor Green
}
}

Export SharePoint List schema to CSV file

In this article I am going to demonstrates How to Export SharePoint custom list schema to CSV file. This example applies to SharePoint 2010 and SharePoint 2013 environment.


[system.reflection.assembly]::loadwithpartialname("microsoft.sharepoint")
$listName="DemoList";
$siteURL="http://localhost/";
$csvPath="C:PowerOutput"+ $listName + ".csv";
$oSite= New-Object Microsoft.SharePoint.SPSite($siteURL)
$oWeb=$oSite.OpenWeb()
$oList=$oWeb.Lists[$listName]
#Get only custom fields which are created by user
$oList.Fields | ?{$_.CanBeDeleted -eq $true -and $_.Hidden -eq $false} | select Title,Internalname,Type |Sort-Object title| Export-Csv -Path $csvPath -Encoding ascii -NoTypeInformation
$oWeb.Dispose()
$oSite.Dispose()

SharePoint List CRUD Operation using PowerShell Management

This post is going to help you in learning how to do basic SharePoint List operations (CRUD – Create, Read, Update and Delete) using SharePoint Management Shell or Windows PowerShell.

Lets open SharePoint Management Shell or open Windows PowerShell.When we are working on SharePoint Server there are two possibilities exists: either select the SharePoint Management Shell or Open Windows PowerShell.If We are using SharePoint Management Shell then SharePoint snap-in will already be installed.If you are using Standard PowerShell console, we can install the snap-in by entering the following command:

Add-PSSnapIn Microsoft.SharePoint.PowerShell

we can check the list of installed snap-in by using this command

Get-PSSnapIn

So, here is my list like below screenshot.

CRUDPowershell1

1) Create Item into SharePoint List

$webURL="http://optimumview"
$lstName="DemoList"
$oWeb=Get-SPWeb -Identity $webURL
$oList=$oWeb.Lists[$lstName]
$oListItem = $oList.items.add()
$oListItem["Title"]="Test-Item-0"
$oListItem["DemoLocation"]="US"
$oListItem["ProjectName"]="POW-JO-09"
$oListItem.Update()

2) Read single list item

$webURL="http://optimumview"
$lstName="DemoList"
$oWeb=Get-SPWeb -Identity $webURL
$oList=$oWeb.Lists[$lstName]
#To read single item uncomment below code
#$oListItem = $oList.GetItemById("1")
#Read multiple list item
$oListItem = $oList.Items | where {$_['ProjectName'] -like "IND1*"}
if($oListItem -ne $null)
{
$oListItem | ForEach-Object {
Write-Host $_['ID'] -foregroundcolor green
Write-Host $_['Title'] -foregroundcolor green
Write-Host $_['DemoLocation'] -foregroundcolor green
Write-Host $_['ProjectName'] -foregroundcolor green
}
}
else
{
Write-Host "No Items are found !!" -foregroundcolor red
}

3) Update SharePoint List item

#Update multiple list item

$webURL="http://optimumview"
$lstName="DemoList"
$oWeb=Get-SPWeb -Identity $webURL
$oList=$oWeb.Lists[$lstName]
$oListItem = $oList.Items | where {$_['ProjectName'] -like "IND*"}
if($oListItem -ne $null)
{
$oListItem | ForEach-Object {
$_['Title']="Test1" + $_['ID']
Write-Host "Item id:" $_['ID'] " has been updated!" -foregroundcolor green
$_.Update()
}
}
else
{
Write-Host "No Items are found !!" -foregroundcolor red
}

4) Deleting SharePoint List item

#Deleting multiple list item
$webURL="http://optimumview"
$lstName="DemoList"
$oWeb=Get-SPWeb -Identity $webURL
$oList=$oWeb.Lists[$lstName]
$oListItem = $oList.Items | where {$_['ProjectName'] -like "GLT*"}
if($oListItem -ne $null)
{
$oListItem | ForEach-Object {
$_.Delete()
Write-Host "Item id:" $_['ID'] " has been Deleted!" -foregroundcolor green
}
}
else
{
Write-Host "No Items are found !!" -foregroundcolor red
}

How to show attachment with List item in separate column.

Today I got the client requirement to display item attachment in List view.I am going to present the steps to display item attachment into SharePoint 2010 List view.

1) Open SharePoint List view in SharePoint Designer.

2) Open SharePoint list > Under View > Right click on Target View File in my case it is “All Items” and select “Edit File in Advanced Mode ” .

3) Select the view and create new column titled Attachment.

4) Select TD tag of New column.

5) And Replace the selected TD tag to below code.

<strong><td</strong>id="ItemAttchment"class="ms-vb"<strong>>/strong>

<strong><xsl:element</strong>name="SharePoint:AttachmentsField"<strong>&gt;</strong>

<strong><xsl:attribute</strong>name="runat"<strong>&gt;</strong>server<strong>&lt;/xsl:attribute&gt;</strong>

<strong><xsl:attribute</strong>name="FieldName"<strong>&gt;</strong>Attachments<strong>&lt;/xsl:attribute&gt;</strong>

<strong><xsl:attribute name="ControlMode"<strong>&gt;</strong>Display<strong>&lt;/xsl:attribute&gt;</strong>

<strong><xsl:attribute name="Visible"<strong>&gt;</strong>true<strong>&lt;/xsl:attribute></strong>

<strong><xsl:attribute</strong>name="ItemId"<strong>></strong>

<strong><xsl:value-of select="$thisNode/@ID"/></strong>

<strong></xsl:attribute></strong>

<strong></xsl:element></strong>

<strong></td></strong>

6)  The final output will like below :

FinalImage

Customize Sharepoint Summary Link Webpart

Step 1.

  • Open SharePoint Using System Account >
  • Navigate to Site Actions > Edit Page > Add a Summary Link Web Part

Step 2.

  • Open SharePoint Using System Account >
  • Navigate to Site Actions > Edit Page > Add a Content Editor Web Part
  • In the Web Part Click on The option Click here to Add New Content, And on the ribbon HTML > Edit HTML Source Then Paste the below CSS Code.
<style>
.groupheader
{
    PADDING-BOTTOM:0.5em;
	BACKGROUND-COLOR:#0072c6;
    PADDING-LEFT:0.75em;
    PADDING-RIGHT:0.5em;
    FONT-FAMILY:“Segoe UI”,Tahoma,Geneva,Verdana,sans-serif;
    MARGIN-BOTTOM:1px;
    COLOR:white;
    FONT-SIZE:140%;
    MARGIN-RIGHT:0.5em;
    PADDING-TOP: 0.5em;
}
.groupmarker:hover.groupheader
 {
	BACKGROUND-COLOR: #0597ff;
	CURSOR: pointer;
}
.dfwp-list
 {
	BACKGROUND-COLOR:#0072c6;
	MARGIN-BOTTOM:0.5em;
	MARGIN-RIGHT:0.75em
}
.dfwp-list.item:hover
 {
	BACKGROUND-COLOR:#0597ff
}
.dfwp-list.link-itemA
{
    COLOR:white;
    MARGIN-LEFT:2em;
}
<style>

Hiding the Quick Launch in SharePoint 2010

  • Open SharePoint portal
  • Navigate to Site Action > Edit page
  • Add a new Content Editor webpart.
  • In the Web Part Click on The option Click here to Add New Content, And on the ribbon HTML > Edit HTML Source Then Paste the below CSS Code.
<style>
#s4-leftpanel
{
display:none
}
.s4-ca{
margin-left:0px
}
</style>

  • Save the Page. The Quick Launch section should not be visible now.
  • Edit the Just added Content Editor web Part and Under Layout Section Tick the Hidden Check box and Click OK, Which will hide the Webpart from Normal View.