Nota del autor

Si la entrada que estás leyendo carece de imágenes, no se ve el vídeo que teóricamente lleva incrustado o el código fuente mostrado aparece sin formato, podéis conocer los motivos aquí. Poco a poco iré restableciendo la normalidad en el blog.
Este blog es un archivo de los artículos situados previamente en Lobosoft.es y ha dejado de ser actualizado. Las nuevas entradas pueden encontrarse en www.lobosoft.es. Un saludo,
Lobosoft.

jueves, 26 de marzo de 2009

Cierre la puerta al salir

Hay ocasiones en las que es necesario impedir que un ordenador sea reiniciado o apagado de forma involuntaria,  sin llevar a cabo una serie de tareas, generalmente de mantenimiento o de seguridad (copias de respaldo, "limpieza" con herramientas del tipo de CCleaner). Puede ocurrir, simplemente, que deseemos programar estas tareas para que se ejecuten al final del uso diario de nuestros equipos, o bien prevenir posibles olvidos por nuestra parte.



Ante casos así, podemos echar mano de los scripts de Windows (Windows Script File .WSF, para Windows Script Host). Estos ficheros, muchos los conoceréis, albergan un script en algún lenguaje común (VBScript, JScript, Perl…), y permiten automatizar diversas tareas dentro de entornos Windows. Hasta cierto punto, guardan diversas similitudes con los scripts de NAnt y similares, que vimos en días pasados, aunque el uso que podemos dar a los mismos es ciertamente distinto.

Un script muy básico, que ejecutaría el shutdown.exe –a, podría ser el siguiente:



[?XML version="1.0"?]
[?job error="true" debug="true"?]
[job id="StopShutdown"]
[script language="VBScript"]
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run("%windir%\system32\shutdown.exe -a")
[/script]
[/job]

Se trata de un XML al que he cambiado por [ y ], para que se visualice correctamente en el blog. Para utilizarlo basta con volver a reemplazar estos signos por los originales, y guardar el archivo con extensión .WSF. Para ejecutarlo bastaría hacer doble click sobre el mismo. Con un script de este tipo conseguiríamos lo mismo que con un acceso directo a dicha herramienta, con el mencionado parámetro: detener el reinicio de nuestro sistema, cuando se ha ejecutado un shutdown, o se ha procedido a iniciar un reinicio de sistema (siempre que lleguemos a tiempo, claro está).


Ahora bien, ¿cómo conseguimos que nuestro script “abortareinicios” se ejecute al apagar el ordenador? Basta, simplemente, con incluir el script dentro de la lista de scripts de inicio y finalización del sistema, en las políticas de grupo, para este usuario. Así, ejecutamos gpedit.msc desde Inicio->Ejecutar, y tendremos ante nosotros el cuadro de diálogo Group Policy (Directiva de Equipo Local). Dentro de User Configuration, Windows Settings, Scripts (Logon/Logoff), hacemos doble clic en Logoff, e incluimos el script que acabamos de crear. Guardamos los cambios y probamos a reiniciar el equipo. A ver qué pasa ;) .




Pues, ciertamente, que el ordenador se apaga. Sin embargo, si os decidís a probarlo (este, u otro script cualquiera), observaréis cómo Windows procede, durante el apagado o el reinicio, a llevar a cabo una nueva fase de ejecución de scripts de cierre. Cuando ha llegado a esta fase, me temo, ya no es posible dar marcha atrás al proceso de apagado, pero sí podemos usar los scripts para llevar a cabo otras tareas de finalización.


Ahora bien, ya por curiosidad malsana, ¿se os ocurre algún modo de impedir el reinicio indebido del sistema por parte de los usuarios?


Para saber más:




No hay comentarios:

Publicar un comentario