Après une réinstallation d'un site primaire, avec une base de données déportée, il peut arriver que l'installation échoue lors de la compilation de certains fichiers MOF. Dans le fichier ConfigMgrSetup.log on trouve la ligne suivante :

CompileMOFFile: Failed to compile MOF C:\Program Files\Microsoft Configuration Manager\bin\i386\smsRprt.mof, error -1

Ce message provient de problèmes de SPN sur le serveur SQL hébergeant la base de données. Il est caractérisé par des erreurs Kerberos d'ID 3 dans les journaux d'événements System : KDC_ERR_S_PRINCIPAL_UNKNOWN, KRB_AP_ERR_MODIFIED, KDC_ERR_BADOPTION sur les serveurs SCCM et SQL. Le contrôleur de domaine peut aussi logger des erreurs "Duplicate SPN";

Cela arrive quand le service de l'instance SQL hébergeant la base de données a été démarré avec le compte Local System puis avec un compte de domaine: le service va enregistrer un SPN dans l'Active Directory pour chaque compte.

Voici une commande à exécuter sur le contrôleur de domaine pour récupérer les SPNs en double pour notre serveur SQL :

ldifde -f C:\SPN.txt -d dc=contoso,dc=test -l serviceprincipalname -r (serviceprincipalname=*SQL*) -p subtree

On trouvera dans le fichier C:\SPN.txt les SPNs enregistrés plusieurs fois pour le service SQL :

MSSQLSvc/Serveur_SQL.Contoso.test:port_de_l’instance_SQL

  • Pour le compte de service : dn: CN=Nom_compte_de_service,OU=ou1,OU=ou2,DC=contoso,DC=local
  • Pour le compte machine : · dn: CN=Serveur_SQL,OU=ou3,OU=ou4,DC=contoso,DC=local

Il est donc nécessaire de supprimer les SPN en double. On peut dans notre cas supprimer celui utilisé par le compte de service en utilisant l'outil setSPN présent dans les support tools Windows 2003.