Microsoft a publié un correctif non cumulatif (KB4490434) à destination de System Center Configuration Manager 1810. Ce second correctif résout un problème concernant la découverte des utilisateurs où on peut observer la création de colonnes dupliquées dans la table User_DISC.
Dans ce cas de figure, les fonctionnalités qui utilisent les données de la découverte Active Directory des utilisateurs (collections, requêtes, déploiements) peuvent retourner des résultats incorrects ou incomplets. Ce scénario survient :
- Lors de la mise à niveau vers la version 1810
- Si des attributs additionnels sont collectés par la découverte des utilisateurs Active Directory
- Une différence existe entre la casse actuellement spécifiée de l'attribut et la casse précédemment saisi pour l'attribut.
Par exemple, cela survient si vous ajoutez manuellement l'attribut "Description" dans la console, que vous le supprimez, puis que vous l’ajoutez à nouveau au format minuscule.
Vous pouvez potentiellement voir des problèmes dans le fichier SMS_Message_Processing_Engine.log puisque les colonnes sont continuellement ajoutées tant que le problème n’est pas corrigé :
Undefined or max length increased discovery property: description~~
Updating discovery schema for architecture User with 1 undefined discovery properties~~
Created column generation xml for global table. <COLUMN NAME="description675" TYPENAME="NVARCHAR" MAX_LENGTH="32" />~~
Created table begin xml for global table. <TABLE NAME="User_DISC">~~
Created table end xml for global table. </TABLE>~~
ERROR: Sql exception when handle schema change. System.Data.SqlClient.SqlException (0x80131904): A .NET Framework error occurred during execution of user-defined routine or aggregate "spModifyGlobalTable": ~~System.Data.SqlClient.SqlException: Request submitted with too many parameters. The maximum number is 2100.~~
Pour savoir si vous êtes affecté par le problème, vous pouvez utiliser la commande SQL suivant :
-- Get extended AD attributes for all sites if AD user discovery is enabled
DECLARE ADAttributeCursor CURSOR LOCAL FOR SELECT scpl.Value FROM SC_Component sc
INNER JOIN SC_Component_Property scp ON sc.ID = scp.ComponentID
INNER JOIN SC_Component_PropertyList scpl ON sc.ID = scpl.ComponentID
WHERE ComponentName = 'SMS_AD_USER_DISCOVERY_AGENT' AND scp.Name = 'SETTINGS' AND Value1 = 'ACTIVE' AND scpl.Name = 'AD Attributes'
DECLARE @ADAttributes TABLE (Attribute NVARCHAR(MAX))
DECLARE @ADAttributesXML XML
OPEN ADAttributeCursor;
FETCH NEXT FROM ADAttributeCursor INTO @ADAttributesXML;
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO @ADAttributes SELECT T.c.value('.', 'NVARCHAR(MAX)') AS ADAttribute FROM @ADAttributesXML.nodes('/PropList/Value') T(c)
FETCH NEXT FROM ADAttributeCursor INTO @ADAttributesXML;
END
CLOSE ADAttributeCursor;
DEALLOCATE ADAttributeCursor;
-- Compare with User Discovery Schema to find out if all extended AD attributes are defined there and have case sensitive name difference
SELECT aa.Attribute AS ProposedAttribute, dpd.PropertyName AS ActualAttribute FROM (SELECT DISTINCT Attribute FROM @ADAttributes) aa
INNER JOIN DiscPropertyDefs dpd ON aa.Attribute = dpd.PropertyName AND dpd.DiscArchKey = 4
WHERE aa.Attribute <> dpd.PropertyName COLLATE SQL_Latin1_General_CP1_CS_AS
Si ce problème survient, vous devez :
- Désactiver la découverte d’utilisateurs Active Directory
- Contacter le support Microsoft pour corriger les problèmes de données dans votre environnement.
L’installation du correctif ne résout pas le problème mais empêche simplement que celui-ci survienne.
L’installation doit se faire depuis la console d’administration dans la partie Updates and Servicing. Notez qu’il n’est pas nécessaire d’installer le correctif cumulatif (4486457) précédemment publié
Note : Il n'y a pas d'ordre pour installer l'un des deux correctifs.