Powershell für Exchange und DC
Hallo zusammen
ich hab da ein Script um neue AD User zu erstellen. Mit dem Script mach ich gleichzeitig auch das Postfach und setzte diverse AD Felder für die Verwendung von Teams usw.
Das Problem ist nun, nachdem der User in der AD angelegt wurde, kann ich nicht direkt anschliessend eine Mailbox eröffnen, sonst erhalte ich eine Fehlermeldung, das der User nicht existiert. Hab mir nun eine Schleife eingebaut, die 10 Sekunden dauert. Danach wird der User dann auch gefunden und das Postfach wird angelegt.
Nach diesem Schritt muss ich aber wiederum fast 30 Sekunden warten, bis ich die Mailadresse auslesen kann.
Gibt es eine Möglichkeit den Befehl abzusetzen, aber das dieser Befehl dann solange auf ein Resultat wartet bis dieses positiv ausfällt?
Oder gibt es da gänzlich andere Möglichkeiten die sicherstellen, das die Befehle korrekt umgesetzt und synchronisiert wurden?
Besten Dank
Holzwurm
PS: Konkret mein Script:
New-ADUser `
-SamAccountName $Username `
-UserPrincipalName "$Firstname.$Lastname@$UPNname" `
-Name "$Lastname $Firstname" `
-GivenName $Firstname `
-Surname $Lastname `
-Enabled $True `
-ChangePasswordAtLogon $True `
-DisplayName "$Lastname $Firstname " `
-Department $Department `
-Path $OU -AccountPassword (convertto-securestring $Password -AsPlainText -Force) `
-HomePage "$homepage" `
-StreetAddress "$Strasse" `
-city "$Ort" `
-State "xy" `
-Country "CH" `
-company "$Firma" `
-scriptPath "logmein.bat" `
-homedirectory "$homedirpath$Username" `
-homeDrive "$homedirdrive" `
-OfficePhone "$usertelephone" `
-PostalCode "$PLZ" `
-Server $DomainConti
start-countdown 10
Get-User -Identity $username -DomainController $DomainConti | Enable-Mailbox -Database "Ex2016MDB"
start-countdown 30
Write-Host "Stufe 5 - Postfacheinstellungen werden vorgenommen"
Set-MailboxRegionalConfiguration -Identity $username -Language de-CH -DateFormat "dd.MM.yyyy" -TimeFormat "HH:mm" -TimeZone "W. Europe Standard Time" -LocalizeDefaultFolderName
ich hab da ein Script um neue AD User zu erstellen. Mit dem Script mach ich gleichzeitig auch das Postfach und setzte diverse AD Felder für die Verwendung von Teams usw.
Das Problem ist nun, nachdem der User in der AD angelegt wurde, kann ich nicht direkt anschliessend eine Mailbox eröffnen, sonst erhalte ich eine Fehlermeldung, das der User nicht existiert. Hab mir nun eine Schleife eingebaut, die 10 Sekunden dauert. Danach wird der User dann auch gefunden und das Postfach wird angelegt.
Nach diesem Schritt muss ich aber wiederum fast 30 Sekunden warten, bis ich die Mailadresse auslesen kann.
Gibt es eine Möglichkeit den Befehl abzusetzen, aber das dieser Befehl dann solange auf ein Resultat wartet bis dieses positiv ausfällt?
Oder gibt es da gänzlich andere Möglichkeiten die sicherstellen, das die Befehle korrekt umgesetzt und synchronisiert wurden?
Besten Dank
Holzwurm
PS: Konkret mein Script:
New-ADUser `
-SamAccountName $Username `
-UserPrincipalName "$Firstname.$Lastname@$UPNname" `
-Name "$Lastname $Firstname" `
-GivenName $Firstname `
-Surname $Lastname `
-Enabled $True `
-ChangePasswordAtLogon $True `
-DisplayName "$Lastname $Firstname " `
-Department $Department `
-Path $OU -AccountPassword (convertto-securestring $Password -AsPlainText -Force) `
-HomePage "$homepage" `
-StreetAddress "$Strasse" `
-city "$Ort" `
-State "xy" `
-Country "CH" `
-company "$Firma" `
-scriptPath "logmein.bat" `
-homedirectory "$homedirpath$Username" `
-homeDrive "$homedirdrive" `
-OfficePhone "$usertelephone" `
-PostalCode "$PLZ" `
-Server $DomainConti
start-countdown 10
Get-User -Identity $username -DomainController $DomainConti | Enable-Mailbox -Database "Ex2016MDB"
start-countdown 30
Write-Host "Stufe 5 - Postfacheinstellungen werden vorgenommen"
Set-MailboxRegionalConfiguration -Identity $username -Language de-CH -DateFormat "dd.MM.yyyy" -TimeFormat "HH:mm" -TimeZone "W. Europe Standard Time" -LocalizeDefaultFolderName
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 661837
Url: https://administrator.de/forum/powershell-fuer-exchange-und-dc-661837.html
Ausgedruckt am: 15.05.2025 um 10:05 Uhr
4 Kommentare
Neuester Kommentar
Moin,
bitte die code-Tags nutzen. Sieht hübscher aus.
Ich würde das mit einer rekursiven Funktion lösen:
Beim zweiten Befehl, der nicht sofort erfolgreich ist, entsprechend. Evtl. noch einen Zähler mit aufnehmen, damit das nicht endlos läuft, wenn es mal aus anderen Gründen schief läuft.
Liebe Grüße
Erik
bitte die code-Tags nutzen. Sieht hübscher aus.
Ich würde das mit einer rekursiven Funktion lösen:
function enable-usermb {
PARAM(
$user,
$dc
)
try {
Get-User -Identity $user -DomainController $dc -erroraction continue | Enable-Mailbox -Database "Ex2016MDB" -erroraction continue
}
catch {
start-sleep -s 1
enable-usermb -user $user -dc $dc
}
}
Beim zweiten Befehl, der nicht sofort erfolgreich ist, entsprechend. Evtl. noch einen Zähler mit aufnehmen, damit das nicht endlos läuft, wenn es mal aus anderen Gründen schief läuft.
Liebe Grüße
Erik
Moin,
hast du mal überlegt, den User direkt am Exchange anzulegen, anstatt ihn erst am DC anzulegen, zu warten und dann eine Mailbox hinzuzufügen?
https://docs.microsoft.com/en-us/exchange/recipients/create-user-mailbox ...
Zudem bin ich jetzt kein Powershell-Profi (fange gerade gaaanz langsam damit an), aber mit nem Pipe kann man doch sicherlich den User anlegen und direkt deine Set-MailboxRegionalConfiguration abfrühstücken!?
Gruß
em-pie
hast du mal überlegt, den User direkt am Exchange anzulegen, anstatt ihn erst am DC anzulegen, zu warten und dann eine Mailbox hinzuzufügen?
https://docs.microsoft.com/en-us/exchange/recipients/create-user-mailbox ...
Zudem bin ich jetzt kein Powershell-Profi (fange gerade gaaanz langsam damit an), aber mit nem Pipe kann man doch sicherlich den User anlegen und direkt deine Set-MailboxRegionalConfiguration abfrühstücken!?
Gruß
em-pie
Nabend,
Du gehst das falsch an. Genau andersrum wäre der Weg.
Exchangepostfach erstellen und AD Konto anpassen.
Dazu benutzt du die Exchange Powershell.
Wie Kollege @em-pie schon verlinkt hat.
Grüße
Du gehst das falsch an. Genau andersrum wäre der Weg.
Exchangepostfach erstellen und AD Konto anpassen.
Dazu benutzt du die Exchange Powershell.
Wie Kollege @em-pie schon verlinkt hat.
Grüße