Below is the PowerShell Script:
$spSite = Get-SPSite "http://sedwdevrtm:432/sites/com"[xml]$file = Get-Content "C:\Users\Administrator\Desktop\XML\XmlSitePermissions.xml"$Permissionname = $file.sites.site.sitepermission$Permission = $file.sites.Permission.Permissions$spWeb = $spSite | Get-SPWebWrite-Host($spWeb)# we add a new Permission Level name "DotcomReadonly" to the site, which will allow users to only add new items (no editing or removing)# check to see if the permission your are going to add is already existing.. if null proceed#foreach ($folder in $Permissionname)for($i=0; $i -lt $Permissionname.count; $i++){Write-Host ($Permissionname[$i])if($spWeb.RoleDefinitions[$Permissionname[$i]] -eq $null){ $spRoleDefinition = New-Object Microsoft.SharePoint.SPRoleDefinition $spRoleDefinition.Name = $Permissionname[$i] $spRoleDefinition.Description = $Permission[$i] #$spRoleDefinition.BasePermissions = "ViewListItems, AddListItems, Open, ViewPages" $spRoleDefinition.BasePermissions = $Permission[$i] $spweb.RoleDefinitions.Add($spRoleDefinition) }}$spWeb.Dispose()$spSite.Dispose()
will read the permissions from below xml file
<?xml version="1.0"?>
<sites>
<site>
<sitepermission>DotcomReadonly</sitepermission>
<sitepermission>DotcomContribute</sitepermission>
<sitepermission>DotcomSiteAdministrator</sitepermission>
</site>
<Permission>
<Permissions>ViewListItems,AddListItems,Open,ViewPages</Permissions>
<Permissions>ViewListItems,AddListItems,OpenItems,Open,ViewPages</Permissions>
<Permissions>ManageLists</Permissions>
</Permission>
</sites>