No funciona el depurador de IE11: error en JSPlugin.3005

Me ha pasado en el trabajo: el depurador de Internet Explorer 11 no funciona. Y lo necesito porque estoy depurando una aplicación web que utiliza ActiveX y tiene que funcionar en Explorer. Pero al pulsar F12 e intentar usar el inspector de código veo un error, encabezado por

Exception in window.onload: Error: An error has ocurredJSPlugin.3005

Parece que es un error típico en Windows 7 si se actualiza directamente de IE8 a IE11. Las soluciones son:

  • Desinstalar actualizaciones para volver a la primera versión de IE del sistema operativo y, tras eso, primero actualizar a IE10 y luego a IE11.
  • Ir a la web de Microsoft, buscar la última actualización se seguridad de IE e instalarla. Os pondría un link, pero puede que haya cambiado cuando lo leáis, así que mejor buscadla.

Utilizar ctrl + alt +del en una sesión de escritorio remoto de Windows

Seguro que te ha pasado alguna vez, estás conectado a un servidor Windows por medio de escritorio remoto y necesitas pulsar ctrl+alt+del (o en en teclados españoles ctrl+alt+supr), pero si lo haces se ejecuta en tu equipo, no en el remoto. ¿Cómo conseguir lo que quieres? Pues cambiando el del por end. Es decir, debes pulsar ctrl+alt+end (o con teclado en español ctrl+alt+fin). Sin más, así de simple.

Abrir el escritorio remoto de Windows como administrador desde línea de comandos

Esta mañana me topaba con un problemilla técnico al intentar conectar remotamente con un servidor: me decía que dicho servidor no podía servir más licencias de escritorio remoto. ¡Cáspita, qué contrariedad! (eso último ha sido muy Roberto Alcázar) ¿cómo lo solucionamos?

Si lanzamos una consola de comandos podemos utilizar el comando mstsc para abrir el servicio de escritorio remoto y pasarle determinadas opciones. La clave para lo que tenía que hacer era usar el parámetro /admin.

La sintaxis de mstsc es la siguiente: mstsc [<connection file>] [/v:<server[:port]>] [/admin] [/f[ullscreen]] [/w:<width>] [/h:<height>] [/public] | [/span] [/edit «connection file»] [/migrate] [/?]

En la web de Microsoft podéis mirar más información sobre todas las opciones comentadas arriba.

Vamos con un ejemplo práctico basado en el caso que os decía antes. Vamos a suponer que la dirección del servidor al que hay que conectarse sería la 192.168.100.7 ¿cómo lo haríamos con mstsc?

mstsc /v:192.168.100.7 /admin

De esta forma ya entraríais al servidor con credenciales de administrador, desbloqueando el problema del servicio de licencias.

Configurar puerta de enlace en Windows por línea de comandos

Me acabo de encontrar con un problema en un equipo con Windows 7 Pro: cada vez que este se enciende o reinicia pierde la puerta de enlace y hay que configurársela. ¿Por qué? Ni idea, pero es un coñazo. ¿Solución? He probado con el comando route add a configurar la puerta de enlace y ha funcionado. ¿Cómo se hace? Muy sencillo, desde un terminal con el comando route add -p 0.0.0.0 mask 0.0.0.0 y la ip de la puerta de enlace:

#Ejemplo práctico
#Supongamos que la puerta de enlace
#es la ip 192.168.1.1
#que es una dirección típica

route add -p 0.0.0.0 mask 0.0.0.0 192.168.1.1

En la web de Microsoft hay más información sobre el uso de route add, aquí sólo os explicaré que para este caso le ponemos la ip 0.0.0.0 y la máscara 0.0.0.0 para especificar que todas las IP pasen por la puerta de enlace definida al final. El comando route add nos permitiría definir varias puertas de enlace para varios rangos de ip sirviéndonos de esos parámetros. Pero eso son temas que ya tocaremos en el futuro.

Sincronizar y copiar carpetas con robocopy

