I have had a few issues with the WDS service not starting on some of my distribution points.
One server was easily fixed by checking and fixing the permissions for the SYSTEM account for the C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18 folder.
It needed to have Full Permissions to start. For some reason the permission was removed which caused the service to fail each time I started to fix it.
Another time I had this issue, it turned out to be a corrupt SQL computer account in the SCCM SQL database.
Each time I tried to start the WDS service under the System Account it would generate Failure Audit alerts in the Application Log:
Event Type: Failure Audit
Event Source: MSSQLSERVER
Event Category: (4)
Event ID: 18456
Time: 1:00:00 PM
Login failed for user ‘Domain\ComputerAccount$’. [CLIENT: x.x.x.x]
I removed the login for ComputerAccount$ from the SQL Management Studio and re-created it with the same permissions and the WDS service can now start.
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!