Remote Administration Console for Windows Deployment Services

Whenever we deploy a new machine via PXE and WDS, I have to log on to our Sever 2008 R2 WDS server via Remote Desktop to approve the machine.

This is annoying, and as we should all know, logging on to a server should be avoided where ever possible.

However, all of my google-fu is failing me, and I can't find any reference to an MMC console for administering WDS from a remote machine. It's not present in the RSAT modules either.

So, does such a thing exist? I don't like it, but I will settle for extracting the files required to run the console from the original server if needed (something like this, but I don't want to do this unless I totally have to. It's difficult to maintain and a pain to document).

Our client machines are all Windows 7 SP1


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 http://technet.microsoft.com/en-us/sysinternals/bb897553

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.