home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 8 Other / 08-Other.zip / lsmt213c.zip / lsusers.cmd < prev    next >
OS/2 REXX Batch file  |  2000-02-16  |  7KB  |  227 lines

  1. /*---------------------------------------------------------------------------*\
  2. |  Check HomeDirectories for proper ACL's     (C) Alain Rykaert - MAR96-FEB00 |
  3. \*---------------------------------------------------------------------------*/
  4.     Version = '2.02'
  5.     Say '* LSUSERS Version' Version
  6.  
  7.  /*=============================*/
  8.     MaxLines = 30
  9.  /*=============================*/
  10.  
  11.     Call Init                                                 /* init dll's*/
  12.  
  13.     Parse Upper Arg DCName OutFileName
  14.  
  15.     If DCName = '' | OutFileName = ''
  16.       Then Do
  17.              Say '*'
  18.              Say '* Get LAN Server Users inventory'
  19.              Say '*'
  20.              Say '* Usage: LSUSERS {DCName} {OutputFileName}'
  21.              Say '*'
  22.              Say '* Sample: LSUSERS \\BEDDC01 LSUSERS.TXT'
  23.              Say '*'
  24.              Exit
  25.            End
  26.       Else Nop
  27.  
  28.     DCName = Strip(DCName,'L','\')
  29.  
  30.     Say '* Server Name:' '\\'DCName
  31.  
  32.     RC = NetGetInfo(370, 'ServerModalInfo', '\\'DCName)
  33.     If RC = 0
  34.       Then Do
  35.              ServerRole = ServerModalInfo.Role
  36.              If WordPos('Primary', ServerRole) > 0     /* check server role*/
  37.                Then Nop
  38.                Else Do
  39.                       Say '! This is not a Primary Domain Controller' '07'x
  40.                       Exit
  41.                     End
  42.            End
  43.       Else Call ChkError RC
  44.  
  45.     Say '* Getting all users from: \\'DCName
  46.  /* RC = NetEnumerate(280, 'UserID', '\\'DCName) */        /* get all users*/
  47.     RC = WfrxUserEnum('\\'DCName,'UserID')
  48.     If RC = 0
  49.       Then Do
  50.             'if exist' OutFileName 'del' OutFileName
  51.              OutText = '***' Date('E') Time() '*** LSUSERS Version:' Version
  52.              Call Logit OutFileName OutText
  53.              Call Logit OutFileName ' '
  54.  
  55.              Say '* Total defined users:' UserID.0
  56.              Counter = Left('COUNTER', (Length(UserID.0) * 2)+3)
  57.              Banner = Counter            ';',
  58.                       Left('USERID',8)   ';',
  59.                       Left('COMMENT',30) ';',
  60.                       Left('NUM',3)      ';',
  61.                       Left('LOGON',8)    ';',
  62.                       Left('LOGOFF',8)   ';'
  63.              Call Logit OutFileName Banner
  64.  
  65.              Call RxStemSort 'UserID'                     /* sort all users*/
  66.              Do i = 1 to UserID.0
  67.                Counter = '('Right(i,Length(UserID.0))'/'Right(UserID.0,Length(UserID.0))')'
  68.                If i // MaxLines = 0
  69.                  Then Call Logit OutFileName Banner
  70.                  Else Nop
  71.  
  72.                Call NetGetInfo 280, 'UserInfo', '\\'DCName, UserID.i
  73.  
  74.                If UserInfo.Comment = '-none-'
  75.                  Then UserComment = ''
  76.                  Else UserComment = UserInfo.Comment
  77.                If UserInfo.Num_Logons = 'Unknown'
  78.                  Then NumLogons = ''
  79.                  Else NumLogons = UserInfo.Num_Logons
  80.                If UserInfo.Last_Logon = 'Unknown'
  81.                  Then LastLogon = ''
  82.                  Else Do
  83.                         Call GetDate UserInfo.Last_Logon
  84.                         LastLogon = NewDate
  85.                       End
  86.                If UserInfo.Last_Logoff = 'Unknown'
  87.                  Then LastLogoff = ''
  88.                  Else Do
  89.                         Call GetDate UserInfo.Last_Logoff
  90.                         LastLogoff = NewDate
  91.                       End
  92.  
  93.                OutText = Counter ';',
  94.                          Left(UserID.i, 8)    ';',
  95.                          Left(UserComment,30) ';',
  96.                          Right(NumLogons,3)   ';',
  97.                          Left(LastLogon,8)    ';',
  98.                          Left(LastLogoff,8)   ';'
  99.                Call Logit OutFileName OutText
  100.                Say Counter UserID.i
  101.              End
  102.            End
  103.       Else Call ChkError RC
  104.  
  105.     Exit
  106.  
  107.  INIT:/* --------------------------------------------------------------------*/
  108.  
  109.    '@echo off'
  110.     BootDrive = Left(Value('ComSpec',,'OS2Environment'),2)
  111.  
  112.     If RxFuncQuery('SysLoadFuncs')
  113.       Then Do
  114.              Call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
  115.              Call SysLoadFuncs
  116.            End
  117.       Else Nop
  118.  
  119.     LSRDrive = Left(SysSearchPath('PATH', 'NET.EXE'), 2)    /* IBMLAN Drive*/
  120.     If LSRDrive <> ''
  121.       Then Nop
  122.       Else Do
  123.              Say '! Could not determine the Lan Requester path' '07'x
  124.              Exit X2D('1604')
  125.            End
  126.  
  127.     Call ChkFile LSRDrive'\ibmlan\netlib\lsrxut.dll'
  128.     If RxFuncQuery('LoadLSRXUTFuncs')
  129.       Then Do
  130.              Call RxFuncAdd 'LoadLsRxutFuncs', 'LSRXUT', 'LoadLsRxutFuncs'
  131.              Call LoadLsRxutFuncs
  132.            End
  133.       Else Nop
  134.  
  135.     Call ChkFile BootDrive'\os2\dll\rxutils.dll'
  136.     If RxFuncQuery('RxLoadFuncs')
  137.       Then Do
  138.              Call RxFuncAdd 'RxLoadFuncs', 'RXUTILS', 'RxLoadFuncs'
  139.              Call RxLoadFuncs
  140.            End
  141.       Else Nop
  142.  
  143.     If Stream(LSRDrive'\ibmlan\netlib\wfrxutil.dll', 'C', 'Query Exists') <> ''
  144.       Then Do
  145.              Call RxFuncAdd 'WfrxLoadFuncs', 'WfrxUtil', 'WfrxLoadFuncs'
  146.              Call WfrxLoadFuncs
  147.            End
  148.       Else Do
  149.              Say '! Could not find' LSRDrive'\IBMLAN\NETLIB\WFRXUTIL.DLL' '07'x
  150.              Exit X2D('0800')
  151.            End
  152.  
  153.     Return
  154.  
  155.  CHKERROR:/* ----------------------------------------------------------------*/
  156.  
  157.     Parse Arg RCode
  158.  
  159.     Say '! Error:' RCode '07'x
  160.     Exit
  161.  
  162.     Return
  163.  
  164.  CHKFILE:/* -----------------------------------------------------------------*/
  165.  
  166.     Parse Arg File_To_Check
  167.  
  168.     If Stream(File_To_Check, 'C', 'Query Exists') = ''
  169.       Then Do
  170.              Say '! File not found:' File_To_Check '07'x
  171.              Exit
  172.            End
  173.       Else Nop
  174.  
  175.     Return
  176.  
  177.  LOGIT:/* ------------------------------------------------------------------*/
  178.  
  179.     Parse Arg Log_File Log_Text
  180.  
  181.     If LineOut(Log_File, Log_Text) = 0
  182.       Then Call Stream Log_File, 'C', 'Close'
  183.       Else Say '! Error while writing:' Log_File '07'x
  184.  
  185.     Return
  186.  
  187.  GETDATE:/* -----------------------------------------------------------------*/
  188.  
  189.     Parse Arg DateFormat
  190.  
  191.     DateFormat = Strip(DateFormat,,'0A'x)
  192.  
  193.     Parse Upper Value DateFormat With WeekDay Month Day Hour Year .
  194.  
  195.     Select
  196.       When Month = 'JAN'
  197.         Then Month = '01'
  198.       When Month = 'FEB'
  199.         Then Month = '02'
  200.       When Month = 'MAR'
  201.         Then Month = '03'
  202.       When Month = 'APR'
  203.         Then Month = '04'
  204.       When Month = 'MAY'
  205.         Then Month = '05'
  206.       When Month = 'JUN'
  207.         Then Month = '06'
  208.       When Month = 'JUL'
  209.         Then Month = '07'
  210.       When Month = 'AUG'
  211.         Then Month = '08'
  212.       When Month = 'SEP'
  213.         Then Month = '09'
  214.       When Month = 'OCT'
  215.         Then Month = '10'
  216.       When Month = 'NOV'
  217.         Then Month = '11'
  218.       When Month = 'DEC'
  219.         Then Month = '12'
  220.       Otherwise Nop
  221.     End
  222.  
  223.     NewDate = Year || Month || Right(Day,2,'0')
  224.  
  225.     Return
  226.  
  227.