无法处理参数“身份”的参数转换

Posted

技术标签:

【中文标题】无法处理参数“身份”的参数转换【英文标题】:Cannot process argument transformation on parameter 'Identity' 【发布时间】:2021-11-22 16:11:02 【问题描述】:

好的,就是这个东西,就在这里... ο( >

 $PubFolder = "SomeMailEnabledFolder"
 Get-MailPublicFolder $PubFolder | Get-PublicFolder

应该是这样的。当。简单...

返回的错误:

。无法将值“MyDomain/Microsoft Exchange System Objects/Mailbox Name”转换为 键入“Microsoft.Exchange.Configuration.Tasks.PublicFolderIdParameter”。错误:“为参数“MyDomain/Microsoft Exchange System”提供的值 “对象/邮箱名称”的格式不正确。正确的格式是“”。”

我已经尝试了很多东西,比如在其中连接一个斜线,传递 $var.name 参数,向我的显示器投掷我最好的莎士比亚式侮辱等等......没有任何效果。

此时我已经准备好打海豚了……我觉得答案很简单,这会让我更加恼火,但这是我的人生。

我求求你...救救一只海豚(实际上,我可能不会赢得与海豚的战斗,但想想看),并伸出援助之手...

提前感谢你。

愿原力与你同在。

【问题讨论】:

Get-MailPublicFolder 的结果对象继承自具有 Identity 成员的 MailEnabledRecipient。我看不到Get-PublicFolder 的来源,但它可能没有将Identity 参数作为ValueFromPipelineByPropertyName。如果您传递Identity 参数是否有效 - Get-MailPublicFolder $PubFolder | % Get-PublicFolder -Identity $_.Identity (Get-MailPublicFolder $PubFolder).Identity | Get-PublicFolder 测试中...敬请期待。 第一位返回同样的错误。返回的第二位:输入对象不能绑定到命令的任何参数,因为命令不接受管道输入,或者输入及其属性不匹配任何接受管道输入的参数。 只是一点背景知识。这是一个混合环境,但 PF 是本地的。我在本地连接...另外,有趣的是,get-mailpublicfolder 返回的身份和路径字段与文件夹的实际路径不匹配(我通过其他方式找到它)。返回的身份属性是 domain/Microsoft Exchange System Objects/mailbox,它并不表示实际位置。 为什么不干脆做Get-PublicFolder -Mailbox $PubFolder?如果您希望所有邮件都启用公共文件夹,您可以这样做Get-PublicFolder -Recurse -ResultSize Unlimited | Where-Object $_.MailEnabled -eq $true 【参考方案1】:

感谢Theo,将您的建议作为答案发布以帮助其他社区成员。

"你可以试试Get-PublicFolder -Mailbox $PubFolder, 如果你想启用所有邮件的公共文件夹,你可以做Get-PublicFolder -Recurse -ResultSize Unlimited | Where-Object $_.MailEnabled -eq $true "

有关更多信息,请参阅此 MS DOC:Cannot process argument transformation error for cmdlets

【讨论】:

是的,有人会想...当我这样做时,它会返回,找不到收件人...我正在尝试根据电子邮件地址查找文件夹的父路径...

以上是关于无法处理参数“身份”的参数转换的主要内容,如果未能解决你的问题,请参考以下文章

MS Graph Powershell SDK - 无法处理参数“BodyParameter”的参数转换

无法将参数发送到通过 IExpress 转换为应用程序的批处理文件

我们能否处理错误“无法将 BOOL 类型的值转换为预期的参数 UIiew”

无法将 String 类型的值转换为预期的参数类型 NSManagedObject

MAPGIS中如何初始化转换参数

无法转换 javascript 参数