nutzer123456 0 Geschrieben 31. Juli 2020 Melden Teilen Geschrieben 31. Juli 2020 (bearbeitet) 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 31. Juli 2020 von nutzer123456 Zitieren Link zu diesem Kommentar
testperson 1.707 Geschrieben 31. Juli 2020 Melden Teilen Geschrieben 31. Juli 2020 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 Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 31. Juli 2020 Melden Teilen Geschrieben 31. Juli 2020 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. Zitieren Link zu diesem Kommentar
nutzer123456 0 Geschrieben 31. Juli 2020 Autor Melden Teilen Geschrieben 31. Juli 2020 (bearbeitet) 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 31. Juli 2020 von nutzer123456 Zitieren Link zu diesem Kommentar
testperson 1.707 Geschrieben 31. Juli 2020 Melden Teilen Geschrieben 31. Juli 2020 vor 13 Minuten schrieb BOfH_666: Was steckt denn in $mb? Eine MailBox . $mb = Get-Mailbox <Hier steht auf der oben verlinkten Seite ein Vor-.Nachname> Zitieren Link zu diesem Kommentar
nutzer123456 0 Geschrieben 31. Juli 2020 Autor Melden Teilen Geschrieben 31. Juli 2020 (bearbeitet) 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 bearbeitet 31. Juli 2020 von nutzer123456 Zitieren Link zu diesem Kommentar
testperson 1.707 Geschrieben 31. Juli 2020 Melden Teilen Geschrieben 31. Juli 2020 Nunja, siehe: https://www.mcseboard.de/topic/218437-smtp-standardemail-ändern-exchange-2016/?do=findComment&comment=1404725 Zitieren Link zu diesem Kommentar
nutzer123456 0 Geschrieben 31. Juli 2020 Autor Melden Teilen Geschrieben 31. Juli 2020 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! Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 31. Juli 2020 Melden Teilen Geschrieben 31. Juli 2020 BTW: In der ISE möchte ich nicht eine Zeile Code mehr entwickeln müssen, Visual Studio Code ist das Mittel der Wahl. Kostenlos und bietet viel. ;) https://code.visualstudio.com/download Zitieren Link zu diesem Kommentar
nutzer123456 0 Geschrieben 31. Juli 2020 Autor Melden Teilen Geschrieben 31. Juli 2020 vor 6 Stunden schrieb Sunny61: BTW: In der ISE möchte ich nicht eine Zeile Code mehr entwickeln müssen, Visual Studio Code ist das Mittel der Wahl. Kostenlos und bietet viel. ;) https://code.visualstudio.com/download Ich werf da einen Blick drauf. Zitieren Link zu diesem Kommentar
MrCocktail 194 Geschrieben 1. August 2020 Melden Teilen Geschrieben 1. August 2020 @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. Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 1. August 2020 Melden Teilen Geschrieben 1. August 2020 Man kann natürlich auch in einer Remote PS-Session arbeiten, wenn ich keine Zusatzsoftware verwenden darf/kann. Zitieren Link zu diesem Kommentar
daabm 1.366 Geschrieben 1. August 2020 Melden Teilen Geschrieben 1. August 2020 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. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.