If you want to build a dc, dcpromo creates and uses a scripted unattended file.http://technet.microsoft.com/en-us/library/cc732887.aspx
You could easily use an exec resource to run dcpromo. Use an unless param script to see if target is a dc already.
Dhcp shouldn't be colo on a dc, but you could add roles with dism module and leverage powershell module to do anything you want. In 2012 dcpromo is powershell...
HTH,
Rich