Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
$site = new-object Microsoft.SharePoint.SPSite("http://myserver/")
$web = $site.OpenWeb()
function GrantGroupPermission($groupName)
{
[Microsoft.SharePoint.SPGroupCollection]$spgroups = $web.SiteGroups
[Microsoft.SharePoint.SPGroup]$spgroup = $groups[$groupName]
$sproleass=new-object Microsoft.SharePoint.SPRoleAssignment([Microsoft.SharePoint.SPPrincipal]$spgroup)
$folder.BreakRoleInheritance("true")
$sproleass.RoleDefinitionBindings.Add($web.RoleDefinitions["Contribute"])
$folder.RoleAssignments.Add($sproleass);
Write-Host "Permission provided for group ", $groupName
}
function GrantUserpermission($userName)
{
[Microsoft.SharePoint.SPUserCollection]$spusers=[Microsoft.SharePoint.SPUserCollection]$web.SiteUsers
[Microsoft.SharePoint.SPUser]$spuser=$spusers[$userName]
$sproleass=new-object Microsoft.SharePoint.SPRoleAssignment([Microsoft.SharePoint.SPPrincipal]$spuser)
$folder.BreakRoleInheritance("true")
$sproleass.RoleDefinitionBindings.Add($web.RoleDefinitions["Contribute"])
$folder.RoleAssignments.Add($sproleass);
Write-Host "Permission provided for user ", $userName
}
$doclib=[Microsoft.SharePoint.SPDocumentLibrary]$web.Lists["Shared Documents"]
$foldercoll=$doclib.Folders;
foreach($folder in $foldercoll)
{
Write-Host $folder.Name
if($folder.Name.Equals("f2"))
{
GrantUserPermission("raj")
}
}
Write-Host "Completed...."
$web.Close()
$site.Dispose()
$site = new-object Microsoft.SharePoint.SPSite("http://myserver/")
$web = $site.OpenWeb()
function GrantGroupPermission($groupName)
{
[Microsoft.SharePoint.SPGroupCollection]$spgroups = $web.SiteGroups
[Microsoft.SharePoint.SPGroup]$spgroup = $groups[$groupName]
$sproleass=new-object Microsoft.SharePoint.SPRoleAssignment([Microsoft.SharePoint.SPPrincipal]$spgroup)
$folder.BreakRoleInheritance("true")
$sproleass.RoleDefinitionBindings.Add($web.RoleDefinitions["Contribute"])
$folder.RoleAssignments.Add($sproleass);
Write-Host "Permission provided for group ", $groupName
}
function GrantUserpermission($userName)
{
[Microsoft.SharePoint.SPUserCollection]$spusers=[Microsoft.SharePoint.SPUserCollection]$web.SiteUsers
[Microsoft.SharePoint.SPUser]$spuser=$spusers[$userName]
$sproleass=new-object Microsoft.SharePoint.SPRoleAssignment([Microsoft.SharePoint.SPPrincipal]$spuser)
$folder.BreakRoleInheritance("true")
$sproleass.RoleDefinitionBindings.Add($web.RoleDefinitions["Contribute"])
$folder.RoleAssignments.Add($sproleass);
Write-Host "Permission provided for user ", $userName
}
$doclib=[Microsoft.SharePoint.SPDocumentLibrary]$web.Lists["Shared Documents"]
$foldercoll=$doclib.Folders;
foreach($folder in $foldercoll)
{
Write-Host $folder.Name
if($folder.Name.Equals("f2"))
{
GrantUserPermission("raj")
}
}
Write-Host "Completed...."
$web.Close()
$site.Dispose()
Should
ReplyDelete[Microsoft.SharePoint.SPGroup]$spgroup = $groups[$groupName]
be actually
[Microsoft.SharePoint.SPGroup]$spgroup = $spgroups[$groupName]
because i cant see a variable by that name $groups anywhere else in the code
yes... It was a spelling mistake while posting :)
DeleteHow do you do the reverse .. remove an inherited group permission from a folder?
ReplyDeleteAM ALSO LOOKING FOR REMOVING A PARTICULAR PERMISSION LEVEL FROM THE FOLDER'S PERMISSION.
ReplyDeleteHOW TO ACHIEVE THIS?
You can use as below
Delete$sproleass.RoleDefinitionBindings.Remove($web.RoleDefinitions["Contribute"])