J'utilise SP 2013.Set sous-dossier d'autorisation/action au groupe dans une bibliothèque powershell
Je dois définir des autorisations spécifiques aux sous-dossiers dans une bibliothèque de documents
Je le script suivant:
Add-PSSnapin Microsoft.SharePoint.PowerShell
Function GetFiles($folder)
{
# Use recursion to loop through all subfolders.
foreach ($subFolder in $folder.SubFolders)
{
GetFiles($subFolder)
}
if($folder.Name -eq "C" -Or $folder.Name -eq "B3-B6" -Or $folder.Name -eq "C8" -Or $folder.Name -eq "D" -Or $folder.Name -eq "A5" -Or $folder.Name -eq "A1-A4")
{
Write-Host "+"$folder.Name
if($folder.Name -eq "C8")
{
$roleAssignment = new-object Microsoft.SharePoint.SPRoleAssignment($web.SiteGroups["HumanResources-HR - C8"])
}
else
{
$roleAssignment = new-object Microsoft.SharePoint.SPRoleAssignment($web.SiteGroups["HumanResources-HR - Other"])
}
#Get Permission Level, such as "Read", "Contribute", etc
$roleAssignment.RoleDefinitionBindings.Add($web.RoleDefinitions["Contribute"])
$roleAssignment.RoleDefinitionBindings.Add($web.RoleDefinitions["Read"])
#Grant Access to specified Group
$folder.RoleAssignments.Add($roleAssignment)
#To Remove Access: Call $item.RoleAssignments.Remove($group) . No Need for objects: roleAssignment, roleDefinition
$folder.Update();
Write-Host "Successfully added $($PermissionLevel) to $GroupName group in $($folder.Name)" -foregroundcolor Green
}
}
$web = Get-SPWeb -Identity "xxx.xxx.xxx/sites/xxx"
$rfolder=$web.Lists["DOKUMENTNA KNJIŽNICA"].RootFolder
GetFiles($rfolder)
et je suis une erreur dans la ligne: $ folder.RoleAssignments.Add (roleAssignment $)
Vous ne pouvez pas appeler une méthode sur une expression à valeur nulle. À la ligne: 29 char: 13 + $ folder.RoleAssignments.Add ($ roleAssignment) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ + CategoryInfo: InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId: InvokeMethodOnNull
et cela se produit avec tous les dossiers.
J'ai essayé le même code pour définir des autorisations sur l'ensemble de la bibliothèque et cela a fonctionné. Mais cela ne fonctionne pas avec les dossiers.
Merci de m'aider. Merci
Bonjour. Pour les dossiers que vous pouvez utiliser: Set-Acl: [lien] (https://blogs.msdn.microsoft.com/johan/2008/10/01/powershell-editing-permissions-on-a-file-or-folder /) – Vitaly
L'erreur indique qu'elle n'a aucune valeur. Pourriez-vous vérifier ce qui arrive dans '$ roleAssignment' et' $ folder.RoleAssignments' –