Exchange 2010 PowerShell:无法绑定参数
Exchange 2010 PowerShell: Cannot bind argument
我正在尝试从 Exchange 服务器的所有邮箱中删除孤立的用户对象。
当我执行这条命令时:
get-mailboxpermission * | where {$_.User -like "S-1-5-21*"} | foreach {$_.Identity.Name}
它正确 returns 一个列表,其中包含仍然设置了孤立用户帐户权限的所有邮箱。
但是,当我尝试通过这样做删除它们时:
get-mailboxpermission * | where {$_.User -like "S-1-5-21*"} | remove-mailboxpermission -identity $_.Identity.Name -user $_.User -accessrights $_.AccessRights -deny:$_.Deny
它returns这个错误:
Cannot bind argument to parameter 'Identity' because it is null.
+ CategoryInfo : InvalidData: (:) [Remove-MailboxPermission], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Remove-MailboxPermission
我做错了什么?
感谢您的帮助。
$_
不能那样工作,您需要将 Remove-MailboxPermission
语句包装在 ForEach-Object {}
:
中
Get-MailboxPermission * | Where-Object {$_.User -like "S-1-5-21*"} | ForEach-Object {
Remove-MailboxPermission -Identity $_.Identity.Name -User $_.User -AccessRights $_.AccessRights -Deny:$_.Deny
}
由于 Exchange 似乎不太喜欢嵌套管道,您可以简单地完全放弃参数参数(Remove-MailboxPermission
将自动绑定来自管道的权限):
Get-MailboxPermission * | Where-Object {$_.User -like "S-1-5-21*"} | Remove-MailboxPermission
我正在尝试从 Exchange 服务器的所有邮箱中删除孤立的用户对象。
当我执行这条命令时:
get-mailboxpermission * | where {$_.User -like "S-1-5-21*"} | foreach {$_.Identity.Name}
它正确 returns 一个列表,其中包含仍然设置了孤立用户帐户权限的所有邮箱。
但是,当我尝试通过这样做删除它们时:
get-mailboxpermission * | where {$_.User -like "S-1-5-21*"} | remove-mailboxpermission -identity $_.Identity.Name -user $_.User -accessrights $_.AccessRights -deny:$_.Deny
它returns这个错误:
Cannot bind argument to parameter 'Identity' because it is null.
+ CategoryInfo : InvalidData: (:) [Remove-MailboxPermission], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Remove-MailboxPermission
我做错了什么?
感谢您的帮助。
$_
不能那样工作,您需要将 Remove-MailboxPermission
语句包装在 ForEach-Object {}
:
Get-MailboxPermission * | Where-Object {$_.User -like "S-1-5-21*"} | ForEach-Object {
Remove-MailboxPermission -Identity $_.Identity.Name -User $_.User -AccessRights $_.AccessRights -Deny:$_.Deny
}
由于 Exchange 似乎不太喜欢嵌套管道,您可以简单地完全放弃参数参数(Remove-MailboxPermission
将自动绑定来自管道的权限):
Get-MailboxPermission * | Where-Object {$_.User -like "S-1-5-21*"} | Remove-MailboxPermission