In any case put all the commands in one file.
If you were using containers, you can use a remote shell on the config container:
pdadmin [-I config-instance][[-a admin_id [-p password] [-d domain | -m]] | -l] [-linelen max-linelen] [-histsize history-size] [-v] [cmd | file]
Hence (or add -p if you need, and -d if you need it):
pdadmin -a yourid input.txt
But since you said you are using a virtual appliance, if you still have the old pdadmin binary from ISAM v8 you could execute the same way with pdadmin from a remote server.
Otherwise, if you are on virtual appliances (and this works with containers the same), you need to use the REST API.
curl --location --request POST 'https://LMI-hostname/isam/pdadmin' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--user 'username:password' \
--data-raw '{
"admin_id": "sec_user",
"admin_pwd": "sec_password",
"admin_domain": "default",
"commands": [
"acl find example",
"user show example",
"object show /WebSEAL/example.acme.org/example"
]
}'
Start here and filter by pdadmin:
https://www.ibm.com/docs/en/sva/10.0.8?topic=developing-rest-api-documentation
As far as reading the file in for curl, you'll have to pragmatically do that. Personally I use Python requests to make these calls. If you're good with Python or some other language, you can mimic the old pdadmin binary functionality but using the REST API.
You can also use ibmsecurity/isam/web/runtime/pdadmin.py to help with Python coding, or use their Ansible ibm.isam collection to accomplish the same task.
The only other way I am aware of via the virtual appliance is via the CLI using isam admin, however as far as I know there is no way to feed a file into that since you would somehow have to get it on the virtual appliance before doing it.
The official way which works in all situations is to use the REST API. Note the REST API result will come back in a JSON blob with a key of result, and you'll need to decode it to turn the special characters like > back, and then replace \n with a newline.
------------------------------
Matt Jenkins
------------------------------