公用文件夹删除所有用户的所有权限

公用文件夹删除所有用户的所有权限

问题描述:

我有数百个公用文件夹,我需要删除每个文件夹上的所有现有用户权限,然后为“默认”和“匿名”添加新权限。某些用户不存在或被禁用。公用文件夹删除所有用户的所有权限

这是我写的PS1文件:

param (
    [string] $pf='\Clients' 
) 
$children = Get-PublicFolder -Identity $pf –Recurse 
$children | % { 
    $Perm = Get-PublicFolderClientPermission $_.Identity 
    $Perm | % { 
    Remove-PublicFolderClientPermission -Identity $_.Identity -User $_.User -Confirm:$false 
    } 
    Remove-PublicFolderClientPermission -Identity $_.Identity -User Default -Confirm:$false 
    Add-PublicFolderClientPermission -Identity $_.Identity -User Default -AccessRights Owner 
    Remove-PublicFolderClientPermission -Identity $_.Identity -User Anonymous -Confirm:$false 
    Add-PublicFolderClientPermission -Identity $_.Identity -User Anonymous -AccessRights Contributor 
} 

错误是:

Cannot process argument transformation on parameter 'User'. Cannot convert value 
"Default" to type 
"Microsoft.Exchange.Management.StoreTasks.MailboxFolderUserIdParameter". 
Error: "Cannot convert hashtable to an object of the following type: 
Microsoft.Exchange.Management.StoreTasks.MailboxFolderUserIdParameter. 
Hashtable-to-Object conversion is not supported in restricted language mode or a 
Data section." 
    + CategoryInfo   : InvalidData: (:) [Remove-PublicFolderClientPermission], ParameterBindin...mationException 
    + FullyQualifiedErrorId : ParameterArgumentTransformationError,Remove-PublicFolderClientPermission 
    + PSComputerName  : outlook.office365.com

此错误是“默认”,同样的事情发生了存在的普通用户帐户。

$_.User在第8行不解析为用户。有什么想法吗?

您需要更换$_.User$_.User.DisplayName

我知道这是很久以前出版的,但它仍然是相关的。

相同的解决方案:

$a= Get-publicFolder \ -recurse -resultsize unlimited 
    $b= $a | Get-PublicFolderClientPermission 
    foreach ($pfper in $b) { 
    write-host $pfper.User.DisplayName $pfper.Identity ; Remove-PublicFolderClientPermission $pfper.Identity -User $pfper.User.DisplayName -Confirm:$false} 
    Get-PublicFolder \ -Recurse | Add-PublicFolderClientPermission -User Anonymous -AccessRights None 
    Get-PublicFolder \ -Recurse | Add-PublicFolderClientPermission -User Default -AccessRights None