View Full Version : QSYGETPH API
hgdieterle
19-02-14, 13:19
Versuche gerade mit QSYGETPH den User eines Jobs zu ändern. Laut Dokumentation von IBM ist als Passwort auch *NOPWD erlaubt. Dies führt bei mir aber immer zu dem Fehler Kennwort falsch. Der User hat *USE Rechte an dem neuen Profil. Irgendeinde Idee.
Vielen Dank
Probiers mal zum Beispiel so:
PGM
DCL VAR(&USER) TYPE(*CHAR) LEN(10)
DCL VAR(&CURUSER) TYPE(*CHAR) LEN(10)
DCL VAR(&NEWUSER) TYPE(*CHAR) LEN(10)
DCL VAR(&NEWHANDLE) TYPE(*CHAR) LEN(12)
DCL VAR(&OLDHANDLE) TYPE(*CHAR) LEN(12)
MONMSG MSGID(CPF0000)
CHGVAR VAR(&NEWUSER) VALUE(QSYSOPR)
CALL PGM(QSYGETPH) PARM(*CURRENT *NOPWD &OLDHANDLE)
CALL PGM(QSYGETPH) PARM(&NEWUSER *NOPWD &NEWHANDLE)
CALL PGM(QWTSETP) PARM(&NEWHANDLE)
RTVJOBA USER(&USER) CURUSER(&CURUSER)
SNDPGMMSG MSGID(CPF9897) MSGF(QCPFMSG) MSGDTA(&USER +
*BCAT &CURUSER)
CALL PGM(QWTSETP) PARM(&OLDHANDLE)
CALL PGM(QSYRLSPH) PARM(&NEWHANDLE)
CALL PGM(QSYRLSPH) PARM(&OLDHANDLE)
ENDPGM
To obtain a profile handle for a profile that does not have a password, specify
*NOPWD.
Mit anderen Worten: Wenn das Profil ein Kennwort hat, dann musst du das Kennwort auch übergeben.
hgdieterle
19-02-14, 13:48
Hallo,
habe das obige Programm getestet und es funktioniert tatsächlich.
Vielen Dank
Mit *USE-Berechtigung und *NOPWD klappt's auch mit'm Nachbarn mit Kennwort. ;)
Hallo Herr Fuerchau,
wir haben versehentlich das Objekt QSYGETPH in QSYS mit QSYGETPH aus einem anderen System überspielt. Jetzt funktionieren unsere DDM-Zugriffe von anderen Maschinen nicht mehr. Beide Maschinen haben die gleiche Relase- und PTF-Stände. Haben Sie irgendwelche Ideen, wie wir unser Problem lösen können? Wir haben leider keine Sicherung des Objekts QSYGETPH.
Danke und Gruß
... gibt es eine Fehlermeldung? Wie sieht die Berechtigung für QSYGETPH aus?
D*B
Da hat man nun schlechte Karten.
Systemobjekte sind z.T. intern verlinkt.
Durch das Überschreiben ist der interne Link aufgehoben worden.
Dies bekommt man ggf. nur per Neuinstallation des OS wieder hin.
http://www-01.ibm.com/support/docview.wss?uid=nas8N1019748
Die Meldung ist CPF9190 mit Ursachencode 15.
Nachricht . . . : Berechtigungsfehler beim Versuch, eine DRDA/DDM
TCP/IP-Verbindung herzustellen.
15 -- Sicherheitsverarbeitung am Server fehlgeschlagen.
Wir hatte auch die Befürchtung mit einer internen Verlinkung :-(
So sieht die Berechtigung aus:
Objektberechtigung anzeigen
Objekt . . . . . . . : QSYGETPH Eigner . . . . . . . : QSYS
Bibliothek . . . . : QSYS Primärgruppe . . . . : *NONE
Objektart . . . . . : *PGM ASP-Einheit . . . . : *SYSBAS
Objekt durch Berechtigungsliste geschützt . . . . . . . . . . : *NONE
Objektbe- ------------Objekt------------
Benutzer Gruppe rechtigung Opr Verw Exist. Ändern Ref
*PUBLIC *USE X
QSYS *ALL X X X X X
QRDARS400 *USE X
QSRV *USE X
... das ist doch der Fehler auf dem client, sprich der anfordernden Maschine? Wie sieht das auf der Serverseite aus? Müsste im Joblog von QRWTSRVR zu finden sein.
D*B