'?> CreaParametro("@tipoaccion",0,1); $cmd->CreaParametro("@idtipoaccion",0,1); $cmd->CreaParametro("@descriaccion","",0); $cmd->CreaParametro("@idordenador",0,1); $cmd->CreaParametro("@ip","",0); $cmd->CreaParametro("@sesion",0,1); $cmd->CreaParametro("@parametros","",0); $cmd->CreaParametro("@fechahorareg","",0); $cmd->CreaParametro("@estado",0,1); $cmd->CreaParametro("@resultado",0,1); $cmd->CreaParametro("@idcentro",0,1); $cmd->CreaParametro("@idprocedimiento",0,1); $cmd->CreaParametro("@descripcion","",0); $cmd->CreaParametro("@idcomando",0,1); $cmd->CreaParametro("@idtarea",0,1); $cmd->CreaParametro("@ambito",0,1); $cmd->CreaParametro("@idambito",0,1); $cmd->CreaParametro("@restrambito","",0); $cmd->CreaParametro("@ordprocedimiento",0,1); $cmd->CreaParametro("@ordtarea",0,1); if($ambito==0){ // Ambito restringido a un subconjuto de ordenadores con formato (idordenador1,idordenador2,etc) $cmd->ParamSetValor("@restrambito",$idambito); $idambito=0; } $resul=true; /*-------------------------------------------------------------------------------------------------------------------- Switch de ejecución inmediata y de seguimiento --------------------------------------------------------------------------------------------------------------------*/ if($sw_ejya=='on' || $sw_ejprg=="on" ){ $parametros=$funcion.$atributos; $aplicacion=chr(13)."ido=".$cadenaid.chr(13)."mac=".$cadenamac.chr(13)."iph=".$cadenaip.chr(13); if($sw_seguimiento==1 || $sw_ejprg=="on"){ // Switch de ejecución con seguimiento o comando programado $sesion=time(); $cmd->ParamSetValor("@tipoaccion",$EJECUCION_COMANDO); $cmd->ParamSetValor("@idtipoaccion",$idcomando); $cmd->ParamSetValor("@descriaccion",$descricomando); $cmd->ParamSetValor("@sesion",$sesion); $cmd->ParamSetValor("@idcomando",$idcomando); $cmd->ParamSetValor("@parametros",$parametros); $cmd->ParamSetValor("@fechahorareg",date("y/m/d H:i:s")); if($sw_ejprg=="on") // Switch de ejecución con programación (se para el comando tarea para lanzarlo posteriormente) $cmd->ParamSetValor("@estado",$ACCION_DETENIDA); else $cmd->ParamSetValor("@estado",$ACCION_INICIADA); $cmd->ParamSetValor("@resultado",$ACCION_SINRESULTADO); $cmd->ParamSetValor("@ambito",$ambito); $cmd->ParamSetValor("@idambito",$idambito); $cmd->ParamSetValor("@idcentro",$idcentro); $auxID=explode(",",$cadenaid); $auxIP=explode(";",$cadenaip); for ($i=0;$iParamSetValor("@idordenador",$auxID[$i]); $cmd->ParamSetValor("@ip",$auxIP[$i]); $cmd->texto="INSERT INTO acciones (idordenador,tipoaccion,idtipoaccion,descriaccion,ip, sesion,idcomando,parametros,fechahorareg,estado,resultado,ambito,idambito,restrambito,idcentro) VALUES (@idordenador,@tipoaccion,@idtipoaccion,@descriaccion,@ip, @sesion,@idcomando,@parametros,@fechahorareg,@estado,@resultado,@ambito,@idambito,@restrambito,@idcentro)"; $resul=$cmd->Ejecutar(); //echo "
".$cmd->texto; } $acciones=chr(13)."ids=".$sesion.chr(13); // Para seguimiento } if (!$resul){ echo ''; } else{ if($sw_ejya=='on'){ // Envio al servidor $shidra=new SockHidra($servidorhidra,$hidraport); if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra $parametros.=$aplicacion; $parametros.=$acciones; //echo $parametros; $resul=$shidra->envia_comando($parametros); if($resul) $trama=$shidra->recibe_respuesta(); if($resul){ $hlonprm=hexdec(substr($trama,$LONCABECERA,$LONHEXPRM)); $parametros=substr($trama,$LONCABECERA+$LONHEXPRM,$hlonprm); $ValorParametros=extrae_parametros($parametros,chr(13),'='); $resul=$ValorParametros["res"]; } $shidra->desconectar(); } if (!$resul){ echo ''; } else{ echo ''.chr(13); } } } } /*-------------------------------------------------------------------------------------------------------------------- Switch de creación o inclusión en procedimiento --------------------------------------------------------------------------------------------------------------------*/ if($sw_mkprocedimiento=='on' || $sw_mktarea=='on'){ $resul=false; if($idprocedimiento==0 || $sw_mktarea=='on'){ // Nuevo procedimiento o Tarea if($sw_mktarea=='on' && empty($nombreprocedimiento)){ // Si tarea con inclusión de procedimiento... if(!empty($nombretarea)) $nombreprocedimiento="Proc($nombretarea)"; // .. tarea nueva else $nombreprocedimiento="Proc($idtarea)"; // .. inclusión en tarea } $cmd->ParamSetValor("@descripcion",$nombreprocedimiento); $cmd->ParamSetValor("@idcentro",$idcentro); $cmd->texto="INSERT INTO procedimientos(descripcion,idcentro) VALUES (@descripcion,@idcentro)"; $resul=$cmd->Ejecutar(); if($resul){ if($idprocedimiento==0) // Cambia el identificador sólo si es nuevo procedimiento $idprocedimiento=$cmd->Autonumerico(); if($sw_mktarea=='on') $idprocedimientotarea=$cmd->Autonumerico(); // Identificador para la tarea; } } if( $idprocedimiento>0 || $sw_mktarea=='on'){ // inclusión en procedimiento existente $cmd->ParamSetValor("@idprocedimiento",$idprocedimiento); $cmd->ParamSetValor("@idcomando",$idcomando); $cmd->ParamSetValor("@ordprocedimiento",$ordprocedimiento); $parametros=$funcion.$atributos; $cmd->ParamSetValor("@parametros",$parametros); $cmd->texto="INSERT INTO procedimientos_acciones(idprocedimiento,orden,idcomando,parametros) VALUES (@idprocedimiento,@ordprocedimiento,@idcomando,@parametros)"; $resul=$cmd->Ejecutar(); if($sw_mktarea=='on' && $idprocedimiento!=$idprocedimientotarea){ // Si es tarea se graba para su procedimiento independiente aunque los parametros sean los mismos $cmd->ParamSetValor("@idprocedimiento",$idprocedimientotarea); $cmd->texto="INSERT INTO procedimientos_acciones(idprocedimiento,orden,idcomando,parametros) VALUES (@idprocedimiento,@ordprocedimiento,@idcomando,@parametros)"; $resul=$cmd->Ejecutar(); } } if (!$resul){ echo ''; } else{ if($sw_mkprocedimiento=='on'){ echo ''.chr(13); } } } /*-------------------------------------------------------------------------------------------------------------------- Switch de creación o inclusión en tarea --------------------------------------------------------------------------------------------------------------------*/ if($sw_mktarea=='on'){ $resul=false; if($idtarea==0){ // Nueva tarea $cmd->ParamSetValor("@descripcion",$nombretarea); $cmd->ParamSetValor("@idcentro",$idcentro); $cmd->ParamSetValor("@ambito",$ambito); $cmd->ParamSetValor("@idambito",$idambito); $cmd->texto="INSERT INTO tareas(descripcion,idcentro,ambito,idambito,restrambito) VALUES (@descripcion,@idcentro,@ambito,@idambito,@restrambito)"; $resul=$cmd->Ejecutar(); if($resul) $idtarea=$cmd->Autonumerico(); } if($idtarea>0){ // inclusión en tarea existente $cmd->ParamSetValor("@idtarea",$idtarea); $cmd->ParamSetValor("@idprocedimiento",$idprocedimientotarea); $cmd->ParamSetValor("@ordtarea",$ordtarea); $cmd->texto="INSERT INTO tareas_acciones(idtarea,orden,idprocedimiento) VALUES (@idtarea,@ordtarea,@idprocedimiento)"; $resul=$cmd->Ejecutar(); //echo $cmd->texto; } if (!$resul){ echo ''.chr(13); } else{ echo ''.chr(13); } } /* Programación del comando */ if ($resul){ if($sw_ejprg=="on" ){ echo ''; } } ?>