Lors de la réinstallation d’un ordinateur qui est déjà présent dans Configuration Manager 2007, vous vous retrouvez régulièrement avec des enregistrements en double, un client actif et l’autre obsolète.
Vous pouvez bien entendu activer le nettoyage intégré à SCCM en suppriment ces enregistrement régulièrement, mais vous perdrez l’historique mais aussi l’affectation à des regroupements par adhésion directe.
Pour contourner le problème, il existe une solution relié sur le site CCMEXEC.com permettant de fusionner les enregistrements.
Pour cela il vous faudra disposer d’un script vbs :
[pastacode lang= »javascript » message= » » highlight= » » provider= »manual »]
Dim swbemLocator
Dim swbemServices
Main()
Sub Main()
Dim oProviderLocation
Dim oLocation
Dim oReg
Dim oPendingRegs
Set swbemLocator = CreateObject("WbemScripting.SWbemLocator")
swbemLocator.Security_.AuthenticationLevel = 6 'Packet Privacy.
Set swbemServices = swbemLocator.ConnectServer(".", "root\SMS")
Set oProviderLocation = swbemServices.InstancesOf("SMS_ProviderLocation")
For Each oLocation In oProviderLocation
If oLocation.ProviderForLocalSite = True Then
Set swbemServices = swbemLocator.ConnectServer(oLocation.Machine, "root\sms\site_" + oLocation.SiteCode)
End If
Next
Set oPendingRegs = swbemServices.ExecQuery("SELECT * FROM SMS_PendingRegistrationRecord")
For Each oReg In oPendingRegs
Resolve 1, oReg.SMSID
Next
End Sub
Sub Resolve(action, SMSID)
Dim InParams
Set InParams = swbemServices.Get("SMS_PendingRegistrationRecord").Methods_("ResolvePendingRegistrationRecord").InParameters.SpawnInstance_
InParams.Action = action
InParams.SMSID = SMSID
swbemServices.ExecMethod "SMS_PendingRegistrationRecord","ResolvePendingRegistrationRecord", InParams
End Sub
[/pastacode]
Ici on l’appellera merge.vbs et il vous faudra le copier dans un répertoire de votre serveur SCCM. Exemple : e:\sccmtools
Pour l’exécuter, nous nous servirons des filtres d’état de SCCM.
Mais avant nous devons modifier les paramètres du site en cochant sous l’onglet Avanced l’option « Manually resolve conflicting records »
Créons ensuite une nouvelle règle de filtre d’état avec somme composant SMS_DISCOVERY_DATA_MANAGER et comme ID du Message : 2642
Indiquons ensuite le programme qui doit être exécuté lorsque cette ID est découvert.
Si vous avez des problèmes d’exécution utilisez le chemin complet (c:\windows\syswow64\cscript.exe e:\sccmtools\merge.vbs)
Et voilà, vous n’aurez plus d’enregistrement obsolète ni de problème lors d’adhésion direct avant un formatage.
Lien vers l’article original : ICI