Software AG Products 10.7 | Integrating On-Premises and Cloud Applications | Integration Server Built-In Services | Utils Folder | Summary of Elements in this Folder | pub.utils:executeOSCommand
 
pub.utils:executeOSCommand
WmPublic. Executes an operating system command such as dir in Windows or ls in UNIX.
CAUTION:
Use the pub.utils:executeOSCommand service with extreme caution; the commands can affect the production systems where Integration Server is running.
Parameter Settings for OSCommands.cnf file
The OSCommands.cnf configuration file in the Integration Server_directory \instances\instance_name\packages\WmPublic\config directory contains parameters that Integration Server uses to provide validation checks to make the pub.utils:executeOSCommand service secure.
Note:
If you make any changes to the OSCommands.cnf, you must reload the WmPublic package or restart Integration Server for the changes to take effect.
For security reasons, the pub.utils:executeOSCommand service checks the input command parameter against the list of allowedOSCommands in the OSCommands.cnf file. The service also checks the input workingDirectory parameter against the list of allowedWorkingDirectories. If the input command or directory is not on the allowed list, the service throws an exception.
Parameter Settings
The following table shows the parameter settings for the OSCommands.cnf file:
Parameter
Description
allowedOSCommands
List of commands that can be executed using the pub.utils.executeOSCommand service. You can specify commands and command parameters. If you specify a command (example, ps), Integration Server will run any command parameter with that command (such as ps -ef or ps -aux). If you specify a particular command parameter (example, ps -ef) Integration Server will run only that command parameter, not any other parameter associated with the command (such as ps -aux).
allowedWorkingDirectories
List of directories where the allowed commands can be executed.
When modifying the parameters in the OSCommands.cnf file, keep the following points in mind:
*Use semicolon (;) as the delimiter for the allowedOSCommands and allowedWorkingDirectories parameters.
*If a command name or working directory has a semicolon (;), use backslashes (\\) before the semicolon while specifying the allowed paths.
For example, if the allowed command is cmd.exe /c c:/temp/ab;c.txt, specify it as cmd.exe /c c:/temp/ab\\;c.txt when specifying it as a parameter for the OSCommands.cnf file.
Input Parameters
command
String Command to be executed on the target operating system. You can include command parameters only if the command parameters do not contain spaces.
Important:
You must use arguments to specify all of the command parameters if any one of the parameters contains spaces.
arguments
String List Optional. All of the command parameters for the command. Add one element to the parameter for each command parameter that you specify.
environment
String List Optional. An array of strings of environment variable settings in the name=value format. Set the value to null if you want the service to use the environment of the current process as the environment for its subprocesses.
workingDirectory
String List Optional. The working directory from which the command is to be executed. Set the value to null if you want the service to use the working directory of the current process as the working directory of its subprocesses.
Output Parameters
status
String The exit value of the executed command. The value 0 (zero) indicates normal termination.
outputMessage
String Output of the executed command.
errorMessage
String Errors that occurred during command execution.
Usage Notes
To execute the dir command on Windows XP using the pub.utils:executeOSCommand, the command parameter is passed as cmd.exe /c dir and the working directory parameter is passed as c:/temp. The outputMessage parameter will contain the files of c:/temp directory.