Laden...

[gelöst] Powershell und Exchange Email Adress-Listen

Erstellt von Grumbler85 vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.825 Views
G
Grumbler85 Themenstarter:in
538 Beiträge seit 2008
vor 12 Jahren
[gelöst] Powershell und Exchange Email Adress-Listen

Ich habe ein Problem beim übergeben eines Parameters via Powershell.
Es handelt sich um das Exchange2010 PS-Addin und ich versuche eine Emailadresse (Alias) hinzuzufügen:

using (var pipeline = ExchangeManagementShell.CreatePipeline())
            {
                var command = new Command("Set-Mailbox");
                command.Parameters.Add(IdentityParameter, username);
                //property = "EmailAddresses"
                //value = "@{Add='neuesAlias@example.com'}"
                command.Parameters.Add(property, value);

                pipeline.Commands.Add(command);

                pipeline.Invoke();
                if(pipeline.Error != null && pipeline.Error.Count > 0)
                    throw new ApplicationFailedException(pipeline.Error.Peek().ToString());
            }

Damit generiere ich folgende Fehlermeldung:> Fehlermeldung:

Cannot convert '@{Add='neuesAlias@example.com'}' to the type 'Microsoft.Exchange.Data.ProxyAddressCollection' required by parameter 'EmailAddresses'.
The address '@{Add='neuesAlias@example.com'}' is invalid: "@{Add='neuesAlias@example.com'}" 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.

Der Befehl den ich ausführen möchte, sieht etwa so aus:

Set-Mailbox grumbler85 -EmailAddresses @{Add='neuesAlias@example.com'}

Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)

49.485 Beiträge seit 2005
vor 12 Jahren

Hallo Grumbler85,

wirklich auskennen tue ich mich bei der Powershell nicht, aber eine holprige Antwort ist vielleicht besser als keine Antwort.

Für mich sieht es so aus, als wäre die erste Fehlermeldung eine Folge der zweiten. Auf jeden Fall würde ich versuchen, zuerst die zweite zu beheben. Bei der geht es um das Format der E-Mail-Adresse. Du solltest also prüfen, ob sich da wirklich keine White-Spaces eingeschichen haben und auch sonst das Format korrekt ist, also z.B. der Domain-Anteil mindestens einen Punkt enthält. Ich würde es an deiner Stelle einfach mal mit einer Anzahl verschiedener korrekter E-Mail-Adressen probieren. Möglicherweise liegt es auch an den (einfachen) Anführungsstrichen.

herbivore

G
Grumbler85 Themenstarter:in
538 Beiträge seit 2008
vor 12 Jahren

Danke für deine Antwort, aber das war es nicht - es hat eine Weile gedauert, bis ich begriffen habe, was da eigentlich passiert.

In PowerShell erzeugt

@{"SomeName"="SomeValue"}

eine HashTable (System.Collections.HashTable)

Wenn man genau das nach C# übersetzt, klappt es wie erwartet:


var myValue = new System.Collections.HashTable {{ "Add", smptAddress }};
command.parameters.Add("EmailAddresses", myValue);

Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)