Доброе утро!
У меня есть быстрый вопрос. Как мне удалить почтовый контакт, связанный с определенным пользователем? Вот что я пробовал:
Get-Mailbox 'jsmith' | select ForwardingAddress | Remove-MailContact
Это вызывает ошибку командной строки:
The input object cannot be bound to any parameters for the command either because the command does not take pipeline input or the input and its properties do
not match any of the parameters that take pipeline input.
+ CategoryInfo : InvalidArgument: (@{ForwardingAdd...ding/J Smith}:PSObject) [Remove-MailContact], ParameterBindingException
+ FullyQualifiedErrorId : InputObjectNotBound,Remove-MailContact
Затем я попробовал это, на всякий случай:
Get-Mailbox 'jsmith' | select ForwardingAddress | Remove-MailContact $_
И получил вот это:
Cannot bind argument to parameter 'Identity' because it is null.
+ CategoryInfo : InvalidData: (:) [Remove-MailContact], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Remove-MailContact
Однако, если я запустил именно это:
Get-Mailbox 'jsmith' | select ForwardingAddress
Мне дали такой ответ:
ForwardingAddress
-----------------
ObfuscatedDomain.com/E-mail Forwarding/J Smith
Имена изменены, чтобы защитить невиновных.
Ясно, что я не так хорош с Exchange PowerShell, но я учусь, ха-ха. Я предполагаю, что проблема заключается в том, что данные, возвращенные из select ForwardingAddress, не являются идентификатором, который примет Remove-MailContact. Однако Get-Mailbox имеет только два свойства «Пересылка».
Я верю, ты ищешь Disable-MailUser <username>
, который отключит часть учетной записи электронной почты, но оставит учетную запись пользователя AD нетронутой.
Если вы хотите удалить атрибуты электронной почты контакта, у которого нет User
учетной записи в Active Directory, то вы ищете Disable-MailContact <username>
.
Во-первых, ForwardingAddress
собственность не должны соответствовать почтовому контакту. (У меня есть несколько, в которых перечислены другие почтовые ящики, и довольно много, в которых перечислены группы рассылки). Просто помните об этом, когда мы продолжим.
Проблема заключается в том, что вы используете команду SELECT и как она возвращает часть свойства вместо полного объекта. Пытаться: Remove-MailContact $(Get-Mailbox "jsmith").ForwardingAddress
Это получение объекта, который является адресом пересылки. Другой альтернативой (если вы не против использовать несколько строк) будет:
$mailbox = Get-Mailbox "jsmith"
$forward = $mailbox.ForwardingAddress
Remove-MailContact $forward
Помните, что все это предполагает, что ForwardingAddress ссылается на объект типа MailContact, что не гарантируется (это может быть любой тип Direcotry.ADObjectId)