none
Script: OU erstellen und Mailbox anlegen, Fehler RRS feed

  • Frage

  • Hallo Zusammen,

    Ich habe ein Script, welches eine OU erstellt und gleich darauf eine Mailbox darin anlegen will:

    New-ADOrganizationalUnit -Name $username -Path $customerOU
    New-Mailbox -Name $displayName -Alias $username -OrganizationalUnit "$forestDomain/Customers/$username" -UserPrincipalName $mailAddress  -PrimarySmtpAddress $mailAddress -SamAccountName $username -ResetPasswordOnNextLogon $false -Password (ConvertTo-SecureString -String $password -AsPlainText -Force)

    Das Script so zu starten, bringt folgenden Fehler:

    Active Directory operation failed on test-dc-02.testexchange.mydomain.com. This error is not retriable. Additional information: Directory object not found.
    Active directory response: 0000208D: NameErr: DSID-03100241, problem 2001 (NO_OBJECT), data 0, best match of:
    	'OU=Customers,DC=testexchange,DC=mydomain,DC=com'
        + CategoryInfo          : NotSpecified: (:) [New-Mailbox], ADOperationException
        + FullyQualifiedErrorId : [Server=TEST-EX-01,RequestId=b8607a87-7948-441e-9877-d55d0946a06b,TimeStamp=9/24/2021 9:19:40 AM] [FailureCategory=Cmdlet-ADOperationException] ABBEB4C4,Microsoft.Exchange.Managemen 
       t.RecipientTasks.NewMailbox
        + PSComputerName        : test-ex-01.testexchange.mydomain.com

    Baue ich ein "Get-ADOrganizationalUnit -Identity "OU=$username,$customerOU"" dazwischen ein, also bevor ich die Mailbox versuche zu erstellen, dann funktioniert es, die Ausgabe vom Get und das anlegen der Mailbox.


    Das Ganze sieht für mich so aus, als würde mit New-ADOrganizationalUnit auf den DC-01 geschrieben werden, und mit New-Mailbox vom DC-02 gelesen werden, welcher aber die neusten Infos noch nicht hat, und deswegen den Fehler ausgibt.

    Gibt es also eine Möglichkeit, einen Primären DC zu definieren, den beide immer kontaktieren, solange er online ist und sobald dieser offline ist, die rolle des primären an den zweiten DC zu übergeben?

    Das hardcoden des DCs kommt aus redundanzgründen nicht in Frage.

    Vielen Dank im Voraus

    Gruss SirSutter

    Freitag, 15. Oktober 2021 09:42

Alle Antworten

  • Moin,

    mach doch einfach nach dem Anlegen ein "Get-OrganizationalUnit" (NICHT Get-ADOrganizationalUnit!!!) in der Schleife mit 1 Sekunde Pause bis es klappt. Dann weißt Du, dass die neue OU auf den DC repliziert wurde, von dem Exchange jetzt in diesem Moment liest.


    Evgenij Smirnov

    http://evgenij.smirnov.de

    Freitag, 15. Oktober 2021 10:49
  • Hallo,

    Vielen Dank für die schnelle Rückmeldung!

    Das Get-OrganizationalUnit habe ich nur zu debugzwecken hinzugefügt.

    Ich selbst benutze dieses Script nur zum testen, die eigentliche Applikation (C# API) die nicht von mir geschrieben wurde, setzt diese Befehle ab und hat das Selbe Problem.

    Ich habe bereits den Vorschlag gemacht, sie sollen doch ein Timeout einbauen.
    Mir wurde dann gesagt, Time-outs seien erst die Lösung, wenn alle anderen Möglichkeiten nicht funktionieren.

    Gibt es noch andere Lösungsvorschläge?

    Vielen Dank im Voraus

    Freitag, 15. Oktober 2021 11:30
  • Gibt es noch andere Lösungsvorschläge?

    Der Vorschlag, Exchange abzufragen, bis klar ist, dass die AD-Konfigurationsänderung dort angekommen ist, ist das einzige, was immer und zuverlässig funktionieren wird.

    Du könntest versuchen, den Domain Controller für AD-Operationen anzusprechen, mit dem Exchange gerade kommuniziert. In PowerShell wäre das

    @(Get-ExchangeServer -Status | Select-Object -ExpandProperty CurrentDomainControllers)[0]

    Aber meine Erfahrung sagt, dass auch dann das Phänomen auftreten könnte, denn bei mehreren DCs in der Site wechselt Exchange sie manchmal.


    Evgenij Smirnov

    http://evgenij.smirnov.de

    Freitag, 15. Oktober 2021 12:27