My Experience:
Generally I like the possibility to run scripts from the GUI.
But to be honest, I am not 100% happy with the implementation.
The way adding jobs to the "recent tasks list" makes it a bit uncomfortable to find the results.
I would like to see the results directly after executing the job.
Additionally there is some kind of time lag between the finish time of the job and the time when you can see the result.
I often click in the result and it is not showing what I expect to see. A few seconds later, the result shows my expected output.
More over I don't like the need to close the repository window before you are able to open the "recent tasks list" and check the results or selecting a different gateway to run the selected script on.
Why not implementing the repository window like the object explorer where you can click things in the background - like the "recent tasks list" - while the window remains opened.
Let me share my first two scripts:
PINJ Installer - A script to install Packet Injector to a R80 gateway
#!/bin/bash
curl_cli -o /home/admin/pinj.tgz ftp://someressources/pinj_v1.4.6_R80.10.tgz
tar -zxvf /home/admin/pinj.tgz
rpm -ihv CPPinj-R80-00.i386.rpm
echo "export PATH=$PATH:/opt/CPPinj-R80/" >> /home/admin/.bashrc
rm /home/admin/pinj.tgz CPPinj-R80-00.i386.rpm
PINJ Executor NON-VSX - A script to execure packet injector on a non-vsx gateway
##################################
#Arguments: <SRC-IP> <DST-IP> <dport> <tcp|udp>
##################################
#!/bin/bash
interface=$(ip route get $1 | head -1 | rev | cut -d " " -f 5 | rev)
sp=$(( RANDOM % (65535 - 1025 + 1 ) + 1025 ))
echo "Command: /opt/CPPinj-R80/pinj --sport $sp --dport $3 --protocol $4 -I $interface $1 $2"
/opt/CPPinj-R80/pinj --sport $sp --dport $3 --protocol $4 -I $interface $1 $2 2>/dev/null
Since I start trying more complex scripts like a "Deployment agent offline updater" I experience some problems with timeouts or something like this.
But I have to dig deeper before getting more concrete.