Page 1 of 1 1
Topic Options
#65461 - 2002-05-16 01:36 AM LOGON.BAT (the overkill version)
Sealeopard Offline
KiX Master
*****

Registered: 2001-04-25
Posts: 11164
Loc: Boston, MA, USA
I've created this LOGON.BAT to be as flexible as possible. Thus, it's a little bit big (3KB) but it seems to work well in my network. I haven't been able to test it under Windows XP, though.
This script will take care of those instances where a normal user logs into a Windows 2000/XP computer where KiXtart has not been installed locally. Normally, copying into the %WINDIR% folder requires administrative privileges, so the login script will not be able to do so for a regular user. Additionally, if for whatever reason the KiXtart executable cannot be found in either %WINDIR% or the NETLOGON folder, an error message is displayed and an alert is sent to the Systems Administrator.
Comment and bug reports welcome and encouraged!!
code:
@ECHO OFF
CLS

ECHO Verifying / Updating Script Software Installation

SETLOCAL

REM detect the operating system and go to the appropriate segment

VER | find "NT" > nul
IF not errorlevel 1 GOTO Win_NT

VER | find "2000" > nul
IF not errorlevel 1 GOTO Win_2K

VER | find "XP" > nul
IF not errorlevel 1 GOTO Win_XP

VER | find "98" > nul
IF not errorlevel 1 GOTO Win_98

VER | find "95" > nul
IF not errorlevel 1 GOTO Win_95

VER | find "Millennium" > nul
IF not errorlevel 1 GOTO WIN_ME

GOTO DOS

REM client is running DOS
:DOS
ECHO.
ECHO No Login Script Available For DOS Clients
ECHO.
GOTO End

REM client is running Windows 9x
:Win_95
:Win_98
:Win_ME
%WINDIR%\COMMAND\XCOPY %0\..\KIX32.EXE %WINDIR%\ /D /H /I /R /V /C > NUL
%WINDIR%\COMMAND\XCOPY %0\..\KX*.DLL %WINDIR%\ /D /H /I /R /V /C > NUL
GOTO RunScript

REM client is running Windows NT/2000
:Win_NT
:Win_2K
:Win_XP
ECHO y| XCOPY %0\..\KIX32.EXE %WINDIR%\ /D /H /I /R /V /C > nul
GOTO RunScript

REM client is running Windows XP
REM the DEL command removes any Kixtart file from the %WINDIR%\SYSTEM32 directory
ECHO y| XCOPY %0\..\KIX32.EXE %WINDIR%\ /D /H /I /R /V /C > nul
GOTO RunScriptXP

REM run the logon script for Windows 9x/ME/NT/2K
:RunScript
ECHO.
ECHO Loading Logon Script, Please Wait...
ECHO.

REM check whether Kixtart is installed locally
IF EXIST %WINDIR%\KIX32.EXE GOTO LocalExe
IF EXIST %0\..\KIX32.EXE GOTO RemoteExe
GOTO KixtartError

REM Kixtart is not installed locally
:RemoteExe
%0\..\KIX32.EXE %0\..\LOGIN.KIX
GOTO End

REM Kixtart is installed locally
:LocalExe
%WINDIR%\KIX32.EXE %1 %0\..\LOGIN.KIX
GOTO End

REM run the logon script for Windows 9x/ME/NT/2K
:RunScriptXP
ECHO.
ECHO Loading Logon Script, Please Wait...
ECHO.

REM check whether Kixtart is installed locally
IF EXIST %WINDIR%\KIX32.EXE GOTO LocalExeXP
IF EXIST %0\..\KIX32.EXE GOTO RemoteExeXP
GOTO KixtartError

REM Kixtart is not installed locally
:RemoteExeXP
KIX32.EXE LOGIN.KIX
GOTO End

REM Kixtart is installed locally
:LocalExeXP
%WINDIR%\KIX32.EXE LOGIN.KIX
GOTO End

:End
ECHO.
ECHO.
ECHO Finishing Login...

@ECHO OFF
CLS
EXIT 0

:KixtartError
REM Display an error message and notify the systems Administrator since the user won't be doing it anyway
ECHO.
ECHO Error loading the NMRC-NT logon script
ECHO.
ECHO Please notify the Systems Administrator!
ECHO.
NET SEND REDPOINT "Error loading the NMRC-NT logon script for user "%USERNAME%" on computer "%COMPUTERNAME% >nul
PAUSE
GOTO End



[ 20. January 2003, 21:55: Message edited by: sealeopard ]
_________________________
There are two types of vessels, submarines and targets.

Top
#65462 - 2002-05-16 02:54 AM Re: LOGON.BAT (the overkill version)
Howard Bullock Offline
KiX Supporter
*****

Registered: 2000-09-15
Posts: 5809
Loc: Harrisburg, PA USA
Try this one on...
code:
@ECHO OFF

:: Set environment variables
SET A=CRC:
SET C=Xcopy
SET D=Xcopy ERROR:
SET L=%Temp%\Logon.log
SET C1=CRC32.exe
SET K1=kix32.exe
SET KixPath=%0\..\kix32\402
SET UtilPath=%0\..\utils
SET COPYCMD=/Y
SET CORPRUN=-prd
SET LOCALRUN=-prd
if EXIST %windir%\corp.tst SET CORPRUN=-tst
if EXIST %windir%\local.tst SET LOCALRUN=-tst

echo Start logon script batch file >%L%
echo.

:: Determine OS
IF '%OS%'=='Windows_NT' GOTO WinNT

SET windir=
SET windir=
IF '%windir%'=='' SET OS=DOS
IF '%OS%'=='' IF '%windir%'=='' SET OS=Windows_3.x
IF '%OS%'=='' SET OS=Win9x
IF '%OS%'=='Win9x' GOTO Cont

echo DOS and Windows 3.x are not supported!
pause
goto End

:WinNT
date<nul >>%L%
echo. >>%L%
time<nul >>%L%
echo. >>%L%
echo PROCESSOR_ARCHITECTURE=%PROCESSOR_ARCHITECTURE% >>%L%
IF NOT '%PROCESSOR_ARCHITECTURE%'=='x86' Echo Only x86 Architecture is supported. >>%L%
IF NOT '%PROCESSOR_ARCHITECTURE%'=='x86' GOTO End

:Cont

Set G=%Temp%
IF '%OS%'=='Win9x' Set G=%windir=%

:: Perform CRC check of CRC32.exe, replace file if necessary
echo. >>%L%
set F=%C1%
if NOT EXIST %G%\%C1% %C% %UtilPath%\%F% %G%\ >>%L%
echo %A% %G%\%F% >>%L%
%G%\%C1% -v 40960 17930e8e %G%\%F% >>%L%
if errorlevel 1 echo %A% %C% %UtilPath%\%F% %G%\ >>%L%
if errorlevel 1 %C% %UtilPath%\%F% %G%\ >>%L%
if errorlevel 1 echo %D% %errorlevel% >>%L%
echo. >>%L%

:: Perform CRC check of Kix32.exe, replace file if necessary
set F=%K1%
echo %A% %G%\%F% >>%L%
%G%\%C1% -v 204800 aff4a2b9 %G%\%F% >>%L%
if errorlevel 1 echo %A% %C% %KixPath%\%F% %G%\ >>%L%
if errorlevel 1 %C% %KixPath%\%F% %G%\ >>%L%
if errorlevel 1 echo %D% %errorlevel% >>%L%
echo. >>%L%

IF '%OS%'=='Win9x' GOTO Win9x
goto Exec

:Win9x
SET F=kx16.dll
echo %A% %G%\%F% >>%L%
%G%\%C1% -v 47104 9777a905 %G%\%F% >>%L%
if errorlevel 1 echo %A% %C% %KixPath%\%F% %G%\ >>%L%
if errorlevel 1 %C% %KixPath%\%F% %G%\ >>%L%
if errorlevel 1 echo %D% %errorlevel% >>%L%
echo. >>%L%

SET F=kx32.dll
echo %A% %G%\%F% >>%L%
%G%\%C1% -v 49152 98fb4015 %G%\%F% >>%L%
if errorlevel 1 echo %A% %C% %KixPath%\%F% %G%\ >>%L%
if errorlevel 1 %C% %KixPath%\%F% %G%\ >>%L%
if errorlevel 1 echo %D% %errorlevel% >>%L%
echo. >>%L%

SET F=kx95.dll
echo %A% %G%\%F% >>%L%
%G%\%C1% -v 49152 61cd8e0f %G%\%F% >>%L%
if errorlevel 1 echo %A% %C% %KixPath%\%F% %G%\ >>%L%
if errorlevel 1 %C% %KixPath%\%F% %G%\ >>%L%
if errorlevel 1 echo %D% %errorlevel% >>%L%
echo. >>%L%

:Exec
SET F=Libr%CORPRUN%.kix
echo %A% %G%\%F% >>%L%
%G%\%C1% -v 19692 4d1ac46f %G%\%F% >>%L%
if errorlevel 1 echo %A% %C% %0\..\%F% %G%\ >>%L%
if errorlevel 1 %C% %0\..\%F% %G%\ >>%L%
if errorlevel 1 echo %D% %errorlevel% >>%L%
echo. >>%L%

SET F=Corp%CORPRUN%.kix
echo %A% %G%\%F% >>%L%
%G%\%C1% -v 30728 b673333a %G%\%F% >>%L%
if errorlevel 1 echo %A% %C% %0\..\%F% %G%\ >>%L%
if errorlevel 1 %C% %0\..\%F% %G%\ >>%L%
if errorlevel 1 echo %D% %errorlevel% >>%L%
echo. >>%L%

echo %G%\%K1% %0\..\boot%CORPRUN%.kix $Script=corp $SPath=%G% >>%L%
%G%\%K1% %0\..\boot%CORPRUN%.kix $Script=corp $SPath=%G%

:END
echo End of corp-prd.bat >>%L%
SET A=
SET C=
SET D=
SET F=
SET G=
SET L=
SET C1=
SET K1=
SET KixPath=
SET UtilPath=
SET COPYCMD=
SET CORPRUN=
SET LOCALRUN=



[ 17. August 2003, 20:41: Message edited by: Howard Bullock ]
_________________________
Home page: http://www.kixhelp.com/hb/

Top
#65463 - 2002-09-05 07:47 AM Re: LOGON.BAT (the overkill version)
NTDOC Administrator Offline
Administrator
*****

Registered: 2000-07-28
Posts: 11623
Loc: CA
Dang Howard... LOL

Is that an overkill batch or what. Hehehe have not seen that much overkill since DOS 5.0 days.

Good job though. [Wink]

Top
#65464 - 2002-09-05 11:28 AM Re: LOGON.BAT (the overkill version)
cellnet Offline
Starting to like KiXtart

Registered: 2002-02-26
Posts: 115
Loc: Sweden
IF the users logs on locally, (homeusers)

Forgot the cmd commands is this possible ?

code:
 ; Check logon server

IF %LOGONSERVER% = %COMPUTERNAME%
? "local logon change start string"
nbtstat -RR
path=\\pdc\NETLOGON
@echo off
%systemdrive%\kix32.exe \\pdc\netlogon\start.kix
ENDIF

\erik

Top
#65465 - 2002-09-06 12:31 AM Re: LOGON.BAT (the overkill version)
Howard Bullock Offline
KiX Supporter
*****

Registered: 2000-09-15
Posts: 5809
Loc: Harrisburg, PA USA
Two equal signs: IF '%LOGONSERVER%' == '%COMPUTERNAME%'

The path statement is not correct.
path=%path%;\\pdc\netlogon

You don't want the remote location first in the path or the client will also go the server before looking locally for a file.

How do you expect to have this execute?

[ 05. September 2002, 13:38: Message edited by: Howard Bullock ]
_________________________
Home page: http://www.kixhelp.com/hb/

Top
#65466 - 2002-09-05 01:10 PM Re: LOGON.BAT (the overkill version)
cellnet Offline
Starting to like KiXtart

Registered: 2002-02-26
Posts: 115
Loc: Sweden
if the client logs on localy the logon server is the computername.

I would like to check it, but do not know the syntax.

Office User starting string
code:
 ECHO Starting Login script........
%systemdrive%\kix32.exe start.kix

Homeuser starting string
code:
 %systemdrive%\kix32.exe \\pdc\netlogon\start.kix 

Its executed and working

Today Im using "standalone" cmd file thats requires the User to dubbel click to recive the logon script

Then I got the Idea of separting depending on log on server.

But I dont now if its possible

\€rik

Top
Page 1 of 1 1


Moderator:  Glenn Barnas, NTDOC, Arend_, Jochen, Radimus, Allen, ShaneEP, Ruud van Velsen, Mart 
Hop to:
Shout Box

Who's Online
1 registered (Allen) and 466 anonymous users online.
Newest Members
gespanntleuchten, DaveatAdvanced, Paulo_Alves, UsTaaa, xxJJxx
17864 Registered Users

Generated in 0.052 seconds in which 0.022 seconds were spent on a total of 13 queries. Zlib compression enabled.

Search the board with:
superb Board Search
or try with google:
Google
Web kixtart.org