setconsole("hide") hides the console output window. We've had problems with people cancelling the logon script in the past, so I just hide the window from the users.

The messagebox I use to display a popup window to the user letting them know that they are being logged on

For keeping the versions of Kix current on the machine, you might try:

______________________________________
IF EXIST ("C:\KIX32\KIX32.EXE")
$CurrentVersion = GETFILEVERSION ("C:\KIX32\KIX32.EXE")
$ServerVersion = GETFILEVERSION ("@LSERVER\NETLOGON\KIX32.EXE")
IF $ServerVersion > $CurrentVersion
IF @INWIN = 1 ; REM ** WIndows NT
COPY "@LSERVER\NETLOGON\KIX32.EXE" "C:\KIX32\KIX32.EXE"
AT (4,0) "Updating KIX32 Files on NT-client computer"
IF EXIST "C:\KIX32\KX16.DLL" ; REM ** Not needed in NT
DEL "C:\KIX32\KX16.DLL"
ENDIF
IF EXIST "C:\KIX32\KX32.DLL" ; REM ** Not needed in NT
DEL "C:\KIX32\KX32.DLL"
ENDIF
IF EXIST "C:\KIX32\KX95.DLL" ; REM ** Not needed in NT
DEL "C:\KIX32\KX95.DLL"
ENDIF
IF EXIST "C:\KIX32\KXRPC.EXE" ; REM ** Not needed on local client
DEL "C:\KIX32\KXRPC.EXE"
ENDIF
ELSE ; REM ** Win 95
AT (4,0) "Updating KIX32 Files on W9x-client computer"
COPY "@LSERVER\NETLOGON\KIX32.EXE" "C:\KIX32\KIX32.EXE"
COPY "@LSERVER\NETLOGON\KX16.DLL" "C:\KIX32\KX16.DLL"
COPY "@LSERVER\NETLOGON\KX32.DLL" "C:\KIX32\KX32.DLL"
COPY "@LSERVER\NETLOGON\KX95.DLL" "C:\KIX32\KX95.DLL"
IF EXIST "C:\KIX32\KXRPC.EXE" ; REM ** Not needed on local client
DEL "C:\KIX32\KXRPC.EXE"
ENDIF
ENDIF
ENDIF
___________________________________________

This is a little snippet that I took from: http://kixtart.org/cgi-bin/ultimatebb.cgi?ubb=get_topic&f=1&t=002030

It check to see if the file is there, then compares versions and copies the newer one if it has too. I guess it assumes that the kixtart executable is in a Kix32 folder on the C: drive, although I copy mine into the system folder for win9x and the system 32 folder for NT.