Einfacher gehts mit den API's:

Get Profile Handle (QSYGETPH) API
http://publib.boulder.ibm.com/iserie...s/QSYGETPH.htm
http://publib.boulder.ibm.com/iserie.../qsygetphe.htm

sowie
Set Profile Handle (QWTSETP, QsySetProfileHandle) API
http://publib.boulder.ibm.com/iserie...is/QWTSETP.htm

Aber Achtung:
Das Kennwort muss ja irgendwoher im Klartext kommen (es sei denn das Profil hat kein Kennwort) und die API's sind mit Auslieferung des OS auf Berechtigung *PUBLIC *EXCLUDE.
Wird kein Kennwort benötigt (*NOPWDCHK) wird die Berechtigung am Profil benötigt.

Um diese also verwenden zu können, muss das Programm die benötigte Berechtigung mitbringen (Eigner QSECOFR und *OWNER).

Aber nun gibt es noch folgende Probleme:

- Ab dem Setzen des Profils erhält der Benutzer die VOLLE Berechtigung des neuen Users.
- Alle Druckausgaben laufen unter dem Namen des neuen Users.
- Durch Systemanfrage 2 könnte das Programm unterbrochen werden und ab da bin ich nun der neue User

Das Programm muss also Systemanfrage 2 abfangen (sperren geht nicht) und natürlich wenn es fertig ist, das ursprüngliche Profil wieder herstellen (auch mittels Get/SetProfile) !!!