| At one time you could read and write the UAF directly from DCL,
and then they changed the UAF record size so it was too large for
DCL to handle in a symbol, and then they extended DCl, ...
I am not sure what the current situation is, but you could try
it. The username is the primary key. You will need to know where
in the record the quotas are, but I can let you have a PL/1 definition
of the record that works if you do not already have something.
Better still, use another language. I always try to use the
language that does what I want easiest, rather than trying to bend
a language that really does not have a particular feature. A few
lines of Fortran (or Basic, or PL/1, or ...) could call $GETUAI
and return the values to DCL symbols.
|
| RE: .3
<<< SWSHUB::USER$DISK:[NOTES$LIBRARY]VMSNOTES.NOTE;1 >>>
-< VAX/VMS and more... *** DIGITAL INTERNAL USE ONLY *** >-
================================================================================
Note 367.6 Audit reporting of SYSUAF? 6 of 6
MONSTR::DUTKO "Nestor Dutko, VMS/VAXclusters CSSE" 96 lines 3-APR-1987 08:11
-< Datatrieve UAF record layout >-
--------------------------------------------------------------------------------
I am not certain, but I believe that the foloowing UAF Datatrieve
record definition is still valid:
-- Nestor
DELETE UAF_RECORD;
REDEFINE RECORD UAF_RECORD USING
01 UAF_RECORD.
03 RTYPE BYTE.
03 VERSION BYTE.
03 USER_DATA_OFFSET WORD.
03 USER_NAME PIC X(32).
03 UIC.
05 MEMBER WORD.
05 GROUP WORD.
03 SUB_ID LONG.
03 PARENT_ID DATE.
03 ACCOUNT PIC X(32).
03 OWNER.
05 OWNER_LEN BYTE.
05 OWNER_STR PIC X(31).
03 DEFAULT_DEVICE PIC X(32).
03 DEFAULT_DIRECTORY.
05 DEFAULT_DIRECTORY_LEN BYTE.
05 DEFAULT_DIRECTORY_STR PIC X(63).
03 LGICMD PIC X(64).
03 DEFCLI PIC X(32).
03 CLITABLES PIC X(32).
03 PWD QUAD.
03 PWD_2 QUAD.
03 LOGFAILS WORD.
03 SALT WORD.
03 ENCRYPT BYTE.
03 ENCRYPT_2 BYTE.
03 PWD_LENGTH BYTE.
03 FILLER BYTE.
03 EXPIRATION DATE.
03 PWD_LIFETIME DATE.
03 PWD_DATE DATE.
03 PWD_DATE_2 DATE.
03 LAST_INTERACTIVE_LOGIN DATE.
03 LAST_NONINTERACTIVE_LOGIN DATE.
03 PRIVILEGES QUAD.
03 DEFAULT_PRIVILEGES QUAD.
03 MIN_CLASS PIC X(20).
03 MAX_CLASS PIC X(20).
03 LOGIN_FLAGS LONG.
03 NETWORK_ACCESS.
05 PRIMARY_NET PIC X(3).
05 SECONDARY_NET PIC X(3).
03 BATCH_ACCESS.
05 PRIMARY_BATCH PIC X(3).
05 SECONDARY_BATCH PIC X(3).
03 LOCAL_ACCESS.
05 PRIMARY_LOCAL PIC X(3).
05 SECONDARY_LOCAL PIC X(3).
03 DIALUP_ACCESS.
05 PRIMARY_DIALUP PIC X(3).
05 SECONDARY_DIALUP PIC X(3).
03 REMOTE_ACCESS.
05 PRIMARY_REMOTE PIC X(3).
05 SECONDARY_REMOTE PIC X(3).
03 FILLER PIC X(12).
03 PRIME_DAYS BYTE.
03 FILLER BYTE.
03 PRIORITY BYTE.
03 QUEUE_PRIORITY BYTE.
03 MAX_JOBS WORD.
03 MAX_ACCT_JOBS WORD.
03 MAX_DETACH WORD.
03 PROCESS_CNT WORD.
03 BIOLM WORD.
03 DIOLM WORD.
03 TQCNT WORD.
03 ASTLM WORD.
03 ENQLM WORD.
03 FILLM WORD.
03 SHRFILLM WORD.
03 WSQUOTA LONG.
03 DFWSCNT LONG.
03 WSEXTENT LONG.
03 PGFLQUOTA LONG.
03 CPUTIME LONG.
03 BYTLM LONG.
03 PBYTLM LONG.
03 JTQUOTA LONG.
03 PROXY_LIM WORD.
03 PROXIES WORD.
03 ACCOUNT_LIM WORD.
03 ACCOUNTS WORD.
03 FILLER PIC X(64).
03 FILLER PIC X(768).
;
|