2016-11-09 2 views
0

Nous venons d'ajouter un nom de domaine à nos domaines acceptés et à notre politique d'adresse e-mail. Alors que beaucoup de nos utilisateurs suivent cette politique, nous avons un troisième domaine que certains utilisateurs ont comme adresse principale qui ne suit pas une politique d'adresse. Je dois prendre ces utilisateurs et ajouter une adresse SMTP dans le format de [email protected]. Par exemple, [email protected] (principal) a [email protected] sous la forme d'un alias et doit ajouter [email protected] en tant qu'adresse SMTP.Bulk Ajouter SmtpAddress aux utilisateurs Exchange 2010

J'ai le code suivant, mais je suis des erreurs de réception:

$Users = Get-Mailbox -ResultSize Unlimited | Where-Object {($_.PrimarySMTPAddress -like "*domain3.com*)} 
foreach ($a in $Users) { 
    $b = Get-User $a.Primary.SMTPAddress 
    $a.EmailAddresses.Add("$($b.Firstname + "." + $b.Lastname)@domain2.com") 
} 
$Users |%{Set-Mailbox $_.PrimarySMTPAddress -EmailAddresses $_.EmailAddresses 

erreurs sont les suivantes:

Cannot process argument transformation on parameter 'Identity'. Cannot convert the "[email protected]" value of type "Microsoft.Exchange.Data.SmtpAddress" to type "Microsoft.Exchange.Configuration.Tasks.UserIdParameter". + CategoryInfo : InvalidData: (:) [Get-User], ParameterBindin...mationException + FullyQualifiedErrorId : ParameterArgumentTransformationError,Get-User

Exception calling "Add" with "1" argument(s): "The address '[email protected]' is invalid: "[email protected]" isn't a valid SMTP address. The domain name can't contain spaces and it has to have a prefix and a suffix, such as example.com." At C:\_scripts\SmtpAdd.ps1:4 char:23 + $a.emailaddresses.Add <<<< ("$($b.Firstname + "." + $b.LastName)@domain2.com") + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException

Cannot process argument transformation on parameter 'Identity'. Cannot convert the "[email protected]" value of type "Microsoft.Exchange.Data.SmtpAddress" to type "Microsoft.Exchange.Configuration.Tasks.MailboxIdParameter". + CategoryInfo : InvalidData: (:) [Set-Mailbox], ParameterBindin...mationException + FullyQualifiedErrorId : ParameterArgumentTransformationError,Set-Mailbox

Merci

Répondre

1

Je pense que le problème commence par cette ligne:

$b = Get-User $a.Primary.SMTPAddress

Get-User ne renvoie pas un utilisateur valide $a.Primary.SMTPAddress ne retourne pas un type qui Get-User peut utiliser. Cela provoque alors l'échec de EmailAddresses.Add car $b est nul. Set-Mailbox échoue pour la même raison que Get-User

Essayez plutôt (vous aurez également besoin de le faire sur la ligne Set-Mailbox):

$b = Get-User $a.Primary.SMTPAddress.ToString()

+0

Cela a fonctionné lors de la spécification d'un seul utilisateur avec '$ Users = Get-Mailbox "Nom d'utilisateur". Je reçois toujours l'erreur "Ajout d'exception" Ajouter "erreur" qui est répertorié ci-dessus avec le même code dans OP – hdub

+0

Pouvez-vous examiner le contenu de $ b avant de faire le 'EmailAddresses.Add'? –

+0

Le problème semblait provenir d'un problème séparé avec notre environnement Exchange.Cela a depuis été corrigé et le script a couru. Merci encore @Tav. – hdub