Question: What is the most efficient way do delay (or pause) the cold start-up of Windows domain member servers until a domain server is available?
[There are ways to delay the start-up of a server](https://windowshell.wordpress.com/2010/07/06/need-a-startupboot-delay-for-your-windows-server/) , but it is a bit inefficient, because there is no real need to delay the start-up if a domain controller is already available, but if a domain controller is not available it has a big impact on services that depend on the availability of a domain controller (most services fail to start if it depends on an unavailable domain controller and has to be started manually once the domain server is up an running).

Answer: 
The easiest solution would be to activate [WOL](https://en.wikipedia.org/wiki/Wake-on-LAN) and run a startup script on the domain controller that sends the [WOL](https://en.wikipedia.org/wiki/Wake-on-LAN) magic packet to the other servers.

You would have to configure the BIOS/UEFI of the servers to

1. power up all domain controllers after a power failure when the power is restored, and
2. to keep all other servers powered off after a power failure, and
3. activate [WOL](https://en.wikipedia.org/wiki/Wake-on-LAN).
Neat question. I just want to add an alternative for what it's worth. Daniel's question is fine; this is just my 2 cents.

This solution is highly-dependent on your hardware platform, (technically WOL is dependent on your hardware as well, but WOL is very widely implemented,) but let's just take HP servers as an example. HP servers typically have out-of-band management subsystems called ILOs (Integrated Lights-Out.) This subsystem should be automatically "On" as long as the server has power.

On your DC, you could attach a task to an event logged by the DC that indicates its "readiness," or you could perform some sort of manual health check in your script, such as by trying to bind to TCP ports 88, 389, etc. Once your script has determined that AD is healthy, you can use the HP ILO Powershell cmdlets to remotely power on the server like so:

```
Set-HPiLOHostPower -Server $MyServer `
                   -Username $IloUser `
                   -Password $IloPassword`
                   -HostPower "Yes"

```