El otro día hablábamos sobre sincronizar carpetas con rsync y hoy vamos a ver cómo  hacer lo mismo con robocopy. Se trata de un programa similar a rsync pero para Windows.

Para copiar archivos entre dos ubicaciones ejecutamos robocopy con el parámetro /E para realizar la copia recursiva:

robocopy C:\carpeta_origen C:\carpeta_destino /E

Si lo que queremos es que las carpetas se sincronicen y se borren los archivos que se eliminaron también en el origen entonces el parámetro sería /MIR (de mirror):

robocopy C:\carpeta_origen C:\carpeta_destino /MIR

#otra opción sería
robocopy C:\carpeta_origen C:\carpeta_destino /E /PURGE

Y para copiar los archivos con todos sus metadatos:

robocopy C:\carpeta_origen C:\carpeta_destino /E /COPYALL

Incluso tenemos la opción de que se borren los archivos del origen cuando se termine la copia:

robocopy C:\carpeta_origen C:\carpeta_destino /E /move

Hay un gran número de parámetros a utilizar, así que os dejo también un enlace a la web de Microsoft donde están recogidos y explicados todos.

FTP en línea de comandos

El otro día me encontraba instalando un servidor con varias instancias virtualizadas de Windows 2k12, que por cuestiones de rendimiento iban sin entorno gráfico (el llamado modo Server Core). Necesitaba descargar una serie de archivos desde un servidor FTP, así que tuve que recurrir a la línea de comandos… y eso me recordó que nunca habíamos tocado aquí el tema.

Para conectar el ftp basta con teclear en la consola ftp seguido de la dirección del servidor al que nos queremos conectar. Por ejemplo:

ftp servidordeprueba.com

Tras eso nos debería pedir usuario y contraseña (o no, eso depende de la configuración del servidor, pero lo normal es que sí). Una vez conectados disponemos de los siguientes comandos para trabajar:

  • ls o dir: Dependiendo de si estamos en un entorno Unix o Windows. Nos listará los archivos existentes en el directorio.
  • cd: Tanto en Unix como en Windows es el comando que se utiliza para navegar entre carpetas.
  • pwd: Si de tanto usar el cd te pierdes y nor recuerdas en qué directorio estás, este comando te lo dirá.
  • status: Nos informa del estado de nuestra conexión con el servidor.
  • open: Si se cierra tu conexión ftp, si quieres cambiar de servidor o si al ejecutar el comando ftp no has puesto a qué servidor te conectas, este comando va seguido de la dirección del servidor con el que queremos conectar.
  • binary: Aplicando este comando definimos que los datos que se descargarán vendrán serán un archivo binario (ejecutables, imágenes, vídeos, audio). Hay otro modo, del que hablaremos a continuación, para archivos de texto. No es recomendable descargar archivos binarios en modo texto, ya que probablemente se corrompan.
  • ascii: Al igual que binary define el tipo de archivo que descargaremos. Se recomienda para archivos txt,htm, html, css,asp, vbs, js, xml, php… en fin, todo lo que sea texto plano.
  • get: Es el comando utilizado para descargar desde el servidor. La sintaxis es get nombreDeArchivo rutaDondeLoGuardaremos. Si no ponemos ruta de destino lo descargará en el directorio en el que estamos. Existe la variable mget que nos permite descargar múltiples archivos, o reget para reiniciar una descarga cortada.
  • put: Lo contrario que el anterior, la sintaxis es similar, pero en este caso en lugar de descargar desde el servidor subimos archivos al mismo.
  • rename: Nos permite renombrar un fichero del servidor.
  • delete: El nombre es bastante intuitivo, ya que sirve para borrar ficheros del servidor. No funciona con carpetas. Mucho cuidado al usarlo, no vaya a ser que borres lo que no debieras.
  • mdelete: Como delete, pero con la diferencia es que borra varios archivos en lugar de uno. Basta con ponerlos todos, separados por espacios.
  • rm: Si lo que quieres es borrar una carpeta, este es tu comando. Sólo funciona con carpetas vacías, así que tendrás que borrar antes los ficheros que contiene.
  • chmod:Un viejo conocido para los usuarios de UNIX. El comando chmod nos permite modificar los permisos de lectura y escritura de un archivo o carpeta.
  • Finalmente bye y quit nos permiten salir del ftp para volver a la consola de comandos.

