Remote Administration Console for Windows Deployment Services

Solution 1:

You can't (officially) install the snap-in on a non-WDS server, as far as I know (terrible, right?). You could always pre-stage the computer accounts so that you don't have to approve them.

If that's the route you want to go, there's an excellent PowerShell script written by yours truly right here. :)

# V3.0
# Changes:
#    No longer relies on Quest AD Snap in
#    No longer uses the kludgey Test-XADObject to validate the existence of computers in AD
import-module activedirectory
import-csv "list.csv" | foreach-object{ #imports CSV containing Name and MAC headings
    $name = $_.Name
    $MAC = $_.Mac  
    $CheckExists = get-adobject -Filter {(ObjectClass -eq "computer") -and (Name -eq $name)}  #Will be $NULL if this is a new computer
    if ($CheckExists -eq $NULL){
        [guid]$nbGUID = "00000000-0000-0000-0000-$MAC"  #casts 0s + MAC into a GUID, which is required for the netbootGUID property
        new-adcomputer -Name $name -SamAccountName $name -OtherAttributes @{'netbootGUID'=$nbGUID}        
        write-host $name " - " $nbGUID
      else {
        write-host "$name already exists."

Solution 2:

Manual approval is the best way to get the computers named properly without having to do prestaging (which is not always possible/feasible if the systems don't all have their GUID or MAC written on the case). It's a shame there is no way to have it prompt for the machine name when you choose an image to install.

You can use psexec and optionally a small cmd script to approve new computers from your client sytem:

Download psexec from

Save this as approve.cmd:

@echo off
REM Approve WDS pending computers

set wdshost=my-wds-server
set /p requestid="Request ID: "
set /p machinename="Machine Name: "

psexec -i -s \\%wdshost% wdsutil /Approve-AutoAddDevices /RequestID:%requestid% /MachineName:%machinename%

Replace my-wds-server with the name of your WDS server. When you run approve.cmd you'll be prompted for the request ID (shown on the screen of the pending computer) and the machine name to give it.

Depending on your environment you may need to add "-u administrator" to the psexec command to have it run as administrator and prompt for a password. The "-i" and "-s" parameters are needed for wdsutil. It returns errors without them.