PDA

View Full Version : Windows User auslesen



juergenkarthaus
05-10-04, 12:56
Hallo,

ich habe folgendes Problem: Wir haben eine ältere AS400 (V4R2M0)
und arbeiten mit Client Access (V3R2M0). Da die Bildschirmnamen dynamisch vergeben werden, heißen die Bildschirmnamen der Sessions QPADEV... . Um nun gewisse Sachen protokollieren zu können, möchten wir im Startprogramm der verschiedenen Benutzer
( wir haben hier leider nur Gruppennamen wie zB. Vertrieb, mit denen sich mehrere Leute anmelden) den Windows User auslesen, und in eine Variable stellen, welche wir dann in den Programmen weiterverarbeiten möchten.
Bis jetzt bin ich soweit, daß ich mittels strpccmd net name den Windows user ermitteln kann.
Nur der Transfer in eine AS400-Variable ist das Problem.
Hat jemand eine Idee ?

Vielen Dank vorab.

J. Karthaus

RobertMack
05-10-04, 14:34
H 1
I SDS
I 254 263 USER
C DUMP
C SETON LR

Gruß,

Robert

Brownie
05-10-04, 19:20
luja sog i, fix luja!!

juergenkarthaus
06-10-04, 07:09
H 1
I SDS
I 254 263 USER
C DUMP
C SETON LR

Gruß,

Robert

Hallo Robert,

danke für den Tip. Aber hier bekomme ich ja nur den AS400 User zurück, den ich bereits kenne. Da unsere AS400 User jedoch Namen wie z.B. Vertreib, Versand... haben, bringt mir das nicht viel. Ich benötige den Windows-User des PCs, der mit Client-Access an der AS400 angemeldet ist.
Trotzdem vielen Dank !

Jürgen

Fuerchau
06-10-04, 09:03
Da würde ich mir eher Gedanken darüber machen, die tatsächlichen User auf der AS zu benennen und ggf. Gruppenprofilen zuzuweisen.
Alles andere gestaltet sich als schwierig aber machbar:
Du legst eine Keyed-Dataq auf der AS an, Schlüssel ist die WS-ID (Jobname).
Nach STRPCO kannst du anschliessend per STRPCCMD auf dem PC ein Programm starten, dass als Argument den Jobnamen enthält.
Dieses (neue) Programm liest per Windows-API (GetUserName(LPSTR lpBuffer, LPDWORD nSize)) den User aus und sendet ihn mit Jobnamen und Usernamen an die DATQ (CA-API's). Das AS-Prog wartet per QRCVDTAQ auf den Eintrag (am besten allerdings mit Timeout).
STRPCO und STRPCCMD werden allerdings nicht von allen 5250-Emu's unterstützt.

juergenkarthaus
06-10-04, 13:04
Da würde ich mir eher Gedanken darüber machen, die tatsächlichen User auf der AS zu benennen und ggf. Gruppenprofilen zuzuweisen.
Alles andere gestaltet sich als schwierig aber machbar:
Du legst eine Keyed-Dataq auf der AS an, Schlüssel ist die WS-ID (Jobname).
Nach STRPCO kannst du anschliessend per STRPCCMD auf dem PC ein Programm starten, dass als Argument den Jobnamen enthält.
Dieses (neue) Programm liest per Windows-API (GetUserName(LPSTR lpBuffer, LPDWORD nSize)) den User aus und sendet ihn mit Jobnamen und Usernamen an die DATQ (CA-API's). Das AS-Prog wartet per QRCVDTAQ auf den Eintrag (am besten allerdings mit Timeout).
STRPCO und STRPCCMD werden allerdings nicht von allen 5250-Emu's unterstützt.


Vielen Dank, aber das klingt ja recht komliziert. Ich habe mittlerweile eine andere Lösung gefunden.
Ich habe den folgenden Programmcode angepaßt, und lese damit
die IP-Adresse des jeweiligen PC aus (sind bei uns statisch), und suche mir anschließend aus einer Datei den entsprechenden Windows-User ( die PCs sind festen Usern zugeordnet )
PGM
DCL VAR(&RTN) TYPE(*CHAR) LEN(900)
DCL VAR(&DEVD) TYPE(*CHAR) LEN(10)
RTVJOBA JOB(&DEVD)
CALL PGM(QSYS/QDCRDEVD) PARM(&RTN X'0384' +
'DEVD0600' &DEVD X'00000000')
SNDPGMMSG MSG('I have determined your TCP/IP Address +
to be ' || %SST(&RTN 878 15))
ENDPGM


Vielen Dank nochmals

J. Karthaus

malzusrex
06-10-04, 14:22
und was ist, wenn frau meier vor dem pc vom herrn huber sitzt ??

gruß ronald

juergenkarthaus
06-10-04, 14:26
und was ist, wenn frau meier vor dem pc vom herrn huber sitzt ??

gruß ronald

Hallo Ronald,

ich weiß das die Lösung nicht optimal ist.
Aber das mit Frau Meier ist eher seltener der Fall, und wir können so zumindest zurückverfolgen von welchem PC etwas gemacht wurde.

Gruß

Jürgen