Vérifier simplement la version Exchange Server appliquée au schéma Active Directory

Envoyer

La méthode pour identifier que votre schéma Active Directory a fait l'objet d'une mise à jour pour le support de Microsoft Exchange Server consiste à vérifier la présence de l'objet « ms-Exch-Schema-Version-Pt »  au sein de la partition de schéma. Ensuite, il faudra récupérer la valeur de l'attribut « rangeUpper » pour identifier le numéro de version.

Pour cela, le plus simple est d'utiliser la commande suivante: dsquery * "cn=ms-Exch-Schema-Version-Pt,cn=schema,cn=configuration,<DC=VOTRE-DOMAINE-RACINE> -attr rangeUpper"

 

Une fois la valeur de l'attribut « rangeUpper » récupérée, il suffit de la comparer avec le tableau suivant :

Schema

Version
Exchange Server 2000 4397
Exchange Server 2000 SP3 4406
Exchange Server 2003 6870
Exchange Server 2003 SP3 6936
Exchange Server 2007 10628
Exchange Server 2007 10628
Exchange Server 2007 SP1 11116
Exchange Server 2007 SP2 or Exchange Server 2010 14622
Exchange Server 2010 SP1 14726
Exchange Server 2010 SP2 14732
Exchange Server 2013 15137

 

Nous avons également développé le petit script PowerShell ci-dessous permettant de réaliser toutes les opérations de manière automatique.

 

# table de hachage contenant les versions du schéma Exchange Server
$script:SchemaHashExchange = @{
 4397="Exchange Server 2000";
 4406="Exchange Server 2000 SP3";
 6870="Exchange Server 2003";
 6936="Exchange Server 2003 SP3";
 10628="Exchange Server 2007";
 10637="Exchange Server 2007";
 11116="Exchange Server 2007 SP1";
 14622="Exchange Server 2007 SP2 or Exchange Server 2010";
 14726="Exchange Server 2010 SP1";
 14732="Exchange Server 2010 SP2";
 15137="Exchange Server 2013"
}

# Connection a la foret
$Forest = [System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest()

Write-Host "Version Exchange Server appliquée au schéma AD: " -NoNewline

# Recupere l'objet "ms-Exch-Schema-Version-Pt"
try
{
 $ExchangeVersion = "LDAP://CN=ms-Exch-Schema-Version-Pt,"+$Forest.Schema.GetDirectoryEntry().distinguishedName
 
 # Recupere le numéro de version (attribut 'rangeUpper')
 if ( $script:SchemaHashExchange.ContainsKey($(([ADSI] $ExchangeVersion).rangeUpper)) )
 {
 # Affiche le nom de la version associée au numéro de version
 Write-Host -ForegroundColor Green -Object $script:SchemaHashExchange[$(([ADSI] $ExchangeVersion).rangeUpper)]
 }
 else
 {
 # Traitement spécifique si le numéro de version n'existe pas dans la table de hachage
 Write-Host -ForegroundColor Yellow "Inconnue"
 }
}
# Passe dans le catch si l'objet n'existe pas
catch
{
 Write-Host -ForegroundColor Red "introuvable"
}

Mise à jour le Mardi, 08 Janvier 2013 15:41