我是PowerShell的新手,对Sharepoint更有经验。 我需要使用Contribute为列表中的文件夹分配权限。
网站http://contoso.com/stores/Form1/001 清单:Form1 文件夹:001 用户:contoso \ user001
我希望最简单的代码可以为单个用户分配文件夹001的“Contribute”权限。
非常感谢大家!
当我在这个主题上谷歌时,每个帖子都会回到这个网站,但我无法完成这项工作。如果有人可以通过我的信息为我调整它或为我制作新的代码,我将非常感激。我很乐意接受回答并为你的代表加油! http://sharepoint2010tutor.blogspot.com.au/2011/08/grant-folder-permissionsharepoint-using.html
答案 0 :(得分:1)
调用GrantUserPermission
函数时,需要传入现有SharePoint用户的用户ID。现在你正在传递你想要分配的权限级别。这已经在角色绑定中设置了。
if($folder.Name.Equals("001"))
{
# don't pass the permission level here --> GrantUserPermission("Contribute")
# pass a valid SharePoint user.
GrantUserPermission("adventureworks\jdoe")
}
答案 1 :(得分:0)
目前我正在使用这个:
Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
Add-SPShellAdmin
cls
$site = new-object Microsoft.SharePoint.SPSite("http://contoso.com/stores")
$web = $site.OpenWeb()
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["Form1"]
$foldercoll=$doclib.Folders;
foreach($folder in $foldercoll)
{
Write-Host $folder.Name
if($folder.Name.Equals("001"))
{
GrantUserPermission("Contribute")
}
}
Write-Host "Completed...."
$web.Close()
$site.Dispose()