none
Hilfe bei Foreach - Set Mailbox - View Gesamtstruktur RRS feed

  • Frage

  • Hallo in die Runde,


    ich beschäftige mich noch nicht lange mit der Powershell und bin gerade dabei ein Skript zu erstellen, welches uns beim anlegen unser Postfächer für bereits vorhandene Benutzer hilft. Ich  hänge nur gerade leider fest und vielleicht hat jemand von euch noch eine Idee.


    Das Skript:

    Set-AdServerSettings -ViewEntireForest $True
    
    $Benutzer = Get-User -OrganizationalUnit ".../NEUE" -Filter "Name -like '*Mueller*'"  -IgnoreDefaultScope -RecipientTypeDetails 'User' 
    $Anzeigename = $Benutzer.LastName + ', ' + $Benutzer.FirstName
    $Benutzer | foreach { Enable-Mailbox -Identity $_.Name -Database "MyDB" -DisplayName $Anzeigename }
    $Benutzer | foreach { Set-Mailbox -Identity $_.Name -CustomAttribute1 "Ausbildung" }


    Wenn ich es so laufen lasse hängt er beim setzen des CustomAttribute1. Die Fehlermeldung ist:

    Der Vorgang konnte nicht ausgeführt werden, weil das Objekt 'Mueller' nicht auf 'DC.1.net.local' gefunden wurde.

    Das Problem ist, dass der Benutzer auf "DC.2.net.local" liegt. Ich vermute, dass "Set-AdServerSettings -ViewEntireForest $True" nicht in der foreach-Schleife angewendet wird.

    Führe ich "Set-Mailbox -Identity $_.Name -CustomAttribute1 "Ausbildung" ohne Schleife aus, funktioniert es.

    Ich habe leider keine Idee mehr...

    Vielen Dank bereits an dieser Stelle für eure Hilfe


    Donnerstag, 26. Juni 2014 09:44

Antworten

  • Hi,

    ich habe jetzt leider kein Exchange System zur Hand, aber probier es mal folgendermaßen:

    $Benutzer | foreach { Enable-Mailbox -Identity $_.Name -Database "MyDB" -DisplayName $Anzeigename
    while(!(get-mailbox -identity $_.Name)){
    start-sleep 1
    write-debug "Mailbox noch nicht initialisiert."
    } 
     Set-Mailbox -Identity $_.Name -CustomAttribute1 "Ausbildung" 
    }

    Gruß 

    Kamil

    Dienstag, 1. Juli 2014 07:53

Alle Antworten

  • Hi,

    Sind es zwei verschiedene Domänen? Es ist momentan nicht ganz ersichtlich wie deine Struktur ist.

    Was passiert denn wenn du Set-ADServerSetting weg lässt und statt Set-Mailbox, Get-Mailbox ausführst?

    Du kannst auch an Set-Mailbox den -DomainController Parameter anhängen z.B.

    $dc = (Get-ADServerSettings).DefaultPreferredDomainControllers[0]
    $Benutzer | foreach { Set-Mailbox -Identity $_.Name -CustomAttribute1 "Ausbildung" -Domaincontroller $dc }

    Gruß 

    Kamil

    Montag, 30. Juni 2014 14:07
  • Hallo,

    ich bin ein Stück weiter gekommen. Das Problem ist ein anderes. Wenn ich ein Postfach mittels Enable-Mailbox angelegt habe kann ich nicht direkt anschließend über Set-Mailbox dieses verändern, da es anscheinend noch nicht sofort initialisiert ist. Wenn ich zwischen den Befehlen Enable-Mailbox und Set-Mailbox 3 Sekunden warte, funktioniert es.

    Ist anscheinend analog zur GUI. Wenn man über die GUI ein neues Postfach anlegt, muss ich auch ein paar Sekunden warte bevor ich es über die Suche aufrufen kann.

    Jetzt ist meine Frage ob ich überprüfen kann, ob das Postfach vollständig initialisiert ist um dieses dann mittels Set-Mailbox anzupassen?

    Dienstag, 1. Juli 2014 06:55
  • Hi,

    ich habe jetzt leider kein Exchange System zur Hand, aber probier es mal folgendermaßen:

    $Benutzer | foreach { Enable-Mailbox -Identity $_.Name -Database "MyDB" -DisplayName $Anzeigename
    while(!(get-mailbox -identity $_.Name)){
    start-sleep 1
    write-debug "Mailbox noch nicht initialisiert."
    } 
     Set-Mailbox -Identity $_.Name -CustomAttribute1 "Ausbildung" 
    }

    Gruß 

    Kamil

    Dienstag, 1. Juli 2014 07:53
  • Kamil, ist dein Problem gelöst? Wenn ja, markiere bitte Heinzels Antwort als Antwort.

    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com
    Powershell Codesnippet Manager: Link

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.

    Freitag, 4. Juli 2014 22:30
    Moderator