If you're accustomed to using "shell" commands from within your SAS programs (using the
X command or
SYSTASK statement, for example), you'll find that those statements won't work when you run your program from within SAS Enterprise Guide. When you try them, you will probably see one of the following error messages:
ERROR: Shell escape is not valid in this SAS session.
ERROR: Insufficient authorization to access SYSTASK COMMAND.
Out of the box, when SAS is configured for use by a client application like SAS Enterprise Guide, the shell command access is disabled through use of the -NOXCMD system option. Why? Well, in a distributed computing environment, your system administrators probably do not want SAS Enterprise Guide users to have full access to the shell environment on the host server.
If your SAS workspace is on a central server, you have just a couple of options:
- Use a custom task to run system commands on your local Windows machine, if that's what you need to do.
- Petition your system administrator to specify -ALLOWXCMD on the central workspace server. Good luck!
This same configuration applies even when using SAS Enterprise Guide with the SAS that's installed on your very own desktop. You might argue, "But it's
my desktop machine! I should be able to run commands on
my own machine." To which I would reply, "You're right!".
You can change the registered SAS command that SAS Enterprise Guide uses in order to remove the -NOXCMD startup option. But since this involves
unseemly interaction with the Windows registry, you might prefer to use a tool that does this for you. I've placed
such a tool here. (It's a ZIP file that contains a program and a ReadMe.txt file with instructions.)
This tool displays the currently registered SAS command and allows you to change it. In addition to allowing you to modify the SAS command startup options, you can use the tool to help synchronize the registered SAS command on a 64-bit Windows platform so that it can be used by a 32-bit process (such as SAS Enterprise Guide).