![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
The Question is: Dear Wizard I'm sure I've seen the answer to this question on your site before, but I can't for the life of me find it. On the other hand, I may have imagined it, which is happening with frightening regularity at the moment. Anyway, I want to call the SET PASSWORD command from a captive command procedure (DCL menu). When I run the DCL, it just gives me the prompt back without appearing to do anything. What's up? Is there a way to do this? Many thanks. The Answer is : It appears SYS$INPUT was not redirected to the terminal. For I/O redirection and related information, please see topics including (1569), (1696), (2335), (3160), (4520), (5753), (6534), (7356), (7826), (8749), (8967) and likely other topics. Also please see the OpenVMS User's Guide and available books on DCL Programming. To execute any command within a command procedure and have the input read from the interactive user and not from the next record in the input file, you must redirect SYS$INPUT to SYS$COMMAND. For example: $ DEFINE/USER SYS$INPUT SYS$COMMAND $ SET PASSWORD The /USER means the logical name definition is temporary and will remain only until the next image exit occurs. You could also provide your own tool to reset the password using the sys$getuai, sys$hash_password and sys$setuai calls, or -- since the user is captive -- you could also use AUTHORIZE commands directly. Related topics include (1461), (1475), (1645), (2751), (2938), (3233), (3883), (5258), (5508), (5782), (6328), (8753), (9034), and others. General password discussions are included in various topics, including particularly (4612).
|