This was an issue that I came across from our recent upgrade from SMS 2003 to SCCM 2007. While we were still using SMS, some systems had been cloned/p2v’d from a production system to a virtual then renamed. It wasn’t caught at the time, but it appears SMS may have been unable to automatically give the cloned SMS clients a new GUID. When we migrated to SCCM, these clients were fighting over which of them was the real and live system in SCCM, such that some client records would suddenly disapper from the console…then if they’re client was fixed, a different client record would disappear.
However, simply uninstalling/reinstalling the SCCM client was not resolving the issue. After some digging around, I found a couple of utilities to help rip out the SCCM client and force a new GUID to be assigned. I brought these utilities together and created a simple executable to coordinate the process. This was created with the old, but very reliable, SMS Installer, the code below is for that, but can easily be rebuilt as a vbscript.
If you have any questions about this process, feel free to leave me a comment and I can respond!
- On your computer, download and install the SMS 2003 Toolkit v2
- In the directory containing your SCCM client install, create a subdirectory (such as “SOURCE”)
- From the Toolkit directory, copy ccmdelcert.exe and tranguid.exe to the newly created subdirectory in previous step
- In the SCCM client install directory, create an executable or script that does the following in order
- Execute ccmdelcert.exe (wait for process termination)
- Delete the file %WINDIR%\SMSCFG.ini
- Execute ccmsetup.exe /uninstall (wait for process termination)
- Delete directory %WINDIR%\system32\ccm\
- Delete registry key HKLM\SOFTWARE\Microsoft\CCMSetup
- Delete registry key HKLM\SOFTWARE\Microsoft\SMS
- Execute ccmsetup.exe (wait for process termination)
Below is the ‘code’ for the SMS Installer executable that I built to facilitate this.
Document Type: IPF item: Global Version=6.0 Title English=Duplicate SCCM GUID Repair Flags=00000100 Languages=0 0 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 LanguagesList=English Default Language=2 Copy Default=1 Japanese Font Size=9 Start Gradient=0 0 255 End Gradient=0 0 0 Windows Flags=00000100000000010010110000011000 Message Font=MS Sans Serif Font Size=8 Disk Filename=SETUP Patch Flags=0000000000000001 Patch Threshold=85 Patch Memory=4000 FTP Cluster Size=20 end item: Check Disk Space end item: Set Variable Variable=ROOT Value=C: end item: Get Environment Variable Variable=WINDIR Environment=WINDIR end item: Execute Program Pathname=%INST%\SOURCE\ccmdelcert.exe Flags=00000010 end item: Delete File Pathname=%WINDIR%\SMSCFG.ini end item: Execute Program Pathname=%INST%\CCMSETUP.exe Command Line=/uninstall Flags=00000010 end item: Insert Line into Text File Pathname=%WINDIR%\system32\ccm\temp.txt New Text=TEMP Line Number=0 Flags=00010000 end item: Delete File Pathname=%WINDIR%\system32\ccm\temp.txt Flags=00001100 end item: Insert Line into Text File Pathname=%WINDIR%\system32\ccmsetup\temp.txt New Text=TEMP Line Number=0 Flags=00010000 end item: Delete File Pathname=%WINDIR%\system32\ccmsetup\temp.txt Flags=00001100 end item: Edit Registry Total Keys=1 Key=SOFTWARE\Microsoft\CCMSetup Root=130 end item: Edit Registry Total Keys=1 Key=SOFTWARE\Microsoft\SMS Root=130 end item: Execute Program Pathname=%INST%\CCMSETUP.exe Flags=00000010 end


#1 by Dominique on January 19, 2010 - 10:45 am
Hello,
I have this error during the upgrade to SP2. I have 283 Confligting Records are they the same GUIDs seen as duplicate during the upgrade?
Thanks,
Dom
#2 by Nicolas Moseley on January 19, 2010 - 10:51 am
Dom,
It is better to ask troubleshooting questions on either MyITForum or the Microsoft Forums.
Nick
#3 by Tom Miller on May 13, 2010 - 9:32 am
Regarding “Execute ccmsetup.exe /uninstall” when I run this as a Windows startup script via GPO the uninstall never runs, or never completes. I don’t know if that’s due to the script timing out but I was wondering if I should just instead terminate the process if it exists, delete the folders and registry keys you have listed above?
#4 by Nicolas Moseley on May 13, 2010 - 9:39 am
Tom – It could be that the script doesn’t have complete access to uninstall the client or that the client services cannot be stopped for some reason. Update your script (or SMS Installer) to write to a custom log file that will write the time before starting the uninstall and write the time when ccmsetup has terminated. Start there and let me know what you get.
#5 by Neil on August 31, 2011 - 5:11 pm
Hi, I was using SMS 2003, and then got rid of it and got SCCM 2007. I found out about 35 pc’s have the same guid do to Ghost imaging. They display duplicates guids. or the the client will not install. As for your instructions
Do I create a sub directory SOURCE on each pc that I need to fix and place those files in there?
#6 by Nicolas Moseley on August 31, 2011 - 6:05 pm
Neil, first welcome to using SCCM 2007! Now just to give Ghost the long wave goodbye and say hello to OSD ;-)
To answer your question, SOURCE is not necessary on each PC. It is simply a subfolder where are the necessary executables are stored so as to keep you server’s SCCM client install directory clean looking. Plus the IPF code that I wrote specifically looks for the executables in that location. Anyhow, if you do not know what an SMS Installer IPF (source file) is for building executables, then you’ll need the good ‘ol SMS Installer program, which you can find in my “Useful Utilities” on the left menu bar thing.