BasePermissions of Permissions Level for using in PowerShell

List Permissions
ManageLists Manage Lists – Create and delete lists, add or remove columns in a list, and add or remove public views of a list.
BreakCheckout Override List Behaviors – Discard or check in a document which is checked out to another user, and change or override settings which allow users to read/edit only their own items
AddListItems Add Items – Add items to lists and add documents to document libraries.
EditListItems Edit Items – Edit items in lists, edit documents in document libraries, and customize Web Part Pages in document libraries.
DeleteListItems Delete Items – Delete items from a list and documents from a document library.
ViewListItems ViewListItems View Items – View items in lists and documents in document libraries.
ApproveItems Approve Items – Approve a minor version of a list item or document.
OpenItems Open Items – View the source of documents with server-side file handlers.
ViewVersions View Versions – View past versions of a list item or document.
DeleteVersions Delete Versions – Delete past versions of a list item or document.
CreateAlerts Create Alerts – Create alerts.
ViewFormPages View Application Pages – View forms, views, and application pages. Enumerate lists.
Site Permissions
ManageRoles Manage Permissions – Create and change permission levels on the Web site and assign permissions to users and groups.
ViewUsageData View Web Analytics Data – View reports on Web site usage.
ManageSubwebs Create Subsites – Create subsites such as team sites, Meeting Workspace sites, and Document Workspace sites.
ManageWeb Manage Web Site – Grants the ability to perform all administration tasks for the Web site as well as manage content.
WriteWebPages Add and Customize Pages – Add, change, or delete HTML pages or Web Part Pages, and edit the Web site using a Microsoft SharePoint Foundation-compatible editor.
ThemeWeb Apply Themes and Borders – Apply a theme or borders to the entire Web site.
LinkStyleSheet Apply Style Sheets – Apply a style sheet (.CSS file) to the Web site.
CreatePersonalGroups Create Groups – Create a group of users that can be used anywhere within the site collection.
BrowseDirectories Browse Directories – Enumerate files and folders in a Web site using SharePoint Designer and Web DAV interfaces.
CreateSSCSite Use Self-Service Site Creation – Create a Web site using Self-Service Site Creation.
ViewPages View Pages – View pages in a Web site.
EnumeratePermissions Enumerate Permissions – Enumerate permissions on the Web site, list, folder, document, or list item.
BrowseUserInfo Browse User Information – View information about users of the Web site.
ManageAlerts Manage Alerts – Manage alerts for all users of the Web site.
UseRemoteAPIs Use Remote Interfaces – Use SOAP, Web DAV, the Client Object Model or SharePoint Designer interfaces to access the Web site.
UseClientIntegration Use Client Integration Features – Use features which launch client applications. Without this permission, users will have to work on documents locally and upload their changes.
Open Open – Allows users to open a Web site, list, or folder in order to access items inside that container.
EditMyUserInfo Edit Personal User Information – Allows a user to change his or her own user information, such as adding a picture.
Personal Permissions
ManagePersonalViews Manage Personal Views – Create, change, and delete personal views of lists.
AddDelPrivateWebParts Add/Remove Personal Web Parts – Add or remove personal Web Parts on a Web Part Page.
UpdatePersonalWebParts Update Personal Web Parts – Update Web Parts to display personalized information.

Update Projects Sites’ Write Security Option Through PowerShell

Following will iterate over all the sites within the specified site collection and updates specified lists’ write security.

#Change these variables to your site URL and list name

$site = Get-SPSite http://dhldepmweb01/PWA

$listName1 = "Assumptions and Constraints"

$listName2 = "Risks"

$listName3 = "Issues"

$listName4 = "Projects Dependent On This Project"

$listName5 = "Projects On Which This Project Depends"

#Walk through each site in the site collection

$site | Get-SPWeb -limit all| ForEach-Object {



if(!($_.Title.ToLower().Contains("template") -or $_.URL.ToLower().Contains("template")) -And !($_.Title.ToLower().Contains("Business Intelligence Center") -or $_.URL.ToLower().Contains("Business Intelligence Center")))


write-output("Checking site:"+$_.Title + " URL: "+$_.URL)

#Get the list in this site

$list1 = $_.Lists[$listName1]

$list2 = $_.Lists[$listName2]

$list3 = $_.Lists[$listName3]

$list4 = $_.Lists[$listName4]

$list5 = $_.Lists[$listName5]

if($list1.WriteSecurity -eq 1 -Or $list2.WriteSecurity -eq 1 -Or $list3.WriteSecurity -eq 1 -Or $list4.WriteSecurity -eq 1)



#Either of the following would work

write-output($list1.Title+": "+ $list1.WriteSecurity)

$list2.Title+": "+ $list2.WriteSecurity

$list3.Title+": "+ $list3.WriteSecurity

$list4.Title+": "+ $list4.WriteSecurity

$list5.Title+": "+ $list5.WriteSecurity

#write-output("about to update")

#Make the list changes

$list1.WriteSecurity = 2

$list2.WriteSecurity = 2

$list3.WriteSecurity = 2

$list4.WriteSecurity = 2

$list5.WriteSecurity = 2

#Update the list






#write-output("Site updated")

write-output("Site Updated")




#write-output("Site already updated")





write-output("Template or Explicitly defined Site not updated: "+$_.Title +" URL:"+$_.URL)



#Dispose of the site object


Deleting List Items Through PowerShell Filtered Using CAML Query

Use the following to delete items older than the specified date in CAML below and limiting to 500 all together.

$site = new-object Microsoft.SharePoint.SPSite("<a href="http://dhldepmweb01/PWA">http://dhldepmweb01/PWA</a>")

$web = $site.rootweb

$list = $web.Lists["Project Server Workflow Tasks"]



<FieldRef Name="Created" />

<Value IncludeTimeValue="TRUE" Type="DateTime">2015-12-31T02:32:20Z</Value>



$query=new-object Microsoft.SharePoint.SPQuery

$query.Query=$caml | Write-Output


$listItemsTotal = $items.Count;


#Limiting the deletion till 500 count

for($x=$listItemsTotal-1;$x -ge 0 -And $count -le 500; $x--)