In respect to computers, you can only use ausführen, which means to execute a script, program etc.
In general, ausführen is much broader in sense and carries a lot of meanings that aren't covered by durchführen. These are basically to export products or commodities, to invite somebody and to take them out, and to explain something.
Their overlapping senses is if you've planned something and you carry that out. In that case you use durchführen and ausführen. Same applies to orders. So, basically, when you conduct an activity, you can use either one.
I can hardly say when it's more appropriate to use one over the other. Some collocations for ausführen are Arbeiten, Befehle, Tätigkeiten, Aufträge, Anweisungen, Aufgaben, while collocations for durchführen are Pläne, Experimente, Messungen, Operationen, Untersuchungen, Kontrollen. But you can usually swap them without even changing the slightest connotation. I guess that sounds a bit disappointing, but it's hard to grasp any real difference — or at least to express it in words.