Jump to content

SMTP: Standardemail ändern Exchange 2016


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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?

 

bearbeitet von nutzer123456
Link zu diesem Kommentar

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

Link zu diesem Kommentar

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)

bearbeitet von nutzer123456
Link zu diesem Kommentar

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!

Link zu diesem Kommentar

@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.

 

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...