So, why didn't I go with the fancy prestart command? Easiest question ever... The prestart command is great but, as I've said earlier, the environment will tell you what you can and can’t do.
In our case, we needed reboots during the WinPE-phase in order to do the legacy to UEFI conversion and the prestart command is only executed, once, right before the TS is initiated.
One problem we had is that Cisco ISE was too slow to evalutate all the rules, much as the old ISA.
It took so long that the client even tried to start the sequence before it had an IP adress.
The outcome of this is the same as when your boot image is missing network drivers, the client will restart before task sequence is initiated.
For this problem I adapted the script Niall Brady made. I kept the part writing the log and the part checking the HDD but all I wanted to wait for was for the client to get an IP, authenticated or not.
So I did a function for that part and another one that determines how the 802.1x-script is started. The later function depends on the boot type of WinPE. (PXE, Boot media)
The function also identifies if a preboot command exists and, if so, combines it with the command to start the 802.1x-script.
Why start the 802.1x-script in different ways?
When PXE booting, the client will download variables.dat from the server very early on.
We're PXE-booting on the fallback net, which has one IP range and once we're authenticated the client will change its IP from what it had during the PXE phase.
Doing this, too early, will cause the download of variables.dat to fail.
My best guess of why is that the server identifies the client by its IP address.
Have some cleaning up to do but here's the modified checkfornetwork.vbs
Comments