1. A method of controlling the execution of a executable file on a computer system, the method comprising: intercepting a system service during an attempted execution of the executable file; examining an ordered set of authorization rules to determine whether it is permissible to execute the executable file, the ordered set of rules describing allowed targets, objects, and schedules, wherein allowed targets includes a list of allowed users or computer systems, allowed objects includes a list of permitted executables, each uniquely identifiable, and whether user authorization is permitted, and allowed schedules includes a list of conditions under which an execution is allowed; applying a stored permission to determine whether or not to execute the file, if there is a rule in the set with a matching target, object, and applicable schedule; determining whether or not there is a local authorization rule, a matching target and applicable schedule, if there is no rule with a matching target, object and applicable schedule; applying a recorded decision to determine whether or not to execute the file, if there is a local authorization rule, a matching target and applicable schedule and there is a record of the current executable; and obtaining input from the user to determine whether or not to execute the file, and storing the input in the local authorization rule for the executable, if there is no recorded decision; and invoking the intercepted service, if there is permission to execute the file.