[SFB Online] Gérer les domaines fédérés en powershell

L’on me l’a souvent dit, mais j’avais du mal à le croire. Si les domaines fédérés dans une configuration Skype Hybrid ne sont pas identiques. La fédération peut ne pas marcher du tout.

Pour moi le seul risque de ne pas avoir une configuration identique c’est que lors de migration d’un utilisateur l’expérience utilisateur soit dégradé. Mais non, il y a un vrai risque, je ne sais pas expliquer pourquoi, mais il est là.

Voilà pourquoi mon client m’a demandé :

Alban, peux-tu nous faire un script qui prendre la configuration des domaines fédérés Onprem est qui s’assure que celle-ci soit identique Online, et si ce n’est pas le cas corrige.

Ayant fait ce script pour l’un de mes clients je ne peux pas vous le copier tel quel, mais je vais m’attarder sur la partie complexe.

Dans Office 365 pour ajouter un domaine fédéré il faut utiliser les commandes suivantes :


$x = New-CsEdgeDomainPattern -Domain $domain

$newAllowList = New-CsEdgeAllowList -AllowedDomain $x

Set-CsTenantFederationConfiguration -AllowedDomains $newAllowList

Le problème de cette commande c’est que si vous aviez déjà des domaines, ces derniers sont perdus.


Pour éviter cela, j’ai donc utilisé les commandes suivantes :

$x = New-CsEdgeDomainPattern -Domain $domain

$domains=(get-CsTenantFederationConfiguration).AllowedDomains.AllowedDomain

$domains += $x

$newAllowList = New-CsEdgeAllowList -AllowedDomain $domains

Set-CsTenantFederationConfiguration -AllowedDomains $newAllowList

Avec cette technique au moins vous êtes certain de ne pas perdre les domaines déjà ajoutés.

Pour vous aider dans la réalisation de votre script, voici quelques commandes que j’utilise :

Pour récupérer les domaines fédérés Onprem


$CSAllowDomain = (Get-CsAllowedDomain).domain

Pour récupérer les domaines fédérés Online


$CSOnlineAllowDomain = (Get-CsTenantFederationConfiguration).AllowedDomains.AllowedDomain.domain

Pour récuperer la liste des domaines manquant


$DomainesMissing= Compare-Object -ReferenceObject $CSAllowDomain -DifferenceObject $CSOnlineAllowDomain -PassThru

Et ensuite, une petite boucle et le tour est joué :


foreach ($domain in $DomainesMissing){

if ($CsAllowedDomain -contains $domain) {

#alors j’ajoute

}

else {

#alors je supprime

}

 

Photo by Tirza van Dijk on Unsplash