IBM Support

Automatically Re-Enable a Disabled IBM i NetServer User Profile

Troubleshooting


Problem

The sample program will demonstrate how to create a WATCH which will automatically re-enable a disabled IBM i NetServer User when message CPIB682 is generated.

Resolving The Problem

The sample program will demonstrate how to create a WATCH which will automatically re-enable a disabled IBM i NetServer User when message CPIB682 is generated. The disabled USER ID will be read from the EVENTDATA and the QZLSCHSI API will be used to re-enable the USER ID. Any additional logic on how often a user should be re-enable per day is not included. A confirmation message that the USER has been re-enabled will be send to the QSYSOPR MSQQ. You can also specify a specific MSGQ to get a message with the disabled USER ID and the sending IP@.

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.


Example

PGM SMBWATCH


/*****************************************************************************/
PGM PARM(&WCHOPTSET &SESSIONID &ERRDETECT &EVENTDATA)
/*****************************************************************************/
/* DEMO NETSERVER WATCH PROGRAM - FOR RE-ENABLING A NETSERVER USER */
/*****************************************************************************/

/*****************************************************************************/
/* */
/* 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 */
/* */
/*****************************************************************************/

/*****************************************************************************/
/* CREATE A LIB E.G. SMBWATCH => VARIABLE MYLIB */
/* CREATE A OUTQ E.G. SMBWATCH => VARAIBLE MYMSGQ */
/*****************************************************************************/

/*****************************************************************************/
/* PARAMETERS PASSED TO WATCH EXIT PROGRAM */
/*****************************************************************************/

DCL VAR(&WCHOPTSET) TYPE(*CHAR) LEN(10)
DCL VAR(&SESSIONID) TYPE(*CHAR) LEN(10)
DCL VAR(&ERRDETECT) TYPE(*CHAR) LEN(10)
DCL VAR(&EVENTDATA) TYPE(*CHAR) LEN(1024)

/*****************************************************************************/
/* LOCAL VARIABLES */
/*****************************************************************************/

/* MESSAGE INFORMATION USER IP ETC */
DCL VAR(&MYMSG) TYPE(*CHAR) LEN(79)
/* LIB FOR THE MESSAGE QUEUE */
DCL VAR(&MYLIB) TYPE(*CHAR) LEN(15) VALUE(SMBWATCH)
/* MESSAGE QUEUE */
DCL VAR(&MYMSGQ) TYPE(*CHAR) LEN(15) VALUE(SMBWATCH)
/* DISABLED USER ID */
DCL VAR(&USRPRF) TYPE(*CHAR) STG(*AUTO) LEN(10)
DCL VAR(&RQSVAR) TYPE(*CHAR) LEN(14)
DCL VAR(&RQSLEN) TYPE(*INT) VALUE(14)


/*****************************************************************************/
/* FILLING VARIABLES */
/*****************************************************************************/

/* NOTE THAT THE VALUE ON THE NEXT LINE IS TEN (10) SPACES, IT MIGHT */
/* BE COMPRESSED WHEN YOU VIEW IT SO MAKE SURE IT HAS ALL 10 SPACES TO */
/* PREVENT RUN-TIME ERRORS. */
CHGVAR VAR(&ERRDETECT) VALUE(' ')
CHGVAR VAR(&USRPRF) VALUE(%SST(&EVENTDATA 493 10))
/* NOTE THAT THE VALUE ON THE NEXT LINE IS FOUR (4) SPACES, IT MIGHT */
/* BE COMPRESSED WHEN YOU VIEW IT SO MAKE SURE IT HAS ALL 4 SPACES TO */
/* MAKE ROOM FOR THE PARAMETER LENGTH TO BE INSERTED AS A 4 BYTE */
/* INTEGER BEFORE THE NAME */
CHGVAR VAR(&RQSVAR) VALUE(' ' *CAT &USRPRF)
CHGVAR VAR(%BINARY(&RQSVAR 1 4)) VALUE(&RQSLEN)

/*****************************************************************************/
/* SENDING A MESSAGE WITH DISABLED UID AN IP@ TO MYMSGQ */
/*****************************************************************************/

/* CHGVAR VAR(&MYMSG) VALUE(%SST(&EVENTDATA 490 80)) */
/* SNDMSG MSG(&MYMSG) TOMSGQ(&MYLIB/&MYMSGQ) */

/*****************************************************************************/
/* RE-ENABLING USER PROFILE */
/*****************************************************************************/

/*---------------------------------------------------------------------------*/
/* YOU MIGHT PUT SOME LOGIC IN HERE E.G. SO THAT USER WILL ONLY RE-ENABLED */
/* ONCE OR X TIMES A DAY. ADDITIONALLY A SMS, E-MAIL COULD BE SENT TO THE */
/* OPERATOR. */
/*---------------------------------------------------------------------------*/

CALL QSYS/QZLSCHSI PARM(&RQSVAR &RQSLEN ZLSS0200 X'00000000')

/*****************************************************************************/
/* SEND A MESSAGE TO QSYSOPR THAT USER IS RE-ENABLED */
/*****************************************************************************/
CHGVAR VAR(&MYMSG) VALUE('WATCH RE-ENABLED NETSERVER USER: ')
CHGVAR VAR(&MYMSG) VALUE(&MYMSG *TCAT &USRPRF)
SNDMSG MSG(&MYMSG) TOUSR(*SYSOPR)
/*****************************************************************************/

ENDPGM


You might start the WATCH via the following CL PGM (STRMYWCH)
 
/**************************************************************************/
/* */
/* 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. */
/* */
/**************************************************************************/
PGM
/* The watch program on the next line should be whatever you called the */
/* NetServer watch program. */
STRWCH SSNID(NETSERVER) WCHPGM(SMBWATCH/SMBWATCH) CALLWCHPGM(*WCHEVT) +
WCHMSG((CPIB682)) WCHMSGQ((*SYSOPR))
ENDPGM


The source for these programs is available in a save file at the following ftp server: ftp://public.dhe.ibm.com/services/us/igsc/cs2/ApiSamples/smbsavf.savf


Note: For additional information on profiles that have been disabled for NetServer use, refer to Rochester i Global Support Center Knowledgebase documents, N1011278 User Profiles Disabled for Use with IBM i NetServer and N1018914 NetServer Disabled User ID List Clarified .

Additional Note - added for searchability:
The name i5/OS NetServer may be used interchangeably with IBM i NetServer, System i NetServer, iSeries NetServer, OS/400 NetServer, or (older) AS/400 NetServer or AS400 NetServer.

[{"Type":"MASTER","Line of Business":{"code":"LOB57","label":"Power"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SWG60","label":"IBM i"},"Platform":[{"code":"PF012","label":"IBM i"}],"Version":"6.1.0"}]

Historical Number

653169169

Document Information

Modified date:
18 December 2019

UID

nas8N1010645