Just recently, I was getting an error in the pxemsi.log (pxemsi.log.lasterror) while trying to install a ConfigMgr 2007 PXE Service Point (PSP):
DEBUG: Error 2203: Database: C:WindowsInstaller1e0d86.ipi. Cannot open database file. System error –2147287037
MSI (s) (20:FC) [09:46:12:689]: Product: SMS PXE Service Point — Internal Error 2203. C:WindowsInstaller1e0d86.ipi, –2147287037
Internal Error 2203. C:WindowsInstaller1e0d86.ipi, –2147287037
After doing some searching, I found a post that suggested that the system didn’t have access to the user’s Temp directory. Naturally, I found this to be a bit odd, since the Local System account typically has access to anything and everything, so I validated the permissions on my user %TEMP% folder. Sure enough, the Local System had permission to this folder.
Gary Chang from Microsoft had the following to say:
This problem is usually caused by the system’s Windows Installer service cannot access its installation database, such as the ACLs on the current user’s %temp% folder that do not give NT AUTHORITYSystem full access to the folder.
Later on, I remembered that I had cleaned up a random folder named “temp” sitting on the D: drive of the server. I dislike clutter, so since the folder was empty, I removed it, not realizing that someone had changed the system environment variables “TEMP” and “TMP” to point to D:Temp!
Once this had come to mind, I switched the “TEMP” and “TMP” environment variables to point to c:windowstemp instead. After restarting the server, the change took effect, and the PXE Service Point role could successfully install!
As a result of situations like this one, it is recommended that you give very careful thought to customizing application and operating system configurations, such as the location of the operating system’s “Temp” folder. In very many instances, it is a better idea to leave configurations at their defaults. This facilitates the work of individuals who are new a given environment, and allows them to get up to speed much more quickly.