Y en caso de usar un sistema linux el comando ! nos permitirá ejecutar comandos en nuestra shell sin salir del ftp. Basta con usar ! seguido de un comando.

Existen más comandos y opciones, pero estos son los más usados y básicos. Puedes ver información sobre el resto usando el comando HELP

Incluir java en el PATH de Windows

Aunque no siempre es necesario, a veces nos tocará modificar la variable PATH de Windows y añadir la ubicación de Java para utilizar algún software concreto.

Todavía no he tenido que hacerlo en Windows 10, pero os comento cómo va la coas en Windows 8 y Windows 7. Voy a omitir XP porque al estar descontinuado no es cosa de darle soporte (de hecho la propia Oracle no asegura el funcionamiento de las últimas versiones de Java, aunque con el SP3 funciona de momento).

Vamos con las instrucciones para Windows 7:

  1. Abrimos el menú de inicio y hacemos click derecho sobre Equipo y, en el menú contextual seleccionamos Propiedades del Sistema.
  2. Hacemos click en Configuración avanzada del sistema -> Opciones avanzadas.
  3. Hacemos click en Variables de entorno, allí en Variables del sistema, buscamos PATH y hacemos click en él.
  4. En la ventana Editar, modificamos PATH agregando la ubicación de java en nuestro equipo al valor de PATH.

Y ahora las instrucciones para Windows 8:

  1. Hacemos click en Búsqueda y buscamos Panel de control
  2. Ahí hacemos click en Panel de control -> Sistema -> Opciones avanzadas
  3. Ahí vamos a Variables de entorno, y ahí en Variables del sistema, buscamos PATH y hacemos click en él.
  4. En la ventana Editar, modificamos PATH agregando la ubicación de java en nuestro equipo al valor de PATH.

En cuanto lo tenga que hacer en Windows 10 os lo agrego por aquí.

Conocer los datos de nuestra memoria RAM en Windows

Me acabo de pillar un ultrabook de segunda mano, que viene con Windows 7 instalado (estoy dilucidando ahora si meterle una distro derivada de Debian o pasarme a la familia Red Hat), y quería conocer qué tipo de RAM trae para ampliársela. Una opción era abrir el equipo, cosa que además en este modelo es bastante fácil, otra era mirar el administrador de dispositivos (que no nos da toda la información posible) y una tercera: tirar de consola.

El comando wmic nos ofrece informes sobre las caracterísiticas del hardware de nuestro equipo. Para el caso de la RAM podemos obtener un completo informe con él. Lanzamos un terminal ejecutando cmd y, desde allí, escribimos:

wmic memorychip

Esto nos sacará en pantalla todos los datos sobre la memoria, pero puede hacerse engorroso tener esta presentación (es más, en mi equipo era totalmente ilegible), por lo que podemos lanzar el comando de forma que la salida esté dirigida a un archivo de texto, que lo hará más manejable. En el ejemplo lo sacaré a un archivo .txt en la carpeta Documents, vosotros usad la ruta y el nombre que queráis:

wmic memorychip > Documents\informememoria.txt

De esta forma tendréis la información más ordenada y usable. Y tras esto

Crear pendrive booteable con Hirens desde Ubuntu

En su día ya hablé de Hirens (ya es un artículo antiguo), una suerte de «caja de herramientas» (o «kit de primeros auxilios» o «navaja suiza«, te haces una idea) para realizar reparaciones. La verdad es que nunca había creado un pendrive booteable ya que siempre tengo un cd a mano en todos los lugares donde trabajo, pero hoy me enfrentaba a la reparación de un equipo con sectores dañados del disco duro y no tenía ninguno a mano. No es complicado crear el pendrive, pero tiene un par de cosillas. Os cuento el proceso:

Lo primero, como no, es descargar la ISO del Hiren’s . Ese zip incluye un .exe que podrás usar para crear un cd arrancable en Windows, pero para este caso estamos en Ubuntu (para más señas Kubuntu, con escritorio KDE) así que sólo extraeremos el archivo de imagen de cd .iso para trabajar.

Necesitamos un pendrive de, al menos, 1 GB que esté formateado en FAT32. En mi caso le di formato usando el Gestor de Particiones de KDE, usad lo que estéis más acostumbrados a usar.

Con el pendrive ya formateado basta lanzar UNetbootin, seleccionar como origen la imagen .iso del Hirens y como unidad destino el pendrive recién formateado en FAT32. En cuestión de pocos minutos el pendrive debería estar listo… o casi.

Me pasó que al arrancar desde el USB el equipo a arreglar no me aparecían todas las opciones del Hirens. Aparecía la que necesitaba pero al ejecutarla… no cargaba. Fue como ¿qué coño está pasando?¿por qué no va?¿y dónde está el MiniXP?. Tras un par de búsquedas por foros me encuentro con que me queda un paso para terminar. Volví a conectar el pendrive a mi equipo, me metí a explorar las carpetas del pendrive y dentro de HBCD (la deberíais encontrar ya dentro de la raíz) encontré el archivo isolinux.cfg, que es el que necesitaba. Basta con copiar este archivo en la carpeta superior (la que sería la principal del pendrive) y cambiarle el nombre por syslinux.cfg, borrando previamente el archivo que había allí con ese mismo nombre. Tras este cambio Hiren’s arrancará normalmente con todas sus opciones, y ya podéis cacharrear por el equipo.

Windows Explorer de repente no funciona como cliente FTP en Windows 7

Era complicado ponerle un título a esto, pero es algo que me encontré por la mañana. Un cliente estaba trabajando con una aplicación web para Internet Explorer que debía abrir una carpeta de un servidor FTP, funcionaba bien en todos los equipos de una red menos en uno (pulsabas un enlace de la aplicación y se abría en Explorador de Windows en la carpeta FTP), así que fuera lo que fuera era algún problema local de ese equipo. Probé de todo pero nada parecía funcionar, aunque poco a poco tachaba cosas de la lista hasta llegar a una conclusión: por algún motivo Windows Explorer no quería funcionar como cliente FTP.

Probé cambiando varias entradas en el registro, probé diversas configuraciones y al final, tras mucho darle a Google encontré esta solución: crear una entrada en el registro de Windows. La cosa consiste en copiar el texto de abajo y guardarlo en un archivo con la extensión .reg, y luego ejecutar dicho archivo para que la entrada se añada. Con esto la cosa volvió a funcionar perfectamente.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\ftp]
@="URL:File Transfer Protocol"
"AppUserModelID"="Microsoft.InternetExplorer.Default"
"EditFlags"=dword:00000002
"FriendlyTypeName"="@C:\\Windows\\system32\\ieframe.dll,-905"
"ShellFolder"="{63da6ec0-2e98-11cf-8d82-444553540000}"
"Source Filter"="{E436EBB6-524F-11CE-9F53-0020AF0BA770}"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\ftp\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,75,00,72,00,\
6c,00,2e,00,64,00,6c,00,6c,00,2c,00,30,00,00,00
[HKEY_CLASSES_ROOT\ftp\shell]
@="open"
[HKEY_CLASSES_ROOT\ftp\shell\open]

¿Y por qué había dejado de funcionar el Windows Explorer como cliente FTP por defecto? Pues tras instalar Google Chrome y definirlo como navegador por defecto este había cambiado también la configuración del cliente FTP por defecto del equipo. Tras la ejecución del cambio en el registro todo volvió a funcionar con normalidad.