Anmelden

View Full Version : IFS - Freigabe per Befehlszeile



eps330
17-08-06, 11:38
Hallo,

wir haben gerade damit angefangen uns mit dem IFS zu beschäftigen.
Um sich Verzeichnis des IFS als "Windows-Verzeichnisse" mappen zu können, müssen diese bekantlich zuvor freigegeben werden. Dies haben wir auch per Operations Navigator getan.

Meine Frage ist nun, ob dies auch per Befehlsziele möglich ist?

Vielen Dank im Voraus.

Gruss Hermann

malzusrex
17-08-06, 11:53
Hallo Hermann,

das geht über APIs
http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=/rzahl/rzahlapiguide.htm

siehe auch z.B.:
hier (http://www.rlpforen.de/showthread.php?t=9143&highlight=ifs+api)

Gruß Ronald

holly
17-08-06, 11:58
Hallo,
ja das gibt es als Zusatz::cool:
Freeware GreenScreen NetserverTools ->
http://www.malume.de/ibmiseries/freeware/netservertools/index.html
Benutze ich selbst, ist ganz nett.:)
Gruss Holger

(Gibt Dir ein Menü mit sämtlichen Kommandos, Vergiß die APIs, warum das Fahrrad 5 mal erfinden)

schatte
18-08-06, 08:59
Hallo,

dieses Tool hatte ich auch mal bei mir installiert. Aber es hat mir den Befehl CHGNETA aus der QSYS gelöscht. Das ist natürlich nicht so toll.

Man kann sich selbst ein CL + CMD erstellen welches dann das entsprechende AS/400 API aufruft.
QCLSRC/ADDSHARE Code:


0001.00 /************************************************** ***************/
0002.00 /* IFS FREIGABE ERSTELLEN */
0003.00 /************************************************** ***************/
0004.00 PGM PARM(&SHARENAME &PATHNAME &TEXTDESC &PERMS &MAXUSERS)
0005.00 DCL VAR(&SHARENAME ) TYPE(*CHAR) LEN(12)
0006.00 DCL VAR(&PATHNAME ) TYPE(*CHAR) LEN(20)
0007.00 DCL VAR(&PATHNAMEL) TYPE(*CHAR) LEN(4)
0008.00 DCL VAR(&CCSPATHN) TYPE(*CHAR) LEN(4)
0009.00 DCL VAR(&TEXTDESC) TYPE(*CHAR) LEN(50)
0010.00 DCL VAR(&PERMS) TYPE(*CHAR) LEN(4)
0011.00 DCL VAR(&PERMSP) TYPE(*CHAR) LEN(4)
0012.00 DCL VAR(&MAXUSERS) TYPE(*CHAR) LEN(4)
0013.00 DCL VAR(&MAXUSERSP) TYPE(*CHAR) LEN(4)
0014.00 DCL VAR(&ERRORCODE) TYPE(*CHAR) LEN(255)
0015.00 DCL &LENGTH *DEC LEN(2) VALUE(20)
0016.00 DCL &LENGTHC *CHAR LEN(4)
0017.00 CHGVAR VAR(%BIN(&CCSPATHN)) VALUE(0)
0018.00 CHGVAR VAR(%BIN(&MAXUSERSP)) VALUE(&MAXUSERS)
0019.00 CHGVAR VAR(%BIN(&PERMSP)) VALUE(&PERMS)
0020.00 LOOP:
0021.00 IF (%SUBSTRING(&PATHNAME &LENGTH 1) *EQ ' ') (DO)
0022.00 CHGVAR VAR(&LENGTH) VALUE(&LENGTH - 1)
0023.00 IF (&LENGTH *EQ 0) GOTO CMDLBL(EXIT)
0024.00 GOTO CMDLBL(LOOP)
0025.00 ENDDO
0026.00 CHGVAR VAR(&LENGTHC) VALUE(&LENGTH)
0027.00 CHGVAR VAR(%BIN(&PATHNAMEL)) VALUE(&LENGTHC)
0028.00 CALL PGM(QZLSADFS) +
0029.00 PARM(&SHARENAME +
0030.00 &PATHNAME +
0031.00 &PATHNAMEL +
0032.00 &CCSPATHN +
0033.00 &TEXTDESC +
0034.00 &PERMSP +
0035.00 &MAXUSERS +
0036.00 &ERRORCODE)
0037.00 IF (&ERRORCODE *NE '*') +
0038.00 SNDPGMMSG MSG('ERROR CODE:' *CAT &ERRORCODE)
0039.00 ELSE SNDPGMMSG MSG('Freigabe erfolgreich erstellt')
0040.00 EXIT:
0041.00 ENDPGM

QCMDSRC/ADDSHARE Code:


0001.00 CMD PROMPT('IFS Ordner freigeben')
0002.00 PARM KWD(SHARENAME) TYPE(*CHAR) LEN(12) +
0003.00 CHOICE('Neue Freigabe (MAX:12 Zeichen)') +
0004.00 PMTCTL(*PMTRQS) PROMPT('Freigabename')
0005.00 PARM KWD(PATHNAME) TYPE(*CHAR) LEN(20) +
0006.00 CHOICE('Muss mit / beginnen') +
0007.00 PMTCTL(*PMTRQS) PROMPT('IFS Pfad') /* +
0008.00 'First char must be slash U/U' */
0009.00 PARM KWD(TEXTDESC) TYPE(*CHAR) LEN(50) +
0010.00 CHOICE('Freigabe Bemerkung') +
0011.00 PMTCTL(*PMTRQS) PROMPT('Freigabe +
0012.00 Bemerkung') /* 'Share comment' */
0013.00 PARM KWD(PERMS) TYPE(*CHAR) LEN(4) RTNVAL(*NO) +
0014.00 RSTD(*YES) DFT(1) VALUES(1 2) +
0015.00 CHOICE('Berechtigung (1: R/O, 2:R/W)') +
0016.00 PMTCTL(*PMTRQS) PROMPT('Berechtigung') /* +
0017.00 '1: READ/ONLY 2:READ/WRITE' */
0018.00 PARM KWD(MAXUSERS) TYPE(*CHAR) LEN(4) RSTD(*NO) +
0019.00 DFT(-1) RANGE(-1 255) CHOICE('Max User +
0020.00 (-1 to 255,-1:NOMAX)') PMTCTL(*PMTRQS) +
0021.00 PROMPT('Maximale Benutzer')


Gruß
Matthias

prsbrc
26-11-07, 12:20
Hi!
Ich hab mit dem API mal herumexperementiert. Soweit so gut. Aber wie bekomme ich eine Freigabe jetzt wieder weg??? :D

Mfg
Christian

Fuerchau
26-11-07, 12:24
Auch hierfür gibts API's:

iSeries NetServer API guides (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzahl/rzahlapiguide.htm?resultof=%22%71%7a%6c%73%61%64%6 6%73%22%20%22%71%7a%6c%73%61%64%66%22%20)

In diesem Fall Remove Server Share (QZLSRMS) API (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/apis/qzlsrmvs.htm)