Disclaimer: This is what worked in my environment. It may not work in yours. Run at your own risk. I am not responsible for any issues it may cause. Modifying the database is not supported by Microsoft.
This was a strange issue which caused me a massive headache. I was unable to successfully PXE image any machine at my site. When trying to image, it would get the abortpxe message and not pick up the advertised Task Sequence.
In my environment, I do not have Unknown Computer support enabled. I have a collection and task sequences deployed to the collection as Required.
I could not clear the PXE flag on the machine in SCCM 2012 because the machine had not run the advertisement.
I confirmed the machines had a task sequence deployed to it. I tried different computers with different MAC addresses but it was the same issue.
I checked out smspxe.log on the site server and it said:
There are no task sequences available to this computer.. Please ensure you have at least one task sequence advertised to this computer.
Unspecified error (Error: 80004005; Source: Windows) TSPxe 7/04/2015 2:14:26 PM 872 (0x0368)
Again, I confirmed that the machines did in fact have a task sequence deployed to it as required. The machine was not picking up the policy from the management server. After a lot of research, I found there was a SQL query I could run on the site database which could find a Null entry (if it exists), which was blocking the machines from getting the policy. The query to run was:
SELECT * FROM ResPolicyMap WHERE machineid = 0 and PADBID IN (SELECT PADBID FROM PolicyAssignment WHERE BodyHash IS NULL)
This returned a null entry. To remove it:
Delete FROM ResPolicyMap WHERE machineid = 0 and PADBID IN (SELECT PADBID FROM PolicyAssignment WHERE BodyHash IS NULL)
After this was removed, I restarted my Management Point I could now image again. What a lifesaver this script was!