Назад | Перейти на главную страницу

Exchange 2010 Powershell: удаление почтового контакта, связанного с пользователем

Доброе утро!

У меня есть быстрый вопрос. Как мне удалить почтовый контакт, связанный с определенным пользователем? Вот что я пробовал:

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)