使用Powershell为sharepoint文件夹分配权限

时间:2014-07-25 13:31:44

标签: powershell sharepoint

我是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

2 个答案:

答案 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()