sccm2007

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 :

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

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 »

MergeRecords2

Créons ensuite une nouvelle règle de filtre d’état avec somme composant SMS_DISCOVERY_DATA_MANAGER et comme ID du Message : 2642

MergeRecords
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)

 

MergeRecords3
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