// // liste les utilisateurs et leur mot de passe // //================================================================ Fprofilp1 O E DISK EXTFILE('BACKUP/PROFILP1') // ENTETE USER SPACE Dspcptr s * D RTVINF DS based(spcptr) D decal 124 D FIN 9B 0 D TAILLE 9B 0 D NBOBJ 9B 0 D LGPOST 9B 0 // DEFINITION D'UN OBJET Dlistptr s * D LIST DS based(listptr) D OBJNAM 1 10 D OBJLIB 11 20 D OBJQ 1 20 D OBJTYP 21 30 D TEXTE 42 91 // DECLARATION DE VARIABLES BINAIRES D BINDS DS D DEBUT 1 4B 0 D LG 5 8B 0 D LGRCV 9 12B 0 // QUALIF/ USER SPACE ET PROFIL (dans QSYS) D QUALDS DS D SPCNAM 1 10 D SPCLIB 11 20 D USRSPC 1 20 D USER 21 30 D BIBLI 31 40 D USERQ 21 40 DEXT S 10 Dwtyp s 10 Dwtaille s 9b 0 DINT S 10 DAUT S 10 DTXT S 50 D i S 10I 0 // CODE ERREUR API D ERRDS DS D LGDS 1 4B 0 D LGERR 5 8B 0 D MSGID 9 15 D RESERV 16 16 // API QSYRUPWD D QSYRUPWD PR EXTPGM('QSYRUPWD') D DATA 2000 D DATALG 10I 0 CONST D FORMAT 8 CONST D PROFIL 10 CONST D Erreur 16 CONST D C MOVEL '*ALL' user C MOVEL 'QSYS ' BIBLI C MOVEL '*USRPRF' WTYP c C MOVE *ON *INLR /FREE EXSR chgtUS; EXSR DLTUS; // *INLR = *ON; BEGSR CHGTUS; SPCNAM = 'LSTUSR'; SPCLIB = 'QTEMP'; EXT = 'LSTUSR'; wtaille = 1024; int = *blanks; aut = '*USE'; txt = 'Liste temporaire des utilisateurs' ; EXSR DLTUS; // au cas ou ? // CREATION USER SPACE PAR API QUSCRTUS /END-FREE C CALL 'QUSCRTUS' C PARM USRSPC C PARM EXT C PARM WTAILLE C PARM INT C PARM AUT C PARM TXT // REMPLISSAGE DU USER SPACE VIA API (LISTE DES OBJETS) C CALL 'QUSLOBJ' 99 C PARM USRSPC C PARM 'OBJL0200' FMT 8 C PARM USERQ C PARM WTYP C CALL 'QUSPTRUS' C PARM USRSPC C PARM spcptr /FREE // recuparation adresse de début et positionnement listptr = spcptr; listptr = listptr + fin; // nbobj est lu dans RTVINF basée sur SPCPTR for i = 1 to nbobj; if %subst(objnam : 1 : 1) <> 'Q'; profil = objnam; //récupération des données de mot de passe (data) QSYRUPWD(data : %size(data) : 'UPWD0100' : profil : ERRDS); write profilf1; endif; if i < nbobj; // POSITIONNEMENT SUR PROCHAIN POSTE listptr = listptr + lgpost; endif; ENDFOR; ENDSR; // // // BEGSR DLTUS; // DLT DU USER SPACE (Y COMPRIS EN CAS DE PLANTUS) API QUSDLTUS /END-FREE C Z-ADD 16 LGDS C CALL 'QUSDLTUS' 99 C PARM USRSPC C PARM ERRDS /FREE ENDSR;