Scripts help with a good amount of automation. Most administrators that I have come across like to create self-contained scripts. However, this means that you have to hardcode a lot of information that you may not want someone to read, such as passwords or keys. This is a limitation with scripts that contain everything in them. Of course, another way to handle such a situation is to use secure files such as a CLI XML with the password or key stored as a secure string, which will work only on that computer, only with your sign-in. But then, what if someone else wanted to use your script with their credentials?
You get the point. Hardcoding certain things is not a very flexible way to do this—it kills modularity. The other option available to us is to prompt the user for such information. But what if you were writing a script to be used unattended...