Ejecución de comandos en el cierre de sesión

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
jesss
Mensajes: 12
Registrado: 28 Ene 2011, 18:07

Ejecución de comandos en el cierre de sesión

Mensaje por jesss »

Hola,

Tengo un script en autoit que llama a un comando para comprimir unas carpetas con winrar (por consola ejecutando el rar.exe). Por sí solo me funciona bien, pero cuando intento ponerlo al cerrar la sesión en Windows 7 no se me ejecuta la llamada.

He puesto que me guarde logs antes y después de la llamada y estos sí que se me guardan por lo que he acotado el problema a la línea:

Código: Seleccionar todo

$command_rar='"c:\Program Files\WinRAR\rar.exe" a -ef -ed -ep1 -sl'&$length_file_max&'B -x*.lnk -x*.ini -xPI_*.xml '&$dir_backup&'\'&$name_rar&' '&$dir_origen1&' '&$dir_origen2&''

Run(@ComSpec&' /c '&$command_rar,"",@SW_HIDE) 

He probado intentando pasar la salida a un fichero a través de StdoutRead y StderrRead, pero me salen en blanco cuando cierro la sesión,


Código: Seleccionar todo


Local $iPID=Run(@ComSpec&' /c '&$command_rar,"",@SW_HIDE,$STDERR_CHILD + $STDOUT_CHILD + $RUN_CREATE_NEW_CONSOLE) ; Para que se esconda la ejecución
Local $sOutput=""
While 1
	 $sOutput=StdoutRead($iPID)
     If @error Then
		ExitLoop
	EndIf
	FileWriteLine($hFileOpen, $sOutput)
WEnd
	FileWriteLine($hFileOpen, "DERR_CHILD")
While 1
	 $sOutput=StderrRead($iPID)
     If @error Then
		ExitLoop
	EndIf
	FileWriteLine($hFileOpen, $sOutput)
WEnd
Pero igual que en caso anterior, no me sale nada al cerrar, aunque manualmente sí que se ve la salida.

¿Hay alguna manera mejor de intentar ver que error puede dar al ejecutar el comando o si hay que hacer la llamada de alguna manera específica?

Muchas gracias y un saludo.
jesss
Mensajes: 12
Registrado: 28 Ene 2011, 18:07

Re: Ejecución de comandos en el cierre de sesión

Mensaje por jesss »

Hola,

Al parecer todo este rato he estado haciendo pruebas y he descubierto, que hay que utilizar el RunAs como administradorde la máquina. Entonces, sí que te lo ejecuta. "Están locos estos de Güindows" como decía cierto galo repartidor de menhires.

Un saludo y gracias por todo.

:smt030
Responder