home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 8 Other / 08-Other.zip / lsmt213c.zip / refresh.cmd < prev    next >
OS/2 REXX Batch file  |  2001-05-01  |  31KB  |  749 lines

  1. /*---------------------------------------------------------------------------*\
  2. |   Refresh all Server Objects found into the Domain                          |
  3. |                                             (C) Alain Rykaert - NOV98-MAY01 |
  4. \*---------------------------------------------------------------------------*/
  5.     Version = '1.04'
  6.     Say '* refresh version:' Version
  7.  
  8.     Parse Upper Arg DCName
  9.  
  10.     Call Init                    /* Initialisation of DLL's and other stuff*/
  11.  
  12.     If DCName = ''
  13.       Then Do
  14.              Say '*'
  15.              Say '* refresh all servers objects'
  16.              Say '*'
  17.              Say '* usage: refresh {servername}'
  18.              Say '*'
  19.              Say '* sample: refresh \\dc01'
  20.              Say '*'
  21.              Exit
  22.            End
  23.       Else Nop
  24.  
  25.     RC = NetGetInfo(370, 'ServerModalInfo', '\\'DCName)
  26.     If RC = 0
  27.       Then Do
  28.              ServerRole = ServerModalInfo.Role
  29.              If WordPos('Primary', ServerRole) > 0     /* check server role*/
  30.                Then Nop
  31.                Else Do
  32.                       Say '! this is not a primary domain controller' '07'x
  33.                       Exit
  34.                     End
  35.            End
  36.       Else Call ChkError RC
  37.  
  38.  /* Get the Domain name from the DC-PR */
  39.     Call SysFileSearch 'DOMAIN =', '\\'DCName'\ibmlan$\ibmlan.ini', 'File.'
  40.     If File.0 > 0
  41.       Then Do i = 1 to File.0
  42.              If Pos(';', File.i) = 0
  43.                Then Parse Upper Value File.i With . '=' DomainName .
  44.                Else Nop
  45.            End
  46.        Else Do
  47.               Say '! unable to determine the domain name' '07'x
  48.               Say '! from the primary domain controller' DCName
  49.               Say '  (or not logon as an administrator)'
  50.               Say '* press any key to exit'
  51.               Pull
  52.               Exit
  53.            End
  54.     Say '> the name of the domain is:' DomainName
  55.  
  56.  /* Make a subdirectory with the Domain name*/
  57.     Call ChkDir Directory()'\'DomainName
  58.  
  59.     Say '* getting all servers member of the domain'
  60.     If NetGetInfo(340, 'ServerName', '\\'DCName, 'Servers') = 0
  61.       Then Do
  62.              Call RxStemSort 'ServerName'
  63.              Do i = 1 to ServerName.0
  64.                Call ChkDir Directory()'\'DomainName'\'ServerName.i
  65.                Counter = '('Right(i,Length(ServerName.0))'/'Right(ServerName.0,Length(ServerName.0))')'
  66.                Parse Value SysCurPos() With Row Col
  67.                Call Time('R')
  68.                If NetGetInfo(160, 'ServerNameInfo', '\\'ServerName.i) = 0
  69.                  Then Do
  70.                         RC = NetGetInfo(370, 'ServerModalInfo', '\\'ServerName.i)
  71.                         ServerRole = ServerModalInfo.Role
  72.                         Say '>' Counter Left(ServerName.i,8) 'found:' Trunc(Time('E'),2) '- comment:' ServerNameInfo.Comment
  73.                      /* Say '  > role:' ServerRole */
  74.                         Call GetInfo ServerName.i        /* Get the details*/
  75.                       End
  76.                  Else
  77.                Say '!' Counter Left(ServerName.i,8) '-not found-'
  78.              End
  79.            End
  80.       Else Say '! can not get netgetinfo from \\'DCName '07'x
  81.  
  82.     Say '* done. press any key to exit'
  83.     Pull
  84.  
  85.     Exit
  86.  
  87.  GETINFO:/* -----------------------------------------------------------------*/
  88.  
  89.     Parse Arg ServerName
  90.  
  91.     UNC_OS2    = ''                                           /* Drive OS/2*/
  92.     UNC_MPTS   = ''                                   /* Drive MPTS or LAPS*/
  93.     UNC_LSR    = ''                                     /* Drive Lan Server*/
  94.     UNC_CM2    = ''                                           /* Drive CM/2*/
  95.     DRV_NETFIN = ''                         /* Drive Netfinity or Systemvie*/
  96.     UNC_NETFIN = ''
  97.     DRV_ADSM   = ''                                           /* Drive ADSM*/
  98.     UNC_ADSM   = ''
  99.     DRV_SD     = ''                                             /* Drive SD*/
  100.     UNC_SD     = ''
  101.  
  102.  /* Execute the batch file on the server */
  103.    'net admin \\'ServerName '/c set >' TempFile
  104.     Call Stream  TempFile, 'C', 'Close'
  105.     If Stream(TempFile, 'C', 'Query Size') > 0
  106.       Then Nop
  107.       Else Do
  108.              Say '! error: tempfile' TempFile 'is not valid' '07'x
  109.              Return
  110.            End
  111.  
  112.     Call SysFileSearch 'COMSPEC=', TempFile, 'Stem'
  113.     If Stem.0 = 1
  114.       Then Do
  115.              Parse Value Stem.1 With . '=' ServerBootDrive ':' .
  116.              If Trace Then Say '> boot drive:' ServerBootDrive
  117.              UNC_OS2 = '\\'ServerName'\'ServerBootDrive'$'
  118.              LibPath = ''
  119.              Call SysFileSearch 'LIBPATH=', '\\'ServerName'\'ServerBootDrive'$\config.sys', 'Stem'
  120.              Do j = 1 to Stem.0
  121.                Stem.j = Translate(Stem.j)
  122.                If Left(Strip(Stem.j), 8) = 'LIBPATH='
  123.                  Then Parse Value Stem.j With . '=' LibPath
  124.                  Else Nop
  125.              End
  126.              If LibPath = ''
  127.                Then Do
  128.                       Say '! error: could not determine LibPath' '07'x
  129.                       Return
  130.                     End
  131.                Else If Trace Then Say '> libpath:' LibPath
  132.            End
  133.       Else Do
  134.              Say '! error: could not determine comspec' '07'x
  135.              Return
  136.            End
  137.  
  138.     If Pos('IBMCOM', LibPath) > 0                                   /* MPTS*/
  139.       Then Do
  140.              x = Pos('IBMCOM', LibPath) - 3
  141.              UNC_MPTS = '\\'ServerName'\'SubStr(LibPath, x, 1)'$'
  142.            End
  143.  
  144.     If Pos('IBMLAN', LibPath) > 0                             /* Lan Server*/
  145.       Then Do
  146.              x = Pos('IBMLAN', LibPath) - 3
  147.              UNC_LSR = '\\'ServerName'\'SubStr(LibPath, x, 1)'$'
  148.            End
  149.  
  150.     If Pos('TCPIP', LibPath) > 0                                  /* TCP/IP*/
  151.       Then Do
  152.              x = Pos('TCPIP', LibPath) - 3
  153.              UNC_TCP = '\\'ServerName'\'SubStr(LibPath, x, 1)'$'
  154.            End
  155.  
  156.     If Pos('CMLIB', LibPath) > 0                                    /* CM/2*/
  157.       Then Do
  158.              x = Pos('CMLIB', LibPath) - 3
  159.              UNC_CM2 = '\\'ServerName'\'SubStr(LibPath, x, 1)'$'
  160.            End
  161.  
  162.     If Pos('NETFIN', LibPath) > 0                              /* NetFinity*/
  163.       Then Do
  164.              x = Pos('NETFIN', LibPath) - 3
  165.              UNC_NETFIN = '\\'ServerName'\'SubStr(LibPath, x, 1)'$'
  166.              DRV_NETFIN = UNC_NETFIN'\NETFIN'
  167.            End
  168.  
  169.     If Pos('SYSVIEW2', LibPath) > 0                           /* SystemView*/
  170.       Then Do
  171.              x = Pos('SYSVIEW2', LibPath) - 3
  172.              UNC_NETFIN = '\\'ServerName'\'SubStr(LibPath, x, 1)'$'
  173.              DRV_NETFIN = UNC_NETFIN'\SYSVIEW2'
  174.            End
  175.  
  176.     If Pos('SOFTDIST', LibPath) > 0                                   /* SD*/
  177.       Then Do
  178.              x = Pos('SOFTDIST', LibPath) - 3
  179.              UNC_SD = '\\'ServerName'\'SubStr(LibPath, x, 1)'$'
  180.              DRV_SD = UNC_SD'\SOFTDIST'
  181.            End
  182.  
  183.     If Pos('PGMS\NETFIN', LibPath) > 0               /* NetFinity at Morgan*/
  184.       Then Do
  185.              x = Pos('PGMS\NETFIN', LibPath) - 3
  186.              UNC_NETFIN = '\\'ServerName'\'SubStr(LibPath, x, 1)'$'
  187.              DRV_NETFIN = UNC_NETFIN'\PGMS\NETFIN'
  188.            End
  189.  
  190.     If Pos('PGMS\SYSVIEW2', LibPath) > 0            /* SystemView at Morgan*/
  191.       Then Do
  192.              x = Pos('PGMS\SYSVIEW2', LibPath) - 3
  193.              UNC_NETFIN = '\\'ServerName'\'SubStr(LibPath, x, 1)'$'
  194.              DRV_NETFIN = UNC_NETFIN'\PGMS\SYSVIEW2'
  195.            End
  196.  
  197.     If Pos('ADSM', LibPath) > 0                                     /* ADSM*/
  198.       Then Do
  199.              x = Pos('\ADSM', LibPath) - 3
  200.              UNC_ADSM = '\\'ServerName'\'Left(LibPath,1)'$'
  201.              DRV_ADSM = UNC_ADSM'\ADSM'
  202.            End
  203.  
  204.     If Pos('ADSMCV3', LibPath) > 0                        /* ADSM version 3*/
  205.       Then Do
  206.              x = Pos('\ADSMCV3', LibPath) - 3
  207.              UNC_ADSM = '\\'ServerName'\'Left(LibPath,1)'$'
  208.              DRV_ADSM = UNC_ADSM'\ADSMCV3'
  209.            End
  210.  
  211.     If Pos('PGMS\ADSM', LibPath) > 0                      /* ADSM at Morgan*/
  212.       Then Do
  213.              x = Pos('PGMS\ADSM', LibPath) - 3
  214.              UNC_ADSM = '\\'ServerName'\'Left(LibPath,1)'$'
  215.              DRV_ADSM = UNC_ADSM'\PGMS\ADSM'
  216.            End
  217.  
  218.     If Pos('PGMS\SOFTDIST', LibPath) > 0                    /* SD at Morgan*/
  219.       Then Do
  220.              x = Pos('PGMS\SOFTDIST', LibPath) - 3
  221.              UNC_SD = '\\'ServerName'\'SubStr(LibPath, x, 1)'$'
  222.              DRV_SD = UNC_SD'\PGMS\SOFTDIST'
  223.            End
  224.  
  225.     If Trace
  226.       Then Do
  227.              Say 'unc_os2    =' UNC_os2
  228.              Say 'unc_mpts   =' UNC_mpts
  229.              Say 'unc_lsr    =' UNC_lsr
  230.              Say 'unc_cm2    =' UNC_cm2
  231.              Say 'unc_netfin =' UNC_netfin
  232.              Say 'unc_adsm   =' UNC_adsm
  233.            End
  234.       Else Nop
  235.  
  236.  /* make a folder of the server and link to crucial files*/
  237.     Call MakeObjects
  238.  
  239.    'net use \\'ServerName'\'Left(ServerBootDrive,1)'$ /d >nul 2>nul'
  240.    'net use \\'ServerName'\ipc$ /d >nul 2>nul'
  241.    'net use \\'ServerName'\ibmlan$ /d >nul 2>nul'
  242.  
  243.     Return
  244.  
  245.  MAKEOBJECTS:/* -------------------------------------------------------------*/
  246.  
  247.     Select                                           /* Get the folder icon*/
  248.       When ServerRole = 'Primary server in the domain'
  249.         Then IconFile = Directory()'\pdc.ico'
  250.       When ServerRole = 'Backup server in the domain'
  251.         Then IconFile = Directory()'\bdc.ico'
  252.       Otherwise IconFile = Directory()'\os2res63.ico'
  253.     End
  254.  
  255.     Class    = 'WPFolder'
  256.     Title    =  ServerName || '^' || ServerNameInfo.Comment
  257.     Location = '<LSMT_SERVERS_'DomainName'>'
  258.     Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'>;' ||,
  259.                'ICONVIEW=FLOWED;'                                   ||,
  260.                'ICONVIEWPOS=40,20,55,65;'                           ||,
  261.                'ICONFONT=10.System VIO;'                            ||,
  262.                'ICONFILE='IconFile';'                               ||,
  263.                'ALWAYSSORT=YES'
  264.     Update   = 'Update'
  265.     Call CreateObj
  266.  
  267.     Class    = 'WPProgram'
  268.     Title    = 'CONFIG.SYS'
  269.     Location = '<LSMT_SERVERS_'DomainName'_'ServerName'>'
  270.     Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'_CONFIG>;'  ||,
  271.                'ICONFILE='Directory()'\1000.ico;'                           ||,
  272.                'PROGTYPE=PM;'                                               ||,
  273.                'EXENAME=e.exe;'                                             ||,
  274.                'PARAMETERS='UNC_OS2'\config.sys'
  275.     Update   = 'Update'
  276.     Call CreateObj
  277.  
  278.     Call Compit UNC_OS2'\config.sys',
  279.                   Directory()'\'DomainName'\'ServerName'\config.sys'
  280.  
  281.     Class    = 'WPProgram'
  282.     Title    = 'STARTUP.CMD'
  283.     Location = '<LSMT_SERVERS_'DomainName'_'ServerName'>'
  284.     Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'_STARTUP>;' ||,
  285.                'ICONFILE='Directory()'\train.ico;'                          ||,
  286.                'PROGTYPE=PM;'                                               ||,
  287.                'EXENAME=e.exe;'                                             ||,
  288.                'PARAMETERS='UNC_OS2'\startup.cmd'
  289.     Update   = 'Update'
  290.     Call CreateObj
  291.  
  292.     Call Compit UNC_OS2'\startup.cmd',
  293.                   Directory()'\'DomainName'\'ServerName'\startup.cmd'
  294.  
  295.     If Stream(UNC_OS2'\timexec.adm', 'C', 'Query Exists') = ''
  296.       Then Nop
  297.       Else Do
  298.              Class    = 'WPProgram'
  299.              Title    = 'TIMEXEC.ADM'
  300.              Location = '<LSMT_SERVERS_'DomainName'_'ServerName'>'
  301.              Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'_TIMEXEC>;' ||,
  302.                         'ICONFILE='Directory()'\timer.ico;'                          ||,
  303.                         'PROGTYPE=PM;'                                               ||,
  304.                         'EXENAME=e.exe;'                                             ||,
  305.                         'PARAMETERS='UNC_OS2'\timexec.adm'
  306.              Update   = 'Update'
  307.              Call CreateObj
  308.  
  309.              Call Compit UNC_OS2'\timexec.adm',
  310.                            Directory()'\'DomainName'\'ServerName'\timexec.adm'
  311.            End
  312.  
  313.     If Stream(UNC_OS2'\os2\install\ipl.log', 'C', 'Query Exists') = ''
  314.       Then Nop
  315.       Else Do
  316.              Class    = 'WPProgram'
  317.              Title    = 'IPL.LOG'
  318.              Location = '<LSMT_SERVERS_'DomainName'_'ServerName'>'
  319.              Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'_IPLLOG>;' ||,
  320.                         'ICONFILE='Directory()'\logfile.ico;'                       ||,
  321.                         'PROGTYPE=PM;'                                              ||,
  322.                         'EXENAME=e.exe;'                                            ||,
  323.                         'PARAMETERS='UNC_OS2'\os2\install\ipl.log'
  324.              Update   = 'Update'
  325.              Call CreateObj
  326.              Call Compit UNC_OS2'\os2\install\ipl.log',
  327.                          Directory()'\'DomainName'\'ServerName'\ipl.log'
  328.            End
  329.  
  330.     Class    = 'WPProgram'
  331.     Title    = 'PROTOCOL.INI'
  332.     Location = '<LSMT_SERVERS_'DomainName'_'ServerName'>'
  333.     Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'_PROTOCOL>;' ||,
  334.                'ICONFILE='Directory()'\1018.ico;'                            ||,
  335.                'PROGTYPE=PM;'                                                ||,
  336.                'EXENAME=e.exe;'                                              ||,
  337.                'PARAMETERS='UNC_MPTS'\ibmcom\protocol.ini'
  338.     Update   = 'Update'
  339.     Call CreateObj
  340.  
  341.     Call Compit UNC_MPTS'\ibmcom\protocol.ini',
  342.                 Directory()'\'DomainName'\'ServerName'\protocol.ini'
  343.  
  344.     If Stream(UNC_MPTS'\ibmcom\rfcnames.lst', 'C', 'Query Exists') = ''
  345.       Then Nop
  346.       Else Do
  347.              Class    = 'WPProgram'
  348.              Title    = 'RFCNAMES.LST'
  349.              Location = '<LSMT_SERVERS_'DomainName'_'ServerName'>'
  350.              Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'_RFCNAMES>;' ||,
  351.                         'PROGTYPE=PM;'                                                ||,
  352.                         'EXENAME=e.exe;'                                              ||,
  353.                         'PARAMETERS='UNC_MPTS'\ibmcom\rfcnames.lst'
  354.              Update   = 'Update'
  355.              Call CreateObj
  356.              Call Compit UNC_MPTS'\ibmcom\rfcnames.lst',
  357.                          Directory()'\'DomainName'\'ServerName'\rfcnames.lst'
  358.            End
  359.  
  360.     If Stream(UNC_MPTS'\ibmcom\rfcbcst.lst', 'C', 'Query Exists') = ''
  361.       Then Nop
  362.       Else Do
  363.              Class    = 'WPProgram'
  364.              Title    = 'RFCBCST.LST'
  365.              Location = '<LSMT_SERVERS_'DomainName'_'ServerName'>'
  366.              Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'_RFCBCST>;'  ||,
  367.                         'PROGTYPE=PM;'                                                ||,
  368.                         'EXENAME=e.exe;'                                              ||,
  369.                         'PARAMETERS='UNC_MPTS'\ibmcom\rfcbcst.lst'
  370.              Update   = 'Update'
  371.              Call CreateObj
  372.              Call Compit UNC_MPTS'\ibmcom\rfcbcst.lst',
  373.                          Directory()'\'DomainName'\'ServerName'\rfcbcst.lst'
  374.            End
  375.  
  376.     Class    = 'WPProgram'
  377.     Title    = 'LANTRAN.LOG'
  378.     Location = '<LSMT_SERVERS_'DomainName'_'ServerName'>'
  379.     Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'_LANTRAN>;' ||,
  380.                'ICONFILE='Directory()'\netinfo.ico;'                        ||,
  381.                'PROGTYPE=PM;'                                               ||,
  382.                'EXENAME=e.exe;'                                             ||,
  383.                'PARAMETERS='UNC_MPTS'\ibmcom\lantran.log'
  384.     Update   = 'Update'
  385.     Call CreateObj
  386.  
  387.     Call Compit UNC_MPTS'\ibmcom\lantran.log',
  388.                   Directory()'\'DomainName'\'ServerName'\lantran.log'
  389.  
  390.     Class    = 'WPProgram'
  391.     Title    = 'IBMLAN.INI'
  392.     Location = '<LSMT_SERVERS_'DomainName'_'ServerName'>'
  393.     Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'_IBMLAN>;' ||,
  394.                'ICONFILE='Directory()'\1055.ico;'                          ||,
  395.                'PROGTYPE=PM;'                                              ||,
  396.                'EXENAME=e.exe;'                                            ||,
  397.                'PARAMETERS='UNC_LSR'\ibmlan\ibmlan.ini'
  398.     Update   = 'Update'
  399.     Call CreateObj
  400.  
  401.     Call Compit UNC_LSR'\ibmlan\ibmlan.ini',
  402.                   Directory()'\'DomainName'\'ServerName'\ibmlan.ini'
  403.  
  404.     If Stream(UNC_LSR'\IBM386FS\HPFS386.INI', 'C', 'Query Exists') = ''
  405.       Then Nop
  406.       Else Do
  407.              Class    = 'WPProgram'
  408.              Title    = 'HPFS386.INI'
  409.              Location = '<LSMT_SERVERS_'DomainName'_'ServerName'>'
  410.              Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'_HPFS386>;' ||,
  411.                         'ICONFILE='Directory()'\hpfs386.ico;'                       ||,
  412.                         'PROGTYPE=PM;'                                               ||,
  413.                         'EXENAME=e.exe;'                                             ||,
  414.                         'PARAMETERS='UNC_LSR'\ibm386fs\hpfs386.ini'
  415.              Update   = 'Update'
  416.              Call CreateObj
  417.              Call Compit UNC_LSR'\ibm386fs\hpfs386.ini',
  418.                          Directory()'\'DomainName'\'ServerName'\hpfs386.ini'
  419.            End
  420.  
  421.     If Stream(DRV_ADSM'\dsm.opt', 'C', 'Query Exists') = ''
  422.       Then Nop
  423.       Else Do
  424.              Class    = 'WPProgram'
  425.              Title    = 'DSM.OPT'
  426.              Location = '<LSMT_SERVERS_'DomainName'_'ServerName'>'
  427.              Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'_DSMOPT>;' ||,
  428.                         'ICONFILE='Directory()'\adsm.ico;'                        ||,
  429.                         'PROGTYPE=PM;'                                              ||,
  430.                         'EXENAME=e.exe;'                                            ||,
  431.                         'PARAMETERS='DRV_ADSM'\dsm.opt'
  432.              Update   = 'Update'
  433.              Call CreateObj
  434.              Call Compit DRV_ADSM'\dsm.opt',
  435.                          Directory()'\'DomainName'\'ServerName'\dsm.opt'
  436.            End
  437.  
  438.     If Stream(DRV_ADSM'\dsmp.opt', 'C', 'Query Exists') = ''
  439.       Then Nop
  440.       Else Do
  441.              Class    = 'WPProgram'
  442.              Title    = 'DSMP.OPT'
  443.              Location = '<LSMT_SERVERS_'DomainName'_'ServerName'>'
  444.              Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'_DSMPOPT>;' ||,
  445.                         'ICONFILE='Directory()'\adsm.ico;'                         ||,
  446.                         'PROGTYPE=PM;'                                               ||,
  447.                         'EXENAME=e.exe;'                                             ||,
  448.                         'PARAMETERS='DRV_ADSM'\dsmp.opt'
  449.              Update   = 'Update'
  450.              Call CreateObj
  451.              Call Compit DRV_ADSM'\dsmp.opt',
  452.                          Directory()'\'DomainName'\'ServerName'\dsmp.opt'
  453.            End
  454.  
  455.     If UNC_CM2 = ''
  456.       Then Nop
  457.       Else Do
  458.              Call SysFileSearch 'CMDefaultCFG', UNC_CM2'\CMLIB\CM.INI', 'File.'
  459.              If File.0 = 1
  460.               Then Do
  461.                       Parse Value File.1 With '=' CM2NDF
  462.                       CM2NDF = Strip(CM2NDF)
  463.  
  464.                       Class    = 'WPProgram'
  465.                       Title    = CM2NDF'.NDF'
  466.                       Location = '<LSMT_SERVERS_'DomainName'_'ServerName'>'
  467.                       Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'_CM2NDF>;' ||,
  468.                                  'ICONFILE='Directory()'\cm2.ico;'                           ||,
  469.                                  'PROGTYPE=PM;'                                              ||,
  470.                                  'EXENAME=e.exe;'                                            ||,
  471.                                  'PARAMETERS='UNC_CM2'\cmlib\'CM2NDF'.NDF'
  472.                       Update   = 'Update'
  473.                       Call CreateObj
  474.                       Call Compit UNC_CM2'\cmlib\'CM2NDF'.ndf',
  475.                                   Directory()'\'DomainName'\'ServerName'\'CM2NDF'.ndf'
  476.                    End
  477.               Else Nop
  478.            End
  479.  
  480.     Call SysFileSearch 'SET ETC=', UNC_OS2'\CONFIG.SYS', 'File.'
  481.     If File.0 > 0                  /* Check for older tcp/ip implementation*/
  482.       Then Do j = 1 to File.0
  483.              If Pos('REM', Translate(File.j)) = 0
  484.               Then Do
  485.                      Parse Value File.j With . '=' Drive ':\' ETC_Location '\' .
  486.  
  487.                      UNC_ETC = '\\'ServerName'\'Drive'$\'ETC_Location'\BIN'
  488.  
  489.                      If Stream(UNC_ETC'\Setup.cmd', 'C', 'Query Exists') <> ''
  490.                        Then Do
  491.                               Class    = 'WPProgram'
  492.                               Title    = 'TCP/IP^Setup.CMD'
  493.                               Location = '<LSMT_SERVERS_'DomainName'_'ServerName'>'
  494.                               Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'_SETUP>;'      ||,
  495.                                          'ICONFILE='Directory()'\tcpcfg.ico;'              ||,
  496.                                          'PROGTYPE=PM;'                                      ||,
  497.                                          'EXENAME=e.exe;'                                    ||,
  498.                                          'PARAMETERS='UNC_ETC'\setup.cmd'
  499.                               Update   = 'Update'
  500.                               Call CreateObj
  501.                               Call Compit UNC_ETC'\setup.cmd',
  502.                                    Directory()'\'DomainName'\'ServerName'\setup.cmd'
  503.                             End
  504.                         Else Nop
  505.                    End
  506.               Else Nop
  507.           End
  508.      Else Nop
  509.  
  510.     If Stream(DRV_SD'\nvdm.cfg', 'C', 'Query Exists') = ''
  511.       Then Nop
  512.       Else Do
  513.              Class    = 'WPProgram'
  514.              Title    = 'NVDM.CFG'
  515.              Location = '<LSMT_SERVERS_'DomainName'_'ServerName'>'
  516.              Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'_NVDM>;'   ||,
  517.                         'ICONFILE='Directory()'\swfold.ico;'                        ||,
  518.                         'PROGTYPE=PM;'                                              ||,
  519.                         'EXENAME=e.exe;'                                            ||,
  520.                         'PARAMETERS='DRV_SD'\nvdm.cfg'
  521.              Update   = 'Update'
  522.              Call CreateObj
  523.              Call Compit DRV_SD'\nvdm.cfg',
  524.                          Directory()'\'DomainName'\'ServerName'\nvdm.cfg'
  525.            End
  526.  
  527.     Class    = 'WPProgram'
  528.     Title    = '<System Info>'
  529.     Location = '<LSMT_SERVERS_'DomainName'_'ServerName'>'
  530.     Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'_QSYSTEM>;' ||,
  531.                'ICONFILE='Directory()'\sysinfo.ico;'                        ||,
  532.                'PROGTYPE=windowablevio;'                                    ||,
  533.                'EXENAME='Directory()'\q_system.cmd;'                        ||,
  534.                'PARAMETERS='ServerName
  535.     Update   = 'Update'
  536.     Call CreateObj
  537.  
  538.     Class    = 'WPProgram'
  539.     Title    = '<Check>'
  540.     Location = '<LSMT_SERVERS_'DomainName'_'ServerName'>'
  541.     Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'_CHECK>;' ||,
  542.                'ICONFILE='Directory()'\watson.ico;'                       ||,
  543.                'PROGTYPE=windowablevio;'                                  ||,
  544.                'EXENAME='Directory()'\q_lsc.cmd;'                         ||,
  545.                'MINIMIZED=Yes;'                                           ||,
  546.                'PARAMETERS='ServerName Directory()'\'DomainName'\'ServerName'\lsc.out 0'
  547.     Update   = 'Update'
  548.     Call CreateObj
  549.  
  550.     Class    = 'WPProgram'
  551.     Title    = '<Statistics>'
  552.     Location = '<LSMT_SERVERS_'DomainName'_'ServerName'>'
  553.     Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'_STATISTICS>;' ||,
  554.                'ICONFILE='Directory()'\1054.ico;'                              ||,
  555.                'PROGTYPE=windowablevio;'                                       ||,
  556.                'EXENAME='Directory()'\q_lsc.cmd;'                              ||,
  557.                'MINIMIZED=Yes;'                                                ||,
  558.                'PARAMETERS='ServerName Directory()'\'DomainName'\'ServerName'\stats.out 1'
  559.     Update   = 'Update'
  560.     Call CreateObj
  561.  
  562.     Class    = 'WPProgram'
  563.     Title    = '<Printer Queues>'
  564.     Location = '<LSMT_SERVERS_'DomainName'_'ServerName'>'
  565.     Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'_QUEUES>;' ||,
  566.                'ICONFILE='Directory()'\dotmprn.ico;'                       ||,
  567.                'PROGTYPE=windowablevio;'                                   ||,
  568.                'EXENAME='Directory()'\q_print.cmd;'                        ||,
  569.                'MINIMIZED=Yes;'                                            ||,
  570.                'PARAMETERS='ServerName Directory()'\'DomainName'\'ServerName'\qprint.out'
  571.     Update   = 'Update'
  572.     Call CreateObj
  573. /*
  574.     Call Compit '\\'ServerName'\ibmlan$\netprog\qsystem.out',
  575.                   Directory()'\'DomainName'\'ServerName'\qsystem.out'  */
  576.  
  577.     Class    = 'WPProgram'
  578.     Title    = '<LS Audit>'
  579.     Location = '<LSMT_SERVERS_'DomainName'_'ServerName'>'
  580.     Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'_LSAUDIT>;' ||,
  581.                'ICONFILE='Directory()'\message.ico;'                        ||,
  582.                'PROGTYPE=PM;'                                               ||,
  583.                'EXENAME='Directory()'\lsaudit.exe;'                         ||,
  584.                'PARAMETERS='ServerName
  585.     Update   = 'Update'
  586.     Call CreateObj
  587.  
  588.     Class    = 'WPProgram'
  589.     Title    = '<LS Error>'
  590.     Location = '<LSMT_SERVERS_'DomainName'_'ServerName'>'
  591.     Setup    = 'OBJECTID=<LSMT_SERVERS_'DomainName'_'ServerName'_LSERROR>;' ||,
  592.                'ICONFILE='Directory()'\log.ico;'                            ||,
  593.                'PROGTYPE=PM;'                                               ||,
  594.                'EXENAME='Directory()'\lserror.exe;'                         ||,
  595.                'PARAMETERS='ServerName
  596.     Update   = 'Update'
  597.     Call CreateObj
  598.  
  599.     Return
  600.  
  601.  CREATEOBJ:/* ---------------------------------------------------------------*/
  602.  
  603.  /* Say ' Title    =' Title
  604.     Say ' Location =' Location
  605.     Say ' Setup    =' Setup */
  606.  
  607.     If SysCreateObject(Class, Title, Location, Setup, Update) = 1
  608.       Then Nop
  609.       Else Say '! error: while creating object' Title '07'x
  610.  
  611.     Parse Value Setup With 'OBJECTID=' ObjectID ';' .
  612.     Call SysSetObjectData ObjectID, 'Title='Title
  613.  
  614.     Return
  615.  
  616.  CHKERROR:/* ----------------------------------------------------------------*/
  617.  
  618.     Parse Arg RCode
  619.  
  620.     Say '! error:' RCode '07'x
  621.     Exit
  622.  
  623.     Return
  624.  
  625.  INIT:/* --------------------------------------------------------------------*/
  626.  
  627.    '@echo off'
  628.  
  629.     If Value('TREES',,'OS2Environment') = ''           /* Check for Tracing*/
  630.       Then Trace = 0
  631.       Else Trace = 1
  632.  
  633.     BootDrive = Left(Value('Comspec',,'OS2Environment'),2)
  634.  
  635.     Redir = '>nul'
  636.  
  637.     If RxFuncQuery('SysLoadFuncs')
  638.       Then Do
  639.              Call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
  640.              Call SysLoadFuncs
  641.            End
  642.       Else Nop
  643.  
  644.     LSRDrive = ''                      /* Check for Lan Server Drive Letter*/
  645.     LibPath = Translate(Value('PATH',,'OS2Environment'))
  646.     x = Pos('\IBMLAN\NETPROG;', LibPath) -2
  647.     If x > 0
  648.       Then LSRDrive = SubStr(LibPath, x, 2)
  649.       Else Do
  650.              Say '* could not determine the lan requester path'
  651.              Exit
  652.            End
  653.  
  654.     Call ChkFile LSRDrive'\ibmlan\netlib\lsrxut.dll'
  655.     If RxFuncQuery('LoadLSRXUTFuncs')
  656.       Then Do
  657.              Call RxFuncAdd 'LoadLsRxutFuncs', 'LSRXUT', 'LoadLsRxutFuncs'
  658.              Call LoadLsRxutFuncs
  659.            End
  660.       Else Nop
  661.  
  662.     Call ChkFile BootDrive'\os2\dll\rxutils.dll'
  663.     If RxFuncQuery('RxLoadFuncs')
  664.       Then Do
  665.              Call RxFuncAdd 'RxLoadFuncs', 'RXUTILS', 'RxLoadFuncs'
  666.              Call RxLoadFuncs
  667.            End
  668.       Else Nop
  669.  
  670.     TempFile = LSRDrive'\ibmlan\refresh.tmp'              /* Temporary file*/
  671.  
  672.     Return
  673.  
  674.  CHKFILE:/* -----------------------------------------------------------------*/
  675.  
  676.     Parse Arg File
  677.  
  678.     If Stream(File, 'C', 'Query Exists') = ''
  679.     Then Do
  680.            Say '! file not found:' File '07'x
  681.            Say '* press any key to exit'
  682.            Exit
  683.         End
  684.     Else Nop
  685.  
  686.     Return
  687.  
  688.  CHKDIR:/* ----------------------------------------------------------------*/
  689.  
  690.     Parse Arg Dir_Name
  691.  
  692.     RCode = 0                                      /* Reset the Return Code*/
  693.  
  694.     If Stream(Dir_Name, 'C', 'Query Exists') <> ''      /* is this a file ?*/
  695.       Then RCode = 1   /* Bad RC, there already exist a file With this name*/
  696.       Else Do
  697.              Call SysFileTree Dir_Name, 'DirExist', 'Do'/* Does this DIR exist ?*/
  698.              If DirExist.0 = 0
  699.                Then Do
  700.                       RC = SysMKDir(Dir_Name)
  701.                       If RC <> 0
  702.                         Then RCode = 1
  703.                         Else Nop
  704.                     End
  705.                Else Nop
  706.            End
  707.  
  708.     If RCode = 1
  709.       Then Do
  710.              Say '! error while creating' Dir_Name '07'x
  711.              Say '* press any key to exit'
  712.              Pull
  713.              Exit
  714.            End
  715.       Else Nop
  716.  
  717.     Return
  718.  
  719.  COMPIT:  /* ------------------------------------------------- COMPIT: ----*/
  720.  
  721.     Parse Arg Source Target
  722.  
  723.     If Source = '' | Source = '\' | Target = ''
  724.       Then Return
  725.       Else Nop
  726.  
  727.     If Stream(Source, 'C', 'Query Exists') <> ''
  728.       Then Do
  729.              Q1 = Stream(Source, 'C', 'Query DateTime')
  730.              Q2 = Stream(Target, 'C', 'Query DateTime')
  731.              If Q1 <> Q2
  732.                Then Do
  733.                   /*  Say '09'x ESC'[0;33m Copy' Source ESC'[0m' */
  734.                      'copy' Source Target Redir
  735.                       If RC <> 0
  736.                         Then Do
  737.                                Say '! error while coping' Source 'to' Target '07'x
  738.                               'pause'
  739.                                Return
  740.                              End
  741.                         Else Nop
  742.                     End
  743.                Else Nop
  744.           End
  745.       Else Nop
  746.  
  747.     Return
  748.  
  749.