Exchange 2010 Powershell: Excluindo um contato de email associado a um usuário

2

Bom dia!

Eu tenho uma pergunta rápida. Como eu excluiria o contato de e-mail associado a um determinado usuário? Isso é o que eu tentei:

Get-Mailbox 'jsmith' | select ForwardingAddress | Remove-MailContact

Isso gera um erro de piping de comando:

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

Eu tentei isso, apenas no caso:

Get-Mailbox 'jsmith' | select ForwardingAddress | Remove-MailContact $_

E recebi isso:

Cannot bind argument to parameter 'Identity' because it is null.
    + CategoryInfo          : InvalidData: (:) [Remove-MailContact], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Remove-MailContact

No entanto, se eu executar apenas isso:

Get-Mailbox 'jsmith' | select ForwardingAddress 

Recebi esta resposta:

ForwardingAddress
-----------------
ObfuscatedDomain.com/E-mail Forwarding/J Smith

Os nomes foram alterados para proteger os inocentes.

Claramente, não sou tão bom com o powershell do Exchange, mas estou aprendendo haha. Estou assumindo que o problema é porque os dados retornados do select ForwardingAddress não são um identificador que o Remove-MailContact aceitará. No entanto, existem apenas duas propriedades 'Encaminhamento' de Get-Mailbox.

    
por Neil 20.09.2013 / 17:54

2 respostas

1

Primeiro, a propriedade ForwardingAddress não precisa corresponder a um contato de e-mail. (Eu tenho vários que listam outras caixas de correio e alguns que listam os grupos de distribuição). Apenas lembre-se disso enquanto continuamos.

O problema é o uso do verbo SELECT e como ele está retornando uma parte da propriedade em vez do objeto completo. Experimente: Remove-MailContact $(Get-Mailbox "jsmith").ForwardingAddress

Isso está recebendo o objeto que é o endereço de encaminhamento. Outra alternativa (se você não se importar com a multilinha) seria:

$mailbox = Get-Mailbox "jsmith"
$forward = $mailbox.ForwardingAddress
Remove-MailContact $forward

Lembre-se de que tudo isso pressupõe que o ForwardingAddress esteja fazendo referência a um objeto do tipo MailContact, o que não é garantido (pode ser qualquer tipo de Direcotry.ADObjectId)

    
por 20.09.2013 / 20:03
2

Acredito que você esteja procurando Disable-MailUser <username> , o que desativará a parte da conta de e-mail da conta, mas deixará a conta de usuário do AD intacta.

Se você quiser remover os atributos de e-mail de um contato que não tenha uma conta User no Active Directory, estará procurando Disable-MailContact <username> .

    
por 20.09.2013 / 17:58