无法处理参数“身份”的参数转换
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”