Hi!
It seems you used && believing it was a logical OR, but it means logical AND. Change this to ||, which is logical OR. You can try it like this first (unless you already have):
create upm profile MnLinkUp
enable cli scripting
IF (!$MATCH($http://EVENT.LOG_COMPONENT_SUBCOMPONENT,http://vlan.msgs) && !$MATCH($http://EVENT.LOG_EVENT,portLinkStateUp)) THEN
IF (!$MATCH($http://EVENT.LOG_PARAM_0,1:9)) THEN
enable port 1:15
ENDIF
ENDIF
ENDIF
If downing port 1:9 brings up 1:15, the script works on a basic level. From there, you can add more ports and see if the script still works.
I saw the IF was incorrectly formatted with the ending parenthesis (violation ")" highlighted with space):
IF (!$MATCH($http://EVENT.LOG_PARAM_0,1:9) ) && !$MATCH($http://EVENT.LOG_PARAM_0,2:9) && !$MATCH($http://EVENT.LOG_PARAM_0,2:10) THEN
change to:
IF (!$MATCH($http://EVENT.LOG_PARAM_0,1:9) && !$MATCH($http://EVENT.LOG_PARAM_0,2:9) && !$MATCH($http://EVENT.LOG_PARAM_0,2:10)) THEN
You need to move one parenthesis from (!$MATCH($http://EVENT.LOG_PARAM_0,1:9)) to just before THEN.
/Fredrik