Ver Mensaje Individual
  #1  
Viejo 23/02/12, 10:47:30
Avatar de pedro43
pedro43 pedro43 is offline
Member
 
Fecha de Ingreso: feb 2012
Localización: Madrid
Mensajes: 58
Resetear contraseñas en todos los mandantes para un usuario

Hola a tod@s

Para a quien le pueda ayudar o resultar interesante, les dejo un sencillo programa para cambiar la contraseña de un usuario en todos los mandantes, incluido SAP*.

Supongo que os será de utilidad en el caso que no recordéis la password en algún Mdte.



REPORT ZBCPASSWORD.

TABLES: USR02, T000.
DATA: PASSWD LIKE USR02-BCODE.
PARAMETERS: USER LIKE USR02-BNAME.

*SELECT SINGLE * FROM USR02 WHERE BNAME = USER.
*IF SY-UNAME <> 'SAP*'.
*WRITE: / 'Solo SAP* puede ejecutar el programa'. EXIT.
*ENDIF.

**** Se comprueba que el usuario tiene permisos de administrador***
AUTHORITY-CHECK OBJECT 'S_ADMI_FCD'
ID 'S_ADMI_FCD' FIELD 'PADM'.

IF SY-SUBRC <> 0.
message i077(s#) with '' raising not_authorized.
exit.
endif.


AUTHORITY-CHECK OBJECT 'S_USER_GRP'
ID 'CLASS' FIELD 'SUPER'
ID 'ACTVT' FIELD '01'.

IF SY-SUBRC <> 0.
message i077(s#) with '' raising not_authorized.
exit.
endif.
**** Fin de la comprobación de autorizaciones ***




IF SY-SUBRC <> 0.
WRITE: / USER, 'El usuario no existe!'. EXIT.
ENDIF.
PASSWD = USR02-BCODE.
CLEAR USR02.
WRITE: / 'La contraseña del usuario',USER, 'actualizada en mandantes:'.
SELECT * FROM T000 WHERE MANDT <> SY-MANDT.
SELECT * FROM USR02 CLIENT SPECIFIED WHERE MANDT = T000-MANDT AND
BNAME = USER.
WRITE: / USR02-MANDT.
USR02-BCODE = PASSWD.
USR02-LTIME = SY-UZEIT.
USR02-BCDA1 = USR02-BCDA2 = USR02-BCDA3 = SY-DATUM.
USR02-BCDA4 = USR02-BCDA5 = SY-DATUM.
UPDATE USR02 CLIENT SPECIFIED.
ENDSELECT.
ENDSELECT.

saludos
Responder Con Cita