2016-09-27 1 views
1

나는 수십 개의 공용 폴더가 있으며 각 폴더에서 기존 사용자 권한을 모두 제거한 다음 Default 및 Anonymous에 대한 새 사용 권한을 추가해야합니다. 일부 사용자가 없거나 사용할 수 없습니다.공용 폴더는 모든 사용자의 모든 사용 권한을 제거합니다.

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

이 오류는 "기본"입니다, 같은 일이 존재하는 일반 사용자 계정에 무슨 일이 있었

이것은 내가 작성한 PS1 파일입니다.

$_.User은 8 번째 줄에 사용자로 구문 분석하지 않습니다. 이견있는 사람?

답변

1

당신은 내가이 오래 전에 출판되었다 ​​알고 $_.User.DisplayName

$_.User를 교체해야하지만, 여전히 관련이있다.

같은 솔루션 :

$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