I monitor the issue everyday because I donāt know when it is going to break again. After having what we thought was a permanent solution, it broke after running smoothly for about three months. We have currently been running without an issue now for about two months.
The problem is that the Bigfix client ID is generated from PDAPI rather than having a static client ID like SCCM. PDAPI seems to be very sensitive to any changes in the Windows OS. Citrix PVS can preserve the machine identity when PDAPI changes. For example, we had a problem with LAPS which was changing PDAPI, but the Citrix PVS identity remained unchanged.
Here is the solution we are using.
Our Citrix PVS team created a persistent drive. We call it the W: drive. The BES Client is installed on the W: drive.
Next we have a shutdown and startup script which saves and then restores the Bigfix registry.
Shutdown Script
shutdown.bat - note that the registry is saved to the W: drive since it is persistent.
Net stop besclient
sc config besclient start=demand
reg export āHKLM\SOFTWARE\WOW6432Node\Bigfixā āw:\Bigfix.regā /Y
Startup Script
Startup.bat
echo %date% %time% bigfix.reg > c:\bigfix\startuplog.txt
reg import āw:\Bigfix.regā
echo %date% %time% BESCLIENT >> c:\bigfix\startuplog.txt
sc config besclient start=auto
echo %date% %time% Before Timeout >> c:\bigfix\startuplog.txt
timeout /T 500 /NOBREAK
echo %date% %time% After Timeout >> c:\bigfix\startuplog.txt
net start besclient