Jump to content
nutzer123456

SMTP: Standardemail ändern Exchange 2016

Recommended Posts

Schönen Guten Morgen!

 

Kurz zum System: Exchange 2016; Server2016 - alles über mehrere VMs auf einem HOST

 

Zum Problem:

 

Ich muss monatlich mehrere Nutzer anlegen und löschen und will diese Vorgang etwas automatisieren.

Dazu gibt es einen CSV export. Die gängigen Sachen scheinen auf den ersten Blick auch zu funktionieren.

 

Das Skript wird in der ISE gestartet; PS Snapin ist geladen.

 

In dem Skript soll auch die Primäre Absendeadresse angepasst werden.

 

Dazu hab ich auch eine schöne verständliche Anleitung gefunden: https://www.active-directory-faq.de/2018/05/primaeren-e-mail-adresse-aendern-powershell/

 

Leider verursacht dieses Skript eine Fehler für den Teil

foreach($address in $mb.EmailAddresses) {
      $prefix = $address.Split(":")[0]
      $mail = $address.Split(":")[1]

Hier heisst es immer Methode nicht gefunden. Was kann da denn schief laufen? Und was genau bedeutet dieser Fehler?

 

Edited by nutzer123456

Share this post


Link to post

Hi,

 

das liegt daran, dass der Typ "[Microsoft.Exchange.Data.ProxyAddress]" keine Methode "Split" kennt. Quick'n'Dirty:

([string]$address).Split(":")

Ich kann nicht ganz nachvollziehen, warum du das so machen möchtest. Da müsste man vermutlich den Rest vom Script bzw. die CSV sehen und die kompletten Anforderungen kennen.

 

Gruß

Jan

Share this post


Link to post

Du enthältst uns den entscheidenden teil Deines Scriptes vor. So können wir bestenfalls raten. Was steckt denn in $mb?  ;-)  

 

Poste doch mal bitte den kompletten relevanten Teil und dazu auch die komplette Fehlermeldung. Sehr häufiig enthält der Fehler schon einen Hinweis aus die Lösung.

Share this post


Link to post

Das Skript ist aber nicht sonderlich schön und enthält bestimmt noch andere Fehler.

 

#SMTP

    # Varaibalen

   $mb = Get-Mailbox $upn

   $newPrimaryMail = "$($Benutzer.alias2)@$($Benutzer.Suff)"

        Write-Host "Neue Primäre Email $newPrimaryMail"
        Write-Host $mb.EmailAddresses

   $list = New-Object System.Collections.ArrayList
    
   foreach($address in $mb.EmailAddresses) {    
       
       Write-Host $address
       $prefix,$mail = $address.Split(":") 
 
       if ($mail -eq $newPrimaryMail) { 
            $address = "SMTP:" + $mail 
       } 
       else { 
           $address = $prefix.ToLower() + ":" + $mail 
       } 
 
       $list.Add($address) 
        Write-Host "$list" # Ausgabe aller emailAdressen
   }
 
   Set-Mailbox $user -EmailAddresses $list

   $present = $Null
   $presentemail = $null
   $user = $Null
   $sec = $Null
   $useremail = $null
   }

$Benutzer ist der CSV import und $upn ist der UPN der ebenfalls aus der CSV kommt ... $upn = $($Benutzer.LoginName)

Edited by nutzer123456

Share this post


Link to post

Original:

$mb = Get-Mailbox steve.koenig

Kopie:

$upn = $($Benutzer.LoginName)

$mb = Get-Mailbox $upn

 

sollte das nicht das Selbe sein? Wahrscheinlich nicht, aber woran liegt das. Es ist doch egal über welchen Parameter ich die MailBox wähle, es bleibt eine Mailbox

Edited by nutzer123456

Share this post


Link to post

Hier mal der genaue Wortlaut des Fehlers:

 

Fehler beim Aufrufen der Methode, da [Microsoft.Exchange.Data.SmtpProxyAddress] keine Methode mit dem Namen "Split" enthält.
In C:\0001\test\Unbenannt3.ps1:68 Zeichen:8
+        $prefix,$mail = $address.Split(":")
+        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : MethodNotFound
 
Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.
In C:\0001\test\Unbenannt3.ps1:74 Zeichen:12
+            $address = $prefix.ToLower() + ":" + $mail
+            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

 

Ich konnte das mit dem String jetzt testen und es funktioniert.

 

$prefix,$mail = ([string]$address).Split(":")

kein Fehler under ändert die Primäre Email.

 

Super! Dann kann ich das endlich abschließen. Dankeschön!

Share this post


Link to post

@Sunny61

Entwickeln ich auch nicht unbedingt, aber ich mag die ISE, da ich auf diversen Systemen halt keine Zusatzsoftware nutzen darf... Und besser als Notepad ist sie dann doch

Ist genauso wie

Kunde: du darfst auf dem Server kein Word benutzen

Ich: mach ich ja auch nicht

Kunde: Aber du hast mir doch direkt eine Worddatei erstellt

Ich: Richtig, noch ist wordpad ja auch im Standard dabei

 

Jetzt überlegt der Kunde tatsächlich, ob er wordpad von den Systemen löschen lässt.

 

Share this post


Link to post

Ich würde mir ja eines der $address-Objekte einfach mal genauer anschauen. $address | gm - dann sollte klar sein, was das genau ist, was es kann und was davon man braucht.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Werbepartner:



×
×
  • Create New...