【发布时间】:2021-12-03 22:20:11
【问题描述】:
无法处理参数“身份”的参数转换。无法将“System.Collections.ArrayList”类型的“System.Collections.ArrayList”值转换为“Microsoft.Exchange.Configuration.Tasks.PublicFolderIdParameter”类型。是整个错误...
基本上,我们希望将 pub 文件夹迁移到共享框,我正在尝试获取现有结构的公用文件夹权限...
问题在于这里的最后一行......我不确定它为什么会抛出这个。我最初想绑定别名,而不是显示名称,但显然,显示名称包含识别它们所需的空格......无论如何,这就是我被卡住的地方......
$mepf = Get-MailPublicFolder "Pub Folder Name" -ResultSize unlimited
$alias = $mepf.displayname
$pf = get-publicfolder -Recurse -ResultSize unlimited | ? {$_.Identity -match "$alias"}
$identity = $pf.Identity
$perms = Get-PublicFolderClientPermission -Identity $pf.Identity | Where-Object {$_.User -notmatch "Default|Anonymous"} | Select-Object -ExpandProperty User
【问题讨论】:
-
$pf 可能是公用文件夹的数组(集合),因此
$pf.Identity将是所有这些公用文件夹的标识数组。看来Get-PublicFolderClientPermission的 Identity 参数只需要一个身份,而不是身份的集合。 -
$mepf也是一个集合,所以$mepf.displayname将成为一个显示名称数组。 -
@Daniel,那么我应该使用 foreach 吗?我会修补这个。谢谢
-
好的,我在 $PFs 变量之后添加了一个 foreach,它似乎正在工作......当然,我有一个新问题,但让我们将它保存到另一个线程。
标签: powershell scripting runtime-error public-folders