IBM Support

CL Program and Command to Re-Enable NetServer Users

Troubleshooting


Problem

This document provides the source code to create a program and command to easily re-enable a disabled NetServer user.

Resolving The Problem

This document provides the source code to create a program and command to easily re-enable a disabled NetServer user.

The following PTFs for NetServer remove the ability of the CHGUSRPRF command to reset, or re-enable, a user that is disabled for NetServer access:

540: MF55657
545: MF55658
610: MF55659
611: MF55660
710: MF55661

The release date for these PTFs was in 2012.

The user can be re-enabled by using the GO NETS menu, using IBM i Navigator, or by writing a program that makes use of the QZLSCHSI API. Because many people want a simple command line option available to them to perform this task, IBM Support has created a simple CL program to call the QZLSCHSI API. IBM is also providing command source so that the program and command can be compiled to make it easier to use. The program takes a single user profile as an input parameter.

NOTE: Use of the QZLSCHSI API requires that you have *IOSYSCFG special authority. To use format ZLSS0200 to enable an IBM i NetServer user, you must also have *SECADM special authority and *OBJMGT and *USE authority to the system user profile. The QZLSCHSI API is documented in the V7R1M0 InfoCenter. Click HERE to go to the InfoCenter Documentation now.

A save file containing a source file with the three members listed below can be obtained from the following URL: ftp://public.dhe.ibm.com/services/us/igsc/cs2/ApiSamples/Rstnetusrf.savf

    • - Contents of README.TXT member



      /**
      * The information contained in this document has not been submitted
      * to any formal tests and is distributed on an 'As is' basis
      * without any warranty either expressed or implied. The use of this
      * information or the implementation of any of these techniques is a
      * customer responsibility and depends on the customer's ability to
      * evaluate and integrate them into the customer's operation
      * environment. While each item may have been reviewed by IBM
      * for accuracy in a specific situation, there is no guarantee that the
      * same or similar results will be obtained elsewhere. Customers
      * attempting to adapt these techniques to their environments do so
      * at their own risk.
      */

      Use the commands below to compile the program and the command.

      The following command has to be modified to reflect the name of the library where you have restored
      the source file and the library that you want to compile the program to. I would recommend that
      the program be compiled to a library that is in the system portion of your library list. Change
      YOURSYSLIB with the system library that the command and program should be created in and change
      YOURSCRLIB to the name of the library where the source file has been restored.

      If you want users without *IOSYSCFG and *JOBCTL special authority to be able to run the command,
      you need to make sure that the owner that compiles the program and command have those authorities
      and then use the options below to allow the program to adopt that authority.

      CRTBNDCL PGM(YOURSYSLIB/RSTNETUSRP) SRCFILE(YOURSRCLIB/RSTNETUSR)
      SRCMBR(RSTNETUSRP) OPTION(*EVENTF) USRPRF(*OWNER) REPLACE(*YES)
      AUT(*USE) DBGVIEW(*SOURCE)

      NOTE: On OS 540 only, before compiling the RSTNETUSRP program (using the command immediately above), you must remove the line from the RSTNETUSRP member that reads: DCLPRCOPT TEXT('Reset NetServer User') USRPRF(*OWNER)
      The TEXT option is not available on OS 540 and the program will not compile if it is included. On 540 the compile will automatically set the adopted authority to *OWNER, so removing this line will not have any negative effect on the compiled program.


      CRTCMD CMD(YOURSYSLIB/RSTNETUSR) PGM(YOURSYSLIB/RSTNETUSRP) SRCFILE(YOURSRCLIB/RSTNETUSR)
      SRCMBR(RSTNETUSR) ALWLMTUSR(*YES) AUT(*USE) REPLACE(*YES)

      • - Contents of the RSTNETUSRP.CLLE member




        PGM PARM(&USRPRF)

        /**************************************************************************/
        /* */
        /* The information contained in this document has not been submitted */
        /* to any formal tests and is distributed on an 'As is' basis */
        /* without any warranty either expressed or implied. The use of this */
        /* information or the implementation of any of these techniques is a */
        /* customer responsibility and depends on the customer's ability to */
        /* evaluate and integrate them into the customer's operation */
        /* environment. While each item may have been reviewed by IBM */
        /* for accuracy in a specific situation, there is no guarantee that the */
        /* same or similar results will be obtained elsewhere. Customers */
        /* attempting to adapt these techniques to their environments do so */
        /* at their own risk. */
        /* */
        /**************************************************************************/

        /***********************************************************/
        /* This program calls the QZLSCHSI API to re-enable a */
        /* disabled NetServer user profile. */
        /* */
        /* Change Server Information (QZLSCHSI) API */
        /* */
        /* Required Parameter Group: */
        /* */
        /* 1 Request variable Input Char(*) */
        /* 2 Length of request variable Input Binary(4) */
        /* 3 Format Input Char(8) */
        /* 4 Error Code I/O Char(*) */
        /* */
        /* Default Public Authority: *USE */
        /* */
        /* Threadsafe: No */
        /* */
        /***********************************************************/

        DCL VAR(&USRPRF) TYPE(*CHAR) STG(*AUTO) LEN(10)
        DCL VAR(&RQSVAR) TYPE(*CHAR) LEN(14)
        DCL VAR(&RQSLEN) TYPE(*INT) VALUE(14)

        DCLPRCOPT TEXT('Reset NetServer User') USRPRF(*OWNER)

        /* Note that the first part of the value below is four */
        /* (4) spaces. This sometimes appears compressed to */
        /* when viewed on the web. */
        CHGVAR VAR(&RQSVAR) VALUE(' ' *CAT &USRPRF)
        CHGVAR VAR(%BINARY(&RQSVAR 1 4)) VALUE(&RQSLEN)
        CALL QSYS/QZLSCHSI PARM(&RQSVAR &RQSLEN ZLSS0200 X'00000000')
        ENDPGM

        • - Contents of the RSTNETUSR.CMD member



          CMD PROMPT('Enable a NetServer User')
          PARM KWD(USER) TYPE(*CHAR) LEN(10) PROMPT('User Profile +
          To Enable')



        [{"Product":{"code":"SGYQGH","label":"IBM i"},"Business Unit":{"code":"BU009","label":"Systems - Server"},"Component":"Integrated File System","Platform":[{"code":"PF012","label":"IBM i"}],"Version":"Version Independent","Edition":""},{"Product":{"code":"SSC3X7","label":"IBM i 6.1"},"Business Unit":{"code":"BU009","label":"Systems - Server"},"Component":" ","Platform":[{"code":"","label":""}],"Version":"","Edition":""},{"Product":{"code":"SSC52E","label":"IBM i 7.1"},"Business Unit":{"code":"BU009","label":"Systems - Server"},"Component":" ","Platform":[{"code":"","label":""}],"Version":"","Edition":""}]

        Historical Number

        633149683

        Document Information

        Modified date:
        17 June 2018

        UID

        nas8N1010992