Active Directory : Set-ADUser et multiple ProxyAddresses
I. Présentation
Au sein de l'Active Directory, chaque objet "utilisateur" dispose d'un attribut nommé "proxyAddresses" qui est utilisé pour la messagerie. Il est généralement utilisé lors de la mise en place de la synchronisation entre Active Directory et Office 365 via Azure AD Connect.
Cet attribut à valeur multiple contient l'adresse e-mail principale de l'utilisateur, et éventuellement ses alias de messagerie. Dans ce tutoriel, nous allons justement voir comment ajouter par script plusieurs valeurs dans cet attribut, le tout avec PowerShell.
II. Modifier proxyAddresses avec PowerShell
Pour modifier un utilisateur dans l'Active Directory, nous allons utiliser le cmdlet "Set-ADUser" qui est très puissant et permet de modifier l'ensemble des attributs (autorisés) d'un utilisateur. Pour définir plusieurs valeurs proxyAddresses, nous pouvons utiliser un tableau de valeur.
Note : Pour rappel, l'adresse principale doit être définie avec "SMTP", et les alias avec "smtp" - La casse est donc très importante.
Commençons par définir nos adresses e-mails :
$EmailPrincipale = "[email protected]" $EmailSecondaire = "[email protected]"
On va ensuite construire notre tableau de valeurs (il peut y en avoir plus de deux, selon le nombre d'alias) :
$UserEmails = @("SMTP:$EmailPrincipal","smtp:$EmailSecondaire")
On va ensuite venir remplacer la valeur de l'attribut proxyAddress de notre utilisateur par le contenu de notre variable $UserEmails.
$DomainController = "SRV-DC" $SamAccountName = "florian" Set-ADUser -Identity $SamAccountName -Server $DomainController -Replace @{proxyAddresses=$UserEmails}
Cette commande Set-ADUser va ajouter l'adresse principale SMTP et l'alias smtp.
Maintenant, on pourrait avoir besoin de le faire en deux temps, d'abord ajouter l'adresse principale avec SMTP et ensuite l'alias avec smtp. On va toujours utiliser Set-ADUser, puis dans un premier temps on va écraser l'attribut proxyAddresses pour mettre l'adresse principale (-Replace) et on va venir ajouter l'alias (-Add).
Ce qui nous donne ces deux commandes :
Set-ADUser -Identity $SamAccountName -Server $DomainController -Replace @{proxyAddresses="SMTP:$EmailPrincipale" } Set-ADUser -Identity $SamAccountName -Server $DomainController -Add @{proxyAddresses="smtp:$EmailSecondaire" }
Je vous laisse rafraîchir votre console Active Directory pour vérifier que le changement est bien pris en compte ! Sinon, pour le fun on peut aussi le vérifier en ligne de commande :
Get-ADUser -Filter 'SamAccountName -eq "florian"' -Properties proxyAddresses -Server $DomainController
Voilà, à vous de jouer !
Bonjour,
modifier les attributs exchange en direct sans passer par ECP ou les cmdlet Exchange n’est pas supporté
https://blogs.technet.microsoft.com/exchange/2012/12/05/decommissioning-your-exchange-2010-servers-in-a-hybrid-deployment/
[…]For example, adding a proxy address or putting a mailbox on litigation hold when there isn’t an Exchange Management Console (EMC) or Exchange Management Shell (Shell) on-premises becomes difficult and these simple (and other more complex) tasks cannot be done in a supported way.[…]
Je sais, ça fait mal aux yeux..
Bonjour,
Excellent tuto, fonctionne très bien. Merci.
Petite erreur dans le nom des variables « $EmailPrincipale » qui se retrouve sans E dans « $UserEmails ».
Bonjour,
La variable $UserEmails doit être une [String], en ajoutant -join ‘,’ ça fait l’affaire :
$UserEmails = @(« SMTP:$EmailPrincipal », »smtp:$EmailSecondaire ») -join ‘,’