SCCM 2012 and Citrix Provisioning Services
When using SCCM together with an imaging solution such as Citrix provisioning server, care must be taken regarding the SCCM agent unique ID information. This information is normally stored in the C:\windows\SMSCFG.INI file. The problem is that this file will be the same in every pooled instance and therefore causing duplicate resources within SCCM or re-registrations of the SCCM agent. In the past, the problem was solved using a computer startup and shutdown script that copied this ini file to a persistent location and back, and as such preserving the unique ID of each machine.
When ConfigMgr 2012 was released, Microsoft built in some generic WMI namespace in which different vendors could populate certain fields in order to tell the SCCM Agent which location to use for storing it’s persistent configuration. When the SCCM agent is starting it detects it is running on a non-persistent machine and used WMI to determine the location of the Citrix Identity Store (in order for this to work, PVS write flush should be set to Device Hard Disk).
When SCCM determines the location of the persistent drive (ex. D:\ ) it restores its unique information from this location.
There is no documentation from Citrix regarding this configuration other than that it should just work. However we have found that some additional steps are needed in order to make this work:
- When finishing the “master” image, prior to shutdown. Stop the CCMEXEC service. (or SMS Agent Host)
- Delete the C:\Windows\SMSCFG.INI file
- Delete the current certificates in the “SMS” certificate store.
- Close the master imageWhen the image is next booted using PVS standard mode, the SCCM agent will create a new SMSCFG.INI file based on the contents of the Citrix Identity Store and will create new certificates to be used for communication with the configmgr management points. The agent will now use the existing resource records within ConfigMgr instead of creating a new resource.