home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 8 Other / 08-Other.zip / lsmt213c.zip / rxnet.cmd < prev    next >
OS/2 REXX Batch file  |  1996-10-09  |  13KB  |  341 lines

  1. /*---------------------------------------------------------------------------*\
  2. |   REXX-NET                   (C) ALAIN RYKAERT - IBM-Belgium - SEP95-JAN96  |
  3. \*---------------------------------------------------------------------------*/
  4.  
  5.     Parse ARG Option
  6.  
  7.     Call INIT
  8.     Call MAIN
  9.     Call QUIT
  10.  
  11.  MAIN: /*------------------------------------------------------ MAIN: -------*/
  12.  
  13.     OPTION = Translate(OPTION)
  14.     if OPTION = '' then signal GETHELP
  15.     Parse value OPTION with COMMAND ' ' REST
  16.     Select
  17.      when COMMAND = 'ALIAS'   then call ALIAS
  18.      when COMMAND = 'FILE'    then call FILE
  19.      when COMMAND = 'GROUPS'  then call GROUPS
  20.      when COMMAND = 'SESSION' then call SESSION
  21.      when COMMAND = 'SHARE'   then call SHARE
  22.      when COMMAND = 'START'   then call START
  23.      when COMMAND = 'USER'    then call USER
  24.      otherwise Call GETHELP
  25.     end
  26.     Return
  27.  
  28.  ALIAS: /*----------------------------------------------------- ALIAS: ------*/
  29.  
  30.     if REST = ''
  31.      then do
  32.              RC = NetEnumerate(20, 'AliasNames', SRVNAME)
  33.              if RC = 0
  34.               then do i = 1 to AliasNames.0
  35.                       say '09'x ESC'[0;1;33m' AliasNames.i ESC'[0m'
  36.                    end
  37.               else Nop
  38.           end
  39.      else do
  40.              ALIAS = Strip(REST)
  41.              RC = NetGetInfo(20, 'AliasInfo', SRVNAME, ALIAS)
  42.              if RC = 0
  43.               then do
  44.                       say ESC'[2J' ESC'[0;1;36m'
  45.                       say ' Name           :' AliasInfo.Name
  46.                       say ' Remark         :' AliasInfo.Remark
  47.                       say ' Server         :' AliasInfo.Server
  48.                       say ' NetName        :' AliasInfo.NetName
  49.                       say ' Location       :' AliasInfo.Location
  50.                       say ' Mode           :' AliasInfo.Mode
  51.                       say ' Max Uses       :' AliasInfo.MaxUses
  52.                       say ' Type           :' AliasInfo.Type
  53.                       say ' Queue          :' AliasInfo.Queue
  54.                       say ' Path           :' AliasInfo.Path
  55.                       say ' Priority       :' AliasInfo.Priority
  56.                       say ' Device pool    :' AliasInfo.Device_Pool
  57.                       say '0A'x ESC'[0;1;33mAccess Control :'
  58.  
  59.                       select
  60.                        when AliasInfo.type = 'Files'
  61.                         then Alias_Res = AliasInfo.path
  62.                        when AliasInfo.type = 'Printer'
  63.                         then Alias_Res = '\print\'AliasInfo.queue
  64.                        when AliasInfo.type = 'Serial'
  65.                         then Alias_Res = '\comm\'AliasInfo.queue
  66.                        otherwise nop
  67.                       end
  68.  
  69.                       RC = NetGetInfo(10, 'Access', '\\'AliasInfo.Server, Alias_Res)
  70.                       if RC = 0
  71.                        then do j = 1 to Access.Count
  72.                                say ' ' Access.j.UGNAME '09'x Access.j.ACCESS
  73.                             end
  74.                        else say ' -none-'
  75.                       say ESC'[0m'
  76.                    end
  77.               else say ESC'[0;1;31m' ALIAS ':' RC ESC'[0m'
  78.           end
  79.      Return
  80.  
  81.  FILE: /*------------------------------------------------------ FILE: -------*/
  82.  
  83.     Call SysCls
  84.     RC = NetEnumerate(60, 'FileInfo', SRVNAME)
  85.     if RC = 0
  86.      then do i = 1 to FileInfo.0
  87.              say ESC'[0;1;36m'
  88.              say ' ID                   :' FileInfo.i.ID
  89.              say ' Permissions          :' FileInfo.i.Permissions
  90.              Parse value SysCurPos() with ROW COL
  91.              Call SysCurPos ROW -1, 30; say '1 = Read & Execute'
  92.              Call SysCurPos ROW   , 30; say '2 = Write enabled'
  93.              Call SysCurPos ROW +1, 30; say '4 = Create enabled'
  94.              say ' Num Locks            :' FileInfo.i.Num_Locks
  95.              say ' Path Name            :' FileInfo.i.PathName
  96.              say ' User Name            :' FileInfo.i.UserName
  97.              say ESC'[0m'
  98.           end
  99.  
  100.     Return
  101.  
  102.  GROUPS: /*---------------------------------------------------- GROUPS: -----*/
  103.  
  104.     if REST = ''
  105.      then do
  106.              RC = NetEnumerate(70, 'GroupInfo', SRVNAME)
  107.              if RC = 0
  108.               then do i = 1 to GroupInfo.0
  109.                       say '09'x ESC'[0;1;33m' GroupInfo.i ESC'[0m'
  110.                    end
  111.               else Nop
  112.           end
  113.      else do
  114.              GROUPNAME = Strip(REST)
  115.              Call SysCls
  116.              RC = NetGetInfo(70, 'GroupInfo', SRVNAME, GROUPNAME)
  117.              if RC = 0
  118.               then do
  119.                       Call RxStemSort(GroupInfo)
  120.                       say ESC'[0;1;36m'
  121.                       say ' Name     :' GroupInfo.Name
  122.                       say ' Comment  :' GroupInfo.Comment
  123.                       RC = NetGetInfo(340, 'GroupUsr', SRVNAME, GROUPNAME)
  124.                       if RC = 0
  125.                        then do
  126.                                say '0A'x ESC'[0;1;33mMembers  :'
  127.                                do i = 1 to GroupUsr.0
  128.                                   say ' ' GroupUsr.i
  129.                                end
  130.                                say ESC'[0m'
  131.                            end
  132.                        else Nop
  133.                       say ESC'[0m'
  134.                    end
  135.               else say ESC'[0;1;31m' GROUPS ':' RC ESC'[0m'
  136.           end
  137.     Return
  138.  
  139.  SESSION: /*--------------------------------------------------- SESSION: ----*/
  140.  
  141.     RC = NetEnumerate(180, 'NetSession', SRVNAME)
  142.     if RC = 0
  143.      then do
  144.              Call RxStemSort(NetSession)
  145.              do i = 1 to NetSession.0
  146.                  say ESC'[0;1;36m'
  147.                  say ' ComputerName         :' NetSession.i
  148.                  say ' UserName             :' NetSession.i.UserName
  149.                  say ' Connections          :' NetSession.i.Num_conns
  150.                  say ' Open                 :' NetSession.i.Num_Opens
  151.                  say ' Established Sessions :' NetSession.i.Num_Users
  152.                  say ' Time                 :' NetSession.i.Time
  153.                  say ' Idle Time            :' NetSession.i.Idle_Time
  154.                  say ' User Flag            :' NetSession.i.User_Flags
  155.                  say ' PWS Type             :' NetSession.i.Cltype_Name
  156.                  say ESC'[0m'
  157.              end
  158.           end
  159.  
  160.     Return
  161.  
  162.  SHARE: /*----------------------------------------------------- SHARE: ------*/
  163.  
  164.     RC = NetEnumerate(190, 'ShareInfo', SRVNAME)
  165.     if RC = 0
  166.      then do
  167.              Call RxStemSort(ShareInfo)
  168.              do i = 1 to ShareInfo.0
  169.                 say '09'x ESC'[0;1;33m' ShareInfo.i ESC'[0m'
  170.              end
  171.           end
  172.      else Nop
  173.  
  174.     Return
  175.  
  176.  START: /*----------------------------------------------------- START: ------*/
  177.  
  178.     RC = NetEnumerate(170, 'ServiceInfo', SRVNAME)
  179.     if RC = 0
  180.      then do
  181.              Call RxStemSort(ServiceInfo)
  182.              do i = 1 to ServiceInfo.0
  183.                 say '09'x ESC'[0;1;33m' ServiceInfo.i ESC'[0m'
  184.              end
  185.           end
  186.      else Nop
  187.  
  188.     Return
  189.  
  190.  USER: /*------------------------------------------------------ USER: -------*/
  191.  
  192.     if REST = '' then call GETHELP
  193.     USERID = Strip(REST)
  194.  
  195.     RC = NetGetInfo(280, 'UserInfo', SRVNAME, USERID)
  196.     if RC = 0
  197.      then do
  198.              say ESC'[2J' ESC'[0;1;36m'
  199.              say ' Name              :' UserInfo.Name
  200.              say ' Password          : ****'
  201.              say ' Passwordage       :' UserInfo.Password_Age
  202.              say ' Privilege         :' UserInfo.Priv
  203.              say ' Home Dir          :' UserInfo.Home_dir
  204.              say ' Comment           :' UserInfo.Comment
  205.              say ' Flags             :' UserInfo.Flags
  206.              Parse value SysCurPos() with ROW COL
  207.              Call SysCurPos ROW -1, 30; say 'S = Always set. Logon script enabled'
  208.              Call SysCurPos ROW   , 30; say 'D = User account disabled'
  209.              Call SysCurPos ROW +1, 30; say 'U = User account cannot be deleted'
  210.              Call SysCurPos ROW +2, 30; say 'H = Home directory required'
  211.              Call SysCurPos ROW +3, 30; say 'N = Password not required'
  212.              Call SysCurPos ROW +4, 30; say 'C = User cannot change password'
  213.              say ' Script Path       :' UserInfo.Script_Path
  214.              say ' Auth Flags        :' UserInfo.Auth_Flags
  215.              Parse value SysCurPos() with ROW COL
  216.              Call SysCurPos ROW -1, 30; say 'P = Print operator'
  217.              Call SysCurPos ROW   , 30; say 'C = Comm operator'
  218.              Call SysCurPos ROW +1, 30; say 'S = Server operator'
  219.              Call SysCurPos ROW +2, 30; say 'A = Accounts operator'
  220.              say ' Full Name         :' UserInfo.Full_Name
  221.              say ' User Comment      :' UserInfo.Usr_Comment
  222.              say ' Parms             :' UserInfo.Parms
  223.              say ' Workstations      :' UserInfo.Workstations
  224.              say ' Last Logon        :' Strip(UserInfo.Last_logon,,'0A'x)
  225.              say ' Last Logoff       :' Strip(UserInfo.Last_logoff,,'0A'x)
  226.              say ' Account expires   :' UserInfo.Acct_Expires
  227.              say ' Max Storage       :' UserInfo.Max_Storage
  228.              say ' Units per week    :' UserInfo.Units_per_week
  229.              say ' Restricted Hours  :' UserInfo.Restricted_Hours
  230.              say ' Bad passwords     :' UserInfo.Bad_PW_Count
  231.              say ' Succesful logons  :' UserInfo.Num_logons
  232.              say ' Logon Server      :' UserInfo.Logon_Server
  233.          /*  say ' Country code      :' UserInfo.Country_Code
  234.              say ' Code Page         :' UserInfo.Code_Page
  235.            */
  236.  
  237.              say '0A'x ESC'[0;1;33mLogon Assignments :'
  238.              RC = NetGetInfo(52, 'LogonAsnInfo', SRVNAME, USERID)
  239.              if RC = 0
  240.               then do
  241.                       Call RxStemSort 'LogonAsnInfo'
  242.                       do j = 1 to LogonAsnInfo.count
  243.                          say ' ' LogonAsnInfo.j.device '09'x LogonAsnInfo.j.alias
  244.                       end
  245.                    end
  246.               else say ' -none-'
  247.  
  248.              say '0A'x ESC'[0;1;35mGroup membership  :'
  249.              RC = NetGetInfo(330, 'UserGroups', SRVNAME, USERID)
  250.              if RC = 0
  251.               then do
  252.                       Call RxStemSort 'UserGroups'
  253.                       do j = 1 to UserGroups.0
  254.                          say ' ' UserGroups.j
  255.                       end
  256.                    end
  257.               else say ' -none-'
  258.              say ESC'[0m'
  259.           end
  260.      else say ESC'[0;1;31m' USERID ':' RC ESC'[0m'
  261.  
  262.     Return
  263.  
  264.  INIT: /*------------------------------------------------------ INIT: -------*/
  265.  
  266.     Call RgUtil   '/m' /* Rexx Utilities        */
  267.     Call RgUtils  '/m' /* Rexx Utilities        */
  268.     Call RgLSRXUT '/m' /* Lan Server Rexx Utils */
  269.  
  270.     Parse Upper Source . . P_NAME
  271.     PRGN = Filespec('N', Left(P_NAME, Length(P_NAME) -4))
  272.  
  273.    '@echo off'
  274.     ESC = '1B'x
  275.  
  276.     RC = NetGetInfo(350, 'WKSTAINFO', '')
  277.     if RC = 0
  278.      then do
  279.              parse value NetMisc(510, WKSTAINFO.Logon_Domain, WKSTAINFO.ComputerName) with RC SRVNAME
  280.              if RC = 0
  281.               then do
  282.                       Call SysFileTree SRVNAME'\IBMLAN$\IBMLAN.INI', 'STEM', 'F'
  283.                       if STEM.0
  284.                        then Nop
  285.                        else do
  286.                                say ESC'[0;1;41m Sorry, you DO NOT have ADMIN Privilege on Domain' WKSTAINFO.Logon_Domain ESC'[0m'
  287.                                Call QUIT
  288.                             end
  289.                    end
  290.               else Nop
  291.           end
  292.      else Nop
  293.  
  294.     Resource_File = 'RXNET.RSC'
  295.     Call CHKFILE Resource_File
  296.  
  297.     Return
  298.  
  299.  GETANS: /*---------------------------------------------------- GETANS: -----*/
  300.  
  301.     Vars_List =Ansi_Say(Resource_File Topic_List);
  302.     Parse VALUE SysCurPos() With Old_R Old_C;
  303.     Do While Vars_List <> '';
  304.        Parse VALUE Vars_List With Topic_Id ';' Var_Id ';' Row ';' Column ';' Color ';' Vars_List;
  305.        Call SysCurPos Row, Column;
  306.        Say x2c(Color) || Topic_String.Topic_Id.Var_Id || '1B'x || '[0m';
  307.        End;
  308.     Call SysCurPos Old_R, Old_C;
  309.  
  310.     Return
  311.  
  312.  GETHELP: /*--------------------------------------------------- GETHELP: ----*/
  313.  
  314.     Topic1='RXNETHELP'
  315.     Topic_String.Topic1.1=PRGN;
  316.     Topic_List=Topic1;
  317.     Call GETANS
  318.     Call QUIT
  319.  
  320.     Return
  321.  
  322.  CHKFILE: /*--------------------------------------------------- CHKFILE: ----*/
  323.  
  324.     Parse Arg FILE
  325.     RC = Stream(FILE, 'C', 'QUERY EXIST')
  326.     if RC = ''
  327.      then do
  328.              say ' File' FILE 'not found.'
  329.              Call QUIT
  330.           end
  331.      else Nop
  332.     Call Stream FILE, 'C', 'CLOSE'
  333.  
  334.     Return
  335.  
  336.  QUIT: /*------------------------------------------------------ QUIT: -------*/
  337.  
  338.     Exit
  339.  
  340.  /*--------------------------------------------------------------------------*/
  341.