Comment ============================================================= SERVSYNC.MNU Copyright 1999 by Marc Perkel Sets workstation and server clocks. ============================================================= EndComment ;#Define Shareware var SetServer SetWorkstation ServerTime TestY2K NovSync Main ;========================== PROCEDURES ========================== Procedure Help Writeln 'Computer Tyme ServSync * Copyright 1999-2000 by Marc Perkel' Writeln 'All Rights Reserved * Version 1.1 * Release Date: 01-02-00' Include 'ADDRESS.INC' Writeln 'This utility can be used to set the workstation clock from' Writeln 'the server, or set the server clock from the workstation.' Writeln 'Setting server time requires Console Operator rights." Writeln Writeln 'USAGE: SERVSYNC /S /W Writeln Writeln ' /S = Sets server time from the workstation.' Writeln ' /W = Sets workstation time from the server.' Writeln ' /Y = Run Y2K Test on Server.' Writeln ' /N = Write string to NovSync Device Driver.' Writeln Pause Writeln 'NovSync Control Codes are:' Writeln ' 0 - network time synchronization off' Writeln ' 1 - network time synchronization on (default)' Writeln ' 2 - reboot on disconnect off (default)' Writeln ' 3 - reboot on disconnect on' Writeln ' 4 - prevent time change off (default)' Writeln ' 5 - prevent time change on' Writeln Writeln 'If Server and Workstation are not within 2 seconds of' Writeln 'each other, an errorlevel 255 is returned.' Writeln Writeln 'Program comes free with NOVSYNC.SYS which is not free.' Writeln 'ServSync is $95 stand alone. Writeln 'Comes free with the Network Survival Kit.' ExitMenu EndProc Procedure Pause var Ch if OutputRedirected then Return Write 'Press and Key ... ' Ch = ReadKey Write CR ' ' CR EndProc Procedure Setup StandardIO ExitCode = 0 SetServer = OptionSwitch(CmdLine,'S') SetWorkStation = OptionSwitch(CmdLine,'W') TestY2K = OptionSwitch(CmdLine,'Y') NovSync = OptionSwitch(CmdLine,'N') if not (SetServer or SetWorkStation or TestY2K or NovSync) then Help EndProc Procedure Close ServerTime = NovServerTime Return Abs(Now - ServerTime) < 5 EndProc Procedure DateTime (T) Return DateString(T) + ' ' + TimeString(T) EndProc Procedure ShowTime Writeln Writeln ' Server Time: ' DateTime(NovServerTime) Writeln ' WorkStation Time: ' DateTime(Now) Writeln EndProc Procedure WriteNovSync (St) var A if ExistFile 'NOVSYNC$' OutFile = 'NOVSYNC$' StandardIO Writeln St OutFile = '' StandardIO endif EndProc Procedure Y2KTest; var T Writeln Writeln 'This tests the server to see if it can be set to the' Writeln 'year 2000. Some Netware servers fail this test. If your' Writeln 'server fails, you had better get it fixed before the end' Writeln 'of 1999.' Writeln Writeln 'Beginning Test for server: ' NovDefaultServer Writeln Writeln ' Setting Workstation Clock to Match Server ... Now = NovServerTime Writeln ' Setting Server Clock Back One Day ... NovServerTime = Now - SecondsInDay ShowTime if Abs(Now - NovServerTime - SecondsInDay) > 8 Writeln Writeln 'Inconclusive!' Writeln 'Server failed to change time. You may not have enough' Writeln 'rights to run this program.' NovServerTime = Now else Writeln ' Time Change Succeeded - You have enough rights to test.' Writeln Write ' Now setting server to 12-31-99 23:59:55 ... ' NovServerTime = TimeOf('12-31-99 23:59:55') Writeln Write ' Waiting 60 seconds ... Wait 6000 Writeln ShowTime if Abs(NovServerTime - TimeOf('01-01-00')) > 90 Writeln 'Failed! Your server is not Y2K ready!' ExitCode = 255 else Writeln 'Success! Your Server appears to be Y2K ready!' endif Write 'Resetting Server Time ... ' NovServerTime = Now Writeln endif Writeln ExitMenu EndProc Procedure Main Setup if TestY2K then Y2KTest if SetWorkstation Writeln Writeln 'Setting Workstation from Server ' NovDefaultServer Now = NovServerTime ShowTime elseif SetServer Writeln Writeln 'Setting Server ' NovDefaultServer ' from Workstation' NovServerTime = Now ShowTime endif if NovSync WriteNovSync CmdLine endif if not Close Writeln 'Time Syncronization Failed!' Writeln ExitCode = 255 endif EndProc