Comment ========================================================== Computer Tyme UserList * Copyright 1993 by Marc Perkel All Rights Reserved Computer Tyme * 309 North Jefferson, #220 * Springfield Mo. 65806 (800) 548-5353 Sales * (417) 866-1222 Voice * (417) 866-1665 Data/Fax USERLIST is a replacement for Novell's UserList utility. It works with Netware 4.x servers with connection numbers greater than 255. If anyone wants any other netware utilities rewritten for 4.x let me know. Especially if you are willing to buy them after I write them. ========================================================== EndComment ;#Define Shareware ;------ Create Variables Var ConInfo Server User Objects Address Century DispArray Setup Display NovPreferredServer = '' ExitMenu ;======================= P R O C E D U R E S =========================== Procedure Header Writeln 'User Information for Server ' Server if Address Write 'Connection User Name Network Node Address' Writeln ' Login Time' Write '---------- -------------- -------- ------------' Writeln ' -------------------' else Write 'Connection User Name Login Time' if Objects Write ' Object Type' endif Writeln Write '---------- -------------- -------------------' if Objects Write ' ----------------------' endif Writeln endif EndProc Comment ===================================== NovConnectionInfo returns the following information. 1 - Connection Number 2 - Connection Name 3 - Connection Station Address 4 - Connection Object Type 5 - Connection Login Time 6 - Connection Object Number ===================================== EndComment Procedure Display var LogTime St Name Loop ConInfo Name = UpperCase(LoopVal[2]) if (User = '') or (User = Name) LogTime = LoopVal[5] St = padLeft(Str(LoopVal[1]),6) Mid(St,13) = Name if Address Mid(St,29) = StationAdr(LoopVal[3]) Mid(St,56) = DateTime(Logtime) else Mid(St,29) = DateTime(Logtime) if Objects Mid(St,50) = LoginType(LoopVal[4],LoopVal[6]) endif endif if LoopVal[1] = NovConnection Mid(St,11) = '*' endif AppendArray(DispArray,St) endif EndLoop if NumberOfElements DispArray > 0 Loop DispArray Writeln LoopVal EndLoop else if User > '' Writeln 'No users named ' User '.' endif endif EndProc Procedure StationAdr (St) var P Net Node P = pos(':',St) Net = PadLeft(Left(St,pred(P)),8) Node = PadLeft(Mid(St,succ(P),255),12) Return '[' + Net + ']' + ' [' + Node + ']' EndProc Procedure DateTime (LogTime) var Date Time Date = DateString(LogTime) insert(Century,Date,7) Time = TimeString(LogTime) delete(Time,6,3) if Left(Time,1) = '0' Mid(Time,1) = ' ' endif Return Date + ' ' + Time EndProc Procedure LoginType (T,Obj) var St if T = 1 St = 'User' elseif T = 5 St = 'Job Server' elseif T = 6 St = 'Gateway' elseif T = 7 St = 'Print Server' else St = 'Object: ' + Str(T) endif Return St + ' (' + HexString(Obj,0) + ')' EndProc Procedure Help Include 'ADDRESS.INC' Writeln "USERLIST is a replacement for Novell's UserList program. It has" Writeln 'been adapted to work with Netware 4.x servers.' Writeln Writeln 'USAGE: USERLIST [server/name] /A /O' Writeln Writeln '/A = Address /O = Object' Writeln Writeln 'USERLIST is licensed for $95/fileserver, $995 site license.' ExitMenu EndProc #If Shareware Procedure Beg BoxBorderColor Green Blue BoxInsideColor White Blue BoxHeaderColor Yellow Mag BoxHeader ' * Shameless Beg Screen * ' DrawBox 10 8 61 6 Writeln WriteCenter '* UserList Evaluation Copy *' Writeln WriteCenter 'Please remember to register this software.' Wait 600 EraseTopWindow ClearKbdBuffer EndProc #Endif Procedure Setup var P O #If Shareware Beg #Endif ExitCode = 0 StandardIO Writeln Writeln 'Computer Tyme USERLIST * Copyright 1993-94 by Marc Perkel' Writeln 'All Rights Reserved * Version 1.02 * Release Date: 11-25-94' Writeln Address = OptionSwitch(CmdLine,'A') Objects = OptionSwitch(CmdLine,'O') ;sometimes I hit 0 instead of O O = OptionSwitch(CmdLine,'0') Objects = Objects or O if Address Objects Off endif if pos('/?',CmdLine) > 0 Help endif if NovConnection = 0 Writeln 'This utility works only with NetWare!' ExitCode = 1 ExitMenu endif Server = UpperCase(CmdLine) Trim(Server) P = pos('/',Server) if P > 0 User = Mid(Server,succ(P),255) Server = Left(Server,pred(P)) endif NovPreferredServer = Server if NovPreferredServer <> Server User = Server endif if Year < 2000 Century = '19' else Century = '20' endif Server = NovDefaultServer AmPm Header NovConnectionInfo(ConInfo) EndProc