Kashif Nizam Qureshi

Leave a comment

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.

Leave a comment

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


Leave a comment

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--)