Generally I found the provider order does not prevent the script from running. It still runs, just doesn't run right.

code:
 ;;;;;;;;;;;;;;;;;;; Check the provider Order (for using INGROUP) ;;;;;;;;;;;;;;;;;;;
:NPORDER

$MS = ReadValue("HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSNP32\NetworkProvider", "CallOrder")
$NW = ReadValue("HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NOVELLNP\NetworkProvider", "CallOrder")

if ($MS = "00000040") AND ($NW = "00000020")
$MS = WriteValue("HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSNP32\NetworkProvider", "CallOrder", "00000020", "REG_BINARY")
$NW = WriteValue("HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NOVELLNP\NetworkProvider", "CallOrder", "00000040", "REG_BINARY")
;; Reboot the PC??
RUN "Rundll32.exe shell.dll,RestartDialog"
ENDIF

_________________________
Give a man a fish and he will be back for more. Slap him with a fish and he will go away forever.