【发布时间】:2017-02-04 12:24:41
【问题描述】:
我有数百个公共文件夹,我需要删除每个文件夹的所有现有用户权限,然后为默认和匿名添加新权限。一些用户不存在,或被禁用。
这是我写的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
}
错误是:
无法处理参数“用户”的参数转换。无法转换价值
“默认”键入
“Microsoft.Exchange.Management.StoreTasks.MailboxFolderUserIdParameter”。
错误:“无法将哈希表转换为以下类型的对象:
Microsoft.Exchange.Management.StoreTasks.MailboxFolderUserIdParameter。
受限语言模式或不支持 Hashtable 到对象的转换
数据部分。”
+ CategoryInfo : InvalidData: (:) [Remove-PublicFolderClientPermission], ParameterBindin...mationException
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,Remove-PublicFolderClientPermission
+ PSComputerName:outlook.office365.com
此错误是针对“默认”的,存在的普通用户帐户也发生了同样的事情。
第 8 行的$_.User 不解析为用户。有什么想法吗?
【问题讨论】:
标签: powershell exchange-server