miércoles, diciembre 06, 2006

Un filtro de páginas web algo molesto

Hace unos meses me encontré con un problema bastante interesante en cierto grupo de noticias: Tras instalar y desinstalar un producto de terceros de filtrado de contenido web, aparecía una página web cada vez que se abría un navegador de Internet. La página indicaba lo siguiente:

Your subscription isn't valid. We found the following error:

The OrangeBox Web Home service isn't running in Windows on your computer. Please reboot your computer. If this message occured after a reboot of the computer, contact your administrator.


En este artículo verá cómo llegué a la causa de la aparición de la molesta página web.

En primer lugar revisé la configuración del navegador para ver si se había agregado algún tipo de proxy a la conexión a Internet. Pero no, no se había agregado ningún proxy; además, la lista de procesos observada desde Process Explorer indicaba que no había ningún proceso residente que pudiera estar interceptando las salidas HTTP de la máquina. La causa debía estar entonces en el kernel de Windows, específicamente en algún controlador de arranque (boot driver) o similar que hubiera instalado el producto y que estaría interceptando silenciosamente las conexiones web del sistema.

En aquel momento no tenía disponible otra máquina física libre para realizar una sesión remota de depuración de kernel (live kernel debugging) y tampoco tenía muchas ganas de realizarla desde una máquina virtual. :-P Así que me dispuse a volcar la memoria del sistema afectado y "escudriñar" entre todos los datos intentando buscar alguno que me diera algo de luz sobre el problema. ¿Qué dato podría utilizar como guía? Decidí anotar la palabra "webfilter", que es la que aparecía en la URL de la barra de direcciones del navegador cada vez que se intentaba abrir una página web.

Generando un volcado de memoria

Para generar manualmente un volcado de memoria en un sistema NT se puede emplear el método descrito en este artículo de la KB de Microsoft. El controlador i8042prt.sys busca el valor "CrashOnCtrlScroll" durante su carga; si este valor tiene contenido "1", el controlador se mantiene "escuchando" en su ISR (Interrupt Service Routine) esperando la combinación de teclas Ctrl derecho+Bloq. desplazamiento+Bloq. desplazamiento. Esto hace que la función I8xProcessCrashDump haga una llamada al kernel, concretamente a la función KeBugCheckEx del fichero Ntdll.dll, lo que genera finalmente el volcado de memoria y posterior reinicio del sistema (si así está configurado en el panel Inicio y recuperación de Propiedades del sistema).

Nota: Cuando se produce un volcado de memoria, Windows examina antes el tipo de volcado que quiere el usuario. Esto se puede manejar desde el panel Propiedades del sistema, pestaña Opciones avanzadas, botón Configuración (apartado Inicio y recuperación), apartado Escribir información de depuración.

En este caso la opción elegida fue Volcado de memoria completa, lo que genera un fichero de volcado del tamaño de la RAM física del equipo. Como este fichero puede resultar demasiado grande, no siempre es necesario realizar un volcado completo de RAM, y en muchas ocasiones esto no aporta información relevante sobre la causa del problema.


Analizando con Windbg

Windbg es un depurador de Microsoft que puede ser descargado de forma gratuita desde la dirección: http://www.microsoft.com/whdc/devtools/debugging/default.mspx. Antes de utilizarlo, es importante que se configuren correctamente los símbolos del sistema.

Para configurar los símbolos en Windbg, haga clic sobre File, Symbol File Path. Si dispone de conexión a Internet durante la sesión de depuración, esta línea estándar hará que Windbg descargue al directorio C:\Websymbols los símbolos apropiados para su sistema operativo según los vaya necesitando:

SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols


Una vez que los símbolos estaban correctamente configurados, abrí el fichero de volcado desde Windbg pulsando sobre File, Open Crash Dump.

Con el fichero de volcado ya cargado en Windbg, podemos examinar la pila de llamadas en el momento que se generó el volcado de memoria. En este caso esto no resultó de demasiada utilidad, puesto que en el momento que generé manualmente el volcado de memoria el sistema estaba en estado inactivo y funcionando correctamente.

Para buscar cadenas dentro de la memoria del volcado empleé el comando "s", con el parámetro -a, que permite buscar cadenas ASCII, y con la cadena "webfilter" como parámetro de búsqueda. F7000000 y FAAAAAAA son las direcciones de inicio y fin donde quise realizar la búsqueda. Son las direcciones donde Windows comienza a cargar los boot drivers, lo que evita que el depurador tarde demasiado tiempo buscando en porciones de memoria no relevantes en este caso concreto.

El resultado de la búsqueda fue esclarecedor, en la dirección de memoria F9c8b463 estaba la cadena "webfilter/licerr..." ¡justamente la dirección web que aparecía al cargar cualquier página!

Cadena webfilter/licerr, parte de la URL que se mostraba en el navegador web.

Seguidamente quise saber a qué cosa pertenecía esa cadena. El comando !address permite realizar eso mismo:

Ya lo tenemos, el controlador Difdrv.sys es el que generaba esa molesta página web.

Como ve, era el controlador Difdrv.sys, instalado por el filtro de terceros, el que hacía aparecer esa página web de error cada vez que se accedía a Internet. En su código observé llamadas a Difsvc.exe, el servicio instalado por el filtro, con el objeto de comprobar que efectivamente estuviera iniciado. Si no lo estaba, aparecía otra web indicando de dicho percance.

Espero que les haya parecido interesante el artículo. La aplicación de filtrado descrita aquí (OrangeBoxWeb) no es demasiado conocida y las referencias son prácticamente nulas en cualquier buscador de Internet, así que espero que el artículo les permita solucionar el problema si lo experimentan en sus sistemas o, por qué no, les sirva para comenzar a familiarizarse con Windbg, un buen depurador de Microsoft.

miércoles, noviembre 29, 2006

¿Qué es la vista "Mosaicos extendidos"?

En cierto grupo de noticias me encontré con un usuario de Windows Vista que experimentaba en su sistema lo siguiente: La ubicación Equipo mostraba su contenido en una vista bastante poco conocida: La vista "Mosaicos extendidos". En este artículo conocerá un poco más acerca de esa vista y sabrá cómo recuperar la opción estándar ("Mosaicos") si experimenta este mismo problema en su PC.

La vista "Mosaicos extendidos" se trata de una modificación de la vista "Mosaicos" en la que la leyenda de los archivos cubre la ventana en la totalidad de su ancho, por tanto no hay columnas definidas. Tiene el aspecto de la siguiente figura:


Explorador de Windows configurado en la vista "Mosaicos extendidos"

¿Cómo se activa esta vista? En la opción Vistas sólo aparece Mosaicos, no Mosaicos extendidos

Para activar la vista "Mosaicos extendidos" es necesario que la carpeta en cuestión esté configurada en la vista "Mosaicos" y que además se haya agregado un folder flag a dicha carpeta. Los folder flags son valores de doble palabra que forman en su conjunto un tipo enumerado. Se encargan de manejar ciertas características adicionales de la vista de las carpetas, tales como "alinear a la cuadrícula", mostrar subcarpetas, etc. Si quiere obtener más información sobre este tipo enumerado, examine el fichero de cabecera Shobjidl.h presente en el SDK de Windows Vista.

Toda esta información se almacena en el Registro

Cuando una aplicación hace uso de la correspondiente API para habilitar ciertos folder flags (SetCurrentFolderFlags), Explorador de Windows almacena en una ruta del Registro esta información. Windows Vista, a diferencia de Windows XP, almacena la información sobre las carpetas en estas rutas del Registro: HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags y HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU. Cada subclave representa un bag o información sobre una carpeta. En concreto, los folder flags se almacenan en un valor DWORD llamado "FFlags".

Si quisiera modificar la información que se muestra en dicha vista, deberá agregar/modificar un valor de cadena llamado "ExtendedTileInfo" en ciertas partes del Registro. Este artículo no pretende entrar en detalle en este aspecto, consulte la documentación de MSDN para más información.

¿Cómo recuperar la vista Mosaicos?

Si su sistema de pronto ha empezado a mostrarle cierta carpeta en la vista "Mosaicos extendidos" y quisiera recuperar la vista "Mosaicos", siga estos pasos:

  1. Descargue Process Monitor o Regmon desde http://www.microsoft.com/technet/sysinternals/default.mspx.

  2. Ejecútelo y establezca un filtro con la siguiente palabra clave (sin comillas): "Bags". Para saber cómo establecer filtros, consulte la documentación de Process Monitor o de Regmon.

  3. Asegúrese de que la aplicación está monitorizando los accesos al Registro del sistema y abra la carpeta afectada.

  4. Obtendrá una salida como la de la figura:

En este momento ya sabe que la subclave \Bags\3 es la que mantiene la información de la carpeta afectada. Cierre todas las instancias de Explorador de Windows, abra Editor del Registro (Regedit.exe) y elimine la subclave completa o, si lo prefiere, solamente el valor "FFlags" que contenga. Windows lo creará de nuevo cuando acceda a la carpeta y cierre Explorador de Windows.

Espero que este artículo les haya ayudado a profundizar sobre una característica presente desde hace tiempo en Windows pero que no resultaba muy conocida: los folder flags. Además se ofrecen las pautas para recuperar la opción de la vista "Mosaicos" cuando sólo se muestre "Mosaicos extendidos".

lunes, noviembre 20, 2006

¿Sabía que...? [III]

Si en Windows XP hace clic con el botón derecho del mouse sobre una región libre del escritorio y selecciona Propiedades, puede observar que la pestaña Configuración tiene un espacio en blanco al final. Este espacio en blanco está presente en todas las versiones localizadas de XP y no se trata de un gazapo de alguno de los programadores. Aunque le parezca extraño, se trata de un "arreglo" para garantizar la compatibilidad con cierto software antiguo de tarjetas gráficas Matrox. Le sorprendería saber la cantidad de arreglos de este tipo que hay en el código de Windows para asegurar la compatibilidad con software algo mal diseñado pero sin embargo extendido.

jueves, noviembre 09, 2006

¡Windows Vista RTM!

Windows Vista, el último sistema operativo de Microsoft, ya ha alcanzado la fase RTM (Release to Manufacturing). Esto significa que su desarrollo ha finalizado y que en pocos días será puesto a disposición de los integradores, OEMs y clientes de licencias por volumen. Los suscriptores técnicos MSDN y Technet Plus dispondrán de la versión final en una semana aproximadamente. Por otra parte, el público general podrá adquirir Windows Vista en un equipo nuevo o individualmente a partir del 30 de enero de 2007.

lunes, octubre 30, 2006

Un problema con el horario de verano

Como sabrá, las zonas horarias de una gran parte del mundo han puesto fin recientemente al horario de verano (DST), por lo que los relojes deben retrasarse una hora. Coincidiendo con dicho cambio, recibí un mensaje como éste:

Al acceder a mi sistema he comprobado que el reloj se ha retrasado 2 horas, cuando sólo se debería haber retrasado una hora. La zona horaria es correcta y ninguna aplicación de terceros está interfierendo. ¿Qué puede ocurrir?

Esta situación es común en un equipo que tenga instalados dos o más sistemas en arranque múltiple. El sistema A se inicia, comprueba que la fecha ya no pertenece al horario de verano y procede a cambiar el desplazamiento de la zona horaria (como consecuencia el reloj se retrasa una hora). En ese momento, se inicia el sistema B, que igualmente dice "hey, debo retrasar la hora pues se ha terminado el horario de verano". Así pues, el reloj se ha retrasado dos horas.

Para evitar este comportamiento, sólo uno de los sistemas que conformen el arranque múltiple debe estar configurado para cambiar la hora al entrar o salir del horario de verano (DST): Desde Propiedades de fecha y hora, pestaña Zona horaria, desmarque la casilla Cambiar la hora automáticamente según el horario de verano.

viernes, octubre 27, 2006

Al hacer clic sobre el acceso directo a WU del menú Inicio, no ocurre nada

Hace poco tiempo recibí un par de mensajes que describían un problema algo extraño: Al hacer clic sobre Inicio, Todos los programas, Windows Update, no ocurría nada, no se abría ninguna ventana de Internet Explorer ni aparecía ningún mensaje de error. El problema me pareció interesante, así que este artículo de la bitácora describirá los detalles que me llevaron a generar una solución para el mismo.

El acceso directo a Windows Update del menú Inicio no es un simple acceso directo a una URL. Si examina detenidamente sus propiedades puede observar que realmente se enlaza con el fichero %SystemRoot%\system32\wupdmgr.exe. Este ejecutable lanza un componente DCOM encargado de abrir Internet Explorer para acceder a la dirección de Windows Update, entre otras cosas. Observe la siguiente captura en la que Process Explorer muestra que el proceso Iexplore.exe fue iniciado por un Svchost.exe que acoge al servicio "Iniciador de procesos de servidor DCOM":


Process Explorer muestra jerárquicamente la lista de procesos del sistema operativo.

El servicio "Iniciador de procesos de servidor DCOM" debe estar iniciado antes de que cualquier aplicación o servicio intente hacer uso de un componente DCOM. Si dicho servicio no está iniciado, su sistema será incapaz de arrancar componentes DCOM o servicios que requieran componentes DCOM y, consecuentemente, experimentará los síntomas descritos en este artículo (entre otros). Para iniciar el servicio, siga estos pasos:

  1. Abra Inicio, Ejecutar, escriba services.msc y pulse Aceptar.

  2. Haga doble clic sobre el servicio Iniciador de procesos de servidor DCOM.

  3. Establezca su tipo de inicio como Automático.

  4. Haga clic en Aceptar y reinicie el sistema.

Otra causa del problema

La manera en la que Wupdmgr.exe abre una instancia de Internet Explorer implica que se hagan uso de los componentes relacionados con la funcionalidad Abrir en una nueva ventana. Si dichos componentes están dañados en el Registro del sistema operativo, experimentará igualmente el problema descrito en este artículo. Para solucionarlo, eche un vistazo a este documento de la KB de Microsoft:

No puede abrir una ventana nueva de Internet Explorer o no sucede nada cuando hace clic en un vínculo

Espero que si experimentan el problema antes descrito, este artículo les ayude a solucionarlo y a comprender algo mejor por qué ocurre.

lunes, octubre 16, 2006

Hoy nace Daniel's Web

Con la inminente salida de la versión final de Windows Vista (disponible para el público general en enero de 2007), nunca está de más disponer de un sitio web que recoja las soluciones a los diversos problemas que pueden surgir en este nuevo sistema operativo. Hoy nace Daniel's Web (http://winvista.mvps.org), lo que pretende ser una referencia en lo que a documentación de soluciones a problemas con Windows Vista se refiere, todo ello en español. El sitio web irá creciendo y mejorando poco a poco con la inclusión de nuevas secciones y documentación. Espero que les resulte de utilidad. ;-)

En cuanto a la bitácora, espero preparar muy pronto nuevos artículos centrados en explicar las «entrañas» del nuevo sistema operativo de Microsoft. ¡Esté al tanto!

viernes, septiembre 15, 2006

Shell: revealed

Si le interesa el shell de Windows, probablemente le agradará echar un vistazo a Shell: revealed, un reciente blog (en inglés) mantenido por el equipo de Microsoft dedicado a la interfaz gráfica de su sistema operativo. Su dirección es http://shellrevealed.com/.

miércoles, septiembre 13, 2006

Actualizaciones de septiembre de 2006

En este artículo comento cuáles son las actualizaciones de seguridad correspondientes a septiembre de 2006. Sería aconsejable que visitara Microsoft Update (http://update.microsoft.com/microsoftupdate) para descargar las actualizaciones en este mismo momento.

Hay disponibles 3 nuevas actualizaciones de seguridad correspondientes al mes de septiembre de 2006:

Crítica

- 910729

Importante

- 919007

Moderada

- 920685

Nota: Es muy probable que no todas las actualizaciones antes citadas sean aplicables a su sistema operativo y/o a las versiones de las aplicaciones que tenga instaladas. Visite Microsoft Update para que sólo se descarguen las actualizaciones apropiadas para su sistema o lea detenidamente los boletines de seguridad que acompañan a cada actualización. En las páginas que enlazo desde aquí también encontrará información detallada para saber si una cierta actualización está instalada en su sistema o no.


Para obtener información detallada sobre el boletín mensual en su conjunto visite la siguiente web de Technet: Resumen del boletín de seguridad de Microsoft de septiembre de 2006.

domingo, septiembre 10, 2006

No se pueden eliminar todos los puntos de restauración excepto el más reciente

Recientemente me he encontrado con un usuario con un problema algo extraño con Restaurar sistema: La capacidad de eliminar todos los puntos de restauración menos el más reciente -proporcionada por Liberador de espacio en disco (Cleanmgr.exe)- no funcionaba correctamente. En este artículo se detalla la causa del problema y su solución.

Síntomas

Es posible que cuando abra Liberador de espacio en disco (Cleanmgr.exe) desde una cuenta administrativa, pulse sobre la pestaña Más opciones y haga clic sobre Liberar (apartado Restaurar sistema), observe que erróneamente siguen presentes todos los puntos de restauración en el sistema.

Causa

El problema se debe a que los ficheros Srclient.dll y/o Framedyn.dll no existen, están corruptos o a que la variable de entorno Path está incorrectamente definida.

Solución

Para solucionar el problema siga estos pasos:

Nota: El siguiente procedimiento implica la manipulación del Registro de Windows. Le recomiendo que genere un punto de restauración antes de continuar.


  1. Abra Inicio, Ejecutar, escriba regedit y pulse Aceptar.
  2. Acceda a la clave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment.
  3. Observe el valor Path de la parte derecha de Editor del Registro; debe ser de tipo REG_EXPAND_SZ y contener, al menos, las siguientes rutas:
  4. %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem

    Si dicho valor no existiese -o no fuese de tipo REG_EXPAND_SZ-, elimínelo, pulse Edición, Nuevo, Valor de cadena expandible (esto es importante), escriba Path en la caja de texto que aparecerá en la ventana de Editor del Registro y pulse la tecla INTRO. Haga doble clic sobre el mismo e introduzca el contenido antes mencionado.

  5. Haga clic sobre Archivo, Salir.
  6. Introduzca el CD de Windows XP en la unidad.
  7. Abra Inicio, Ejecutar, escriba sin comillas el siguiente comando y pulse Aceptar:
  8. rundll32.exe advpack.dll,LaunchINFSection %Windir%\Inf\sr.inf

    Aviso: La ejecución del comando anterior implica la pérdida de todos los puntos de restauración almacenados en el equipo.

  9. Cuando termine la operación (no obtendrá ningún mensaje en pantalla), reinicie el sistema.

Más información

El apartado Restaurar sistema de la pestaña Más opciones de Limpiador de disco está implementado a partir de la DLL Srclient.dll. Al pulsar sobre el botón Liberar, Restaurar sistema examina el fichero Framedyn.dll perteneciente a la base WMI (Windows Management Instrumentation) y comienza a realizar una operación FIFO (First In First Out) a los puntos de restauración para completar su eliminación (excepto la del más reciente).

miércoles, septiembre 06, 2006

Windows Vista RC1 disponible

Para aquellos usuarios que se registraron en el programa CPP de Windows Vista Beta 2 les informo de que ya está disponible para su descarga la versión RC1 (Release Candidate). El número de mejoras con respecto a Beta 2 es bastante elevado, supone un paso más de Microsoft hacia la ansiada salida al mercado de su nuevo sistema operativo. Dispone de más información en la página http://www.microsoft.com/spain/windowsvista/getready/default.mspx.

domingo, agosto 27, 2006

¡Cuidado con CCleaner! y similares...

Recientemente estoy recibiendo reportes de usuarios que son incapaces de instalar actualizaciones y, sobre todo, de desinstalar versiones beta de programas de Microsoft (como el reproductor de Windows Media 11 ó IE 7 Beta 3). Según la información que recabé de esos usuarios, la aplicación CCleaner es una posible culpable, pues en su afán por liberar espacio en disco borra ciertas carpetas usadas por Microsoft para poder desinstalar esos productos. Dichas carpetas residen de manera comprimida en el directorio WINDOWS y se crean durante el proceso de actualización de la aplicación. Contienen los ficheros necesarios para restaurar la versión anterior del programa, por lo que una reinstalación no corrige el problema. Se debe restaurar el sistema a un momento anterior a su eliminación (o restaurar una copia de seguridad de la misma si el «limpiador» dejó alguna).

Este es uno de los motivos por los cuales no recomiendo «limpiar» el sistema con aplicaciones de terceros, desconocen los motivos de existencia de muchas de las carpetas del sistema operativo, imagínese lo que podría hacer en el Registro.

PD: Últimamente no ha habido mucho movimiento en la bitácora, la causa de esto es que estoy elaborando una web relacionada con Windows Vista que espero tener preparada muy pronto. :-)

miércoles, agosto 09, 2006

Actualizaciones de agosto de 2006

En este artículo comento cuáles son las actualizaciones de seguridad correspondientes a agosto de 2006. Sería aconsejable que visitara Microsoft Update (http://update.microsoft.com/microsoftupdate) para descargar las actualizaciones en este mismo momento.

Hay disponibles 12 nuevas actualizaciones de seguridad correspondientes al mes de agosto de 2006:

Críticas

- 921883

- 920683

- 918899

- 920214

- 917008

- 922616

- 921645

- 922968

- 917422

Importantes

- 921398

- 920958

- 920670

Nota: Es muy probable que no todas las actualizaciones antes citadas sean aplicables a su sistema operativo y/o a las versiones de las aplicaciones que tenga instaladas. Visite Microsoft Update para que sólo se descarguen las actualizaciones apropiadas para su sistema o lea detenidamente los boletines de seguridad que acompañan a cada actualización. En las páginas que enlazo desde aquí también encontrará información detallada para saber si una cierta actualización está instalada en su sistema o no.


Para obtener información detallada sobre el boletín mensual en su conjunto visite la siguiente web de Technet: Resumen del boletín de seguridad de Microsoft de agosto de 2006.

jueves, julio 27, 2006

Defecto del Reproductor de Windows Media 11 (Windows Vista Beta 2)

En este artículo se ofrecen los detalles de un defecto del Reproductor de Windows Media 11 incluido en Windows Vista Beta 2: Aunque el Administrador de tareas muestre un consumo nulo o ínfimo del reproductor, "por lo bajo" está modificando un determinado valor del registro ¡varias veces cada segundo! Esta es una práctica no muy deseada en el software. Me puse en contacto con el equipo de Windows Media y, afortunadamente, el problema ya está resuelto en versiones posteriores a Beta 2.

Una de las cosas que suelo realizar cuando estoy probando cierto software es observar detalladamente su rendimiento (consumo de CPU, RAM, context switches, etc.). En esta ocasión le tocó el turno al Reproductor de Windows Media 11. Con el reproductor abierto y Process Explorer configurado para mostrar la lista de procesos ordenada por incremento de context switches, me encontré con lo siguiente:


Es decir, en ese momento el proceso Wmplayer.exe estaba situado el tercero de la lista con nada más y nada menos que 286 Context Switch Delta. El consumo de CPU es claramente nulo, pero eso no indica que todo vaya bien, ¿qué estaría haciendo el reproductor para generar una cantidad tan enorme de context switches cada poco tiempo? Un primer candidato son los accesos al registro de manera continuada, lo que se conoce como registry polling, algo totalmente evitable pues el sistema operativo ya proporciona mecanismos para informar a las aplicaciones si una clave del registro cambió o no, haga clic aquí para obtener más información. Seguidamente me puse a analizar el sistema con Regmon, que esclareció totalmente el asunto:


Como ven, el reproductor estaba modificando un valor del Registro ¡decenas de veces cada segundo! Supongo que esto se debía a un error de diseño de alguna parte del reproductor. Si tiene curiosidad, el valor implicado es HKCU\Software\Microsoft\MediaPlayer\Preferences\BackgroundScanCompleteDate, que apareció por vez primera en la versión 10 del reproductor y que, con casi toda probabilidad, se encarga de llevar un control de la última vez que se ha examinado la biblioteca multimedia con el fin de rellenar sus campos. En la versión 10 del reproductor sólo se modifica ese valor una vez por ejecución de la aplicación.

Estado actual del problema

Me puse en contacto con el equipo de Windows Media y, consecuentemente, el problema ya está corregido en una versión interna, posterior a Beta 2.

Este es un ejemplo para que observe que incluso Microsoft a veces utiliza métodos no muy "elegantes" en su software que atentan contra el rendimiento del mismo. Mark Russinovich ya analizó otros casos similares en esta entrada de su blog, y esta otra.

martes, julio 18, 2006

Valor alfanumérico vs Valor de cadena expandible

Recientemente estoy recibiendo bastantes reportes de problemas originados porque ciertos valores del Registro no son del tipo correcto; generalmente lo que ocurre es que un valor que debe ser de tipo "valor de cadena expandible" es de tipo alfanumérico. Esta clase de problemas son algo más difíciles de localizar y solucionar ya que los síntomas que producen no parecen tener relación con la causa que los origina. En este artículo referencio tres problemas de este tipo que logré solucionar gracias a la información que gentilmente me proporcionaron los usuarios afectados (y algunas horas de depurador :-P).

Mensaje de acceso denegado al tratar de ejecutar cualquier archivo MSC

Este artículo mío referencia el problema y su solución.


Nota: Aunque el artículo sólo haga referencia a los archivos con extensión MSC, es bastante probable que, si obtiene un mensaje de error de "acceso denegado" similar al que se cita en la sección Síntomas del artículo al intentar abrir un fichero con cualquier otra extensión, la causa sea la misma y los pasos a seguir para solucionar el problema sean similares.



Aparece un mensaje de error al intentar abrir Directiva de grupo

Este artículo mío referencia el problema y su solución.


Nota: Si el valor Path referenciado en el artículo anterior no es de tipo REG_EXPAND, quizá el efecto más importante que percibirá es que el sistema no es capaz de encontrar ninguna herramienta como Ping, Ipconfig, etc. si éstas son invocadas desde la línea de comandos. Las herramientas están físicamente presentes en la carpeta del sistema operativo (%SystemRoot%\system32).



Mensaje de error al agregar nuevos protocolos de red

Síntomas

Es posible que en su sistema Windows XP aparezca el siguiente mensaje de error cuando intenta agregar un nuevo protocolo desde Panel de control, Conexiones de red, su conexión, Archivo, Propiedades, botón Instalar:

No se puede agregar el componente seleccionado. El error es La ruta de acceso especificada no contiene INFs de dispositivo aplicables

Solución

Siga este procedimiento:

  1. Abra Inicio, Ejecutar, escriba regedit y pulse Aceptar.

  2. Acceda a la clave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion.

  3. Verifique en el panel de la parte derecha que exista el valor DevicePath, que sea de tipo REG_EXPAND y que contenga lo siguiente: %Systemroot%\Inf. Modifíquelo o créelo de nuevo para que el valor cumpla esos requisitos.

  4. Cierre Editor del Registro y reinicie el sistema.

    En un próximo artículo de esta bitácora pienso tratar este tema con más profundidad así como proporcionar técnicas para ayudarle a descubrir este tipo de defectos en el sistema cuando experimente comportamientos anómalos, mensajes de error, etc. ¡Esté al tanto!

    jueves, julio 13, 2006

    ¿Sabía que...? [II]

    ¿Sabía que es posible abrir múltiples instancias de Editor del Registro (Regedit.exe)? Una vez tenga abierta una ventana de Editor del Registro, haga clic sobre Inicio, Ejecutar, escriba regedit -m y pulse Aceptar.

    Nota: El parámetro -m del comando Regedit.exe sólo es válido en Windows XP y Windows Server 2003.

    miércoles, julio 12, 2006

    Actualizaciones de julio de 2006

    En este artículo comento cuáles son las actualizaciones de seguridad correspondientes a julio de 2006. Sería aconsejable que visitara Microsoft Update (http://update.microsoft.com/microsoftupdate) para descargar las actualizaciones en este mismo momento.

    Hay disponibles 7 nuevas actualizaciones de seguridad correspondientes al mes de julio de 2006:

    Críticas

    - 917159

    - 914388

    - 917285

    - 917284

    - 915384

    Importantes

    - 917283

    - 917537

    Nota: Es muy probable que no todas las actualizaciones antes citadas sean aplicables a su sistema operativo y/o a las versiones de las aplicaciones que tenga instaladas. Visite Microsoft Update para que sólo se descarguen las actualizaciones apropiadas para su sistema o lea detenidamente los boletines de seguridad que acompañan a cada actualización. En las páginas que enlazo desde aquí también encontrará información detallada para saber si una cierta actualización está instalada en su sistema o no.


    Para obtener información detallada sobre el boletín mensual en su conjunto visite la siguiente web de Technet: Resumen del boletín de seguridad de Microsoft de julio de 2006.

    jueves, junio 29, 2006

    ¿Problemas con los iconos en Windows XP?

    Uno de los problemas que más a menudo he observado con respecto a la interfaz gráfica de Windows XP tiene que ver con los iconos: Iconos incorrectos o genéricos, con mala definición, demasiado grandes, etc. En este artículo verá como trabaja el shell de Windows con los iconos, y así obtendrá pautas para la resolución de problemas relacionados con este tema.

    Cuando Explorador de Windows analiza un archivo con extensión .xyz, por ejemplo, su primer lugar de búsqueda es la clave de Registro HKEY_CLASSES_ROOT\.xyz. En ella encontrará el valor (Predeterminado) que le apuntará al identificador de programa (ProgID) encargado de manejar esa extensión de archivos. El identificador de programa es una clave que pende de la rama HKEY_CLASSES_ROOT.

    Ejemplo de identificador de programa. Hace referencia a una supuesta "aplicación perfecta" que reside en nuestro sistema.

    Para mostrar el icono asociado, se lee la subclave DefaultIcon y se almacena el icono apuntado en caché.

    Si Explorador de Windows se encuentra con un valor (Predeterminado) vacío en la subclave DefaultIcon (o si esta subclave ni siquiera existe), intentará mostrar un icono basándose en la aplicación que abre la extensión implicada (HKEY_CLASSES_ROOT\AplicacionPerfecta\shell\open\command, por ejemplo). Si lo encuentra, mostrará un icono como el de la siguiente imagen (suponiendo que Bloc de notas es la aplicación que abre los archivos con extensión XYZ):

    Si el valor (Predeterminado) antes mencionado contiene una ruta incorrecta o bien el sistema operativo ha sido incapaz de asociar la extensión a un programa determinado, mostrará un icono genérico como el que aparece en esta imagen:

    Los "manejadores" de iconos (iconhandlers)

    Windows también permite que aplicaciones de terceros incluyan sus propios "manejadores" de iconos. Para lograr esto, establecen el contenido %1 en el valor (Predeterminado) de la clave HKEY_CLASSES_ROOT\AplicacionPerfecta\DefaultIcon y crean la subclave HKEY_CLASSES_ROOT\AplicacionPerfecta\Shellex\IconHandler, cuyo valor (Predeterminado) apunta al identificador de clase (CLSID) que manejará los iconos de esa extensión en concreto. El problema surge cuando ciertas aplicaciones de terceros al ser desinstaladas no eliminan estas subclaves IconHandler del Registro del sistema operativo y, como consecuencia, puede encontrarse con iconos genéricos tal y como ya se mostraron en una imagen anterior.

    Tamaño de los iconos

    El tamaño de los iconos del shell también se almacena en el Registro, concretamente en la clave HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics, valor ShellIconSize. Pero Windows ofrece un panel gráfico muy sencillo para manejar este aspecto:

    1. Abra Inicio, Ejecutar.

    2. Escriba desk.cpl y pulse Aceptar.

    3. Haga clic sobre la pestaña Apariencia.

    4. Pulse el botón Efectos.

    Si observa la casilla Usar iconos grandes, puede encontrarse con tres estados:

    El tamaño de los iconos es el estándar de Windows (32).

    El tamaño de los iconos es el establecido como "grande" por Windows (48).

    El tamaño de los iconos es cualquier otro valor.

    Si observa que los iconos tienen mala definición (poca cantidad de colores, etc.), utilice este fichero REG cortesía de Kelly Theriot [MS MVP] y a continuación reinicie el sistema.

    Actualizar los iconos modificados

    Si ha actualizado algún icono desde el Registro de Windows es posible que no observe inmediatamente los cambios realizados. También es posible que se encuentre con un icono procedente de la caché (es decir, antiguo), cuando alguna aplicación lo ha sustituido por otro más vistoso (véase este artículo mío de soporte técnico para más información). En estos casos le puede venir bien volver a generar la caché de iconos. Utilice alguno de estos dos métodos (por orden de preferencia).

    Método 1

    Reinicie el sistema o bien cierre y vuelva a iniciar sesión. Este procedimiento es el idóneo cuando ha cambiado el icono de una extensión desde el Registro de Windows (no es aplicable cuando se cambia el icono de la extensión desde Opciones de carpeta, Tipos de archivo).

    Método 2

    Emplee la aplicación Tweak UI:

    1. Descárguela desde este sitio web.

    2. Instálela como si fuera una aplicación más.

    3. Haga clic sobre Inicio, Todos los programas, Powertoys for Windows XP, Tweak UI.

    4. Seleccione el apartado Repair.

    5. Asegúrese de que esté seleccionada la opción Rebuild Icons en la lista desplegable.

    6. Pulse Repair Now.


    Tweak UI emplea un método algo curioso para actualizar la caché de iconos: En primer lugar toma del sistema el tamaño establecido para los iconos, seguidamente le resta 1 a ese tamaño, lo aplica a la interfaz de Windows y, finalmente, recupera el valor original y lo aplica de nuevo. Es de suponer que los ingenieros encargados del desarrollo de Tweak UI emplean este "rodeo" dada la manera de trabajar del shell de Windows.

    Espero que les haya parecido interesante el artículo. Si lo leen detenidamente y se fijan en las imágenes que lo complementan, puede resultar como una buena guía a la hora de resolver problemas con los iconos de Windows XP.

    miércoles, junio 14, 2006

    Problemas con la instalación de KB905474

    Recientemente estoy viendo que la descarga de la actualización KB905474 (Notificaciones de Ventajas de Windows Original) falla en muchos sistemas. En este artículo ofrezco algunas sugerencias para solucionar el problema.

    Síntomas

    Es posible que la descarga o instalación de la actualización KB905474 falle a través de cualquiera de estas herramientas: Actualizaciones automáticas, Windows Update o Microsoft Update. Adicionalmente, puede mostrarse en pantalla el siguiente código de error:

    0x80242006

    Solución

    Siga alguno de estos dos métodos:

    Método 1

    Descargue e instale manualmente la actualización. Puede descargarla si hace clic aquí.

    Nota: A pesar de que el programa de instalación de la actualización esté en inglés, puede instalarse perfectamente en un sistema Windows XP en español.

    Método 2

    El código de error 0x80242006 significa "SUS_E_UH_INVALIDMETADATA", así que es posible que haya habido algún error durante la descarga del fichero y por eso su metadata esperada no se corresponda con la almacenada en cierta carpeta del sistema operativo. Siga este procedimiento:

    1. Abra Inicio, Ejecutar, escriba cmd y pulse Aceptar.

    2. Escriba uno a uno estos comandos (pulse INTRO después de cada línea):
    3. net stop wuauserv

      ren C:\WINDOWS\SoftwareDistribution SoftwareDistribution_antiguo

      net start wuauserv

      (Si su sistema operativo no está instalado en la unidad C, modifique adecuadamente el segundo comando).

    4. Cierre la ventana de línea de comandos y acceda de nuevo a Microsoft Update.

    Más información

    Estoy investigando y experimentando con el problema. Si obtengo más información sobre el mismo, actualizaré debidamente este artículo tan pronto como sea posible.

    martes, junio 13, 2006

    Actualizaciones de junio de 2006

    En este artículo comento cuáles son las actualizaciones de seguridad correspondientes a junio de 2006. Sería aconsejable que visitara Microsoft Update (http://update.microsoft.com/microsoftupdate) para descargar las actualizaciones en este mismo momento.

    Hay disponibles 12 nuevas actualizaciones de seguridad correspondientes al mes de junio de 2006:

    Críticas

    - 916218

    - 918439

    - 917344

    - 917734

    - 911280

    - 918547

    - 917336

    - 916768

    Importantes

    - 912442

    - 914389

    - 917953

    Moderada

    - 917736

    Nota: Es muy probable que no todas las actualizaciones antes citadas sean aplicables a su sistema operativo y/o a las versiones de las aplicaciones que tenga instaladas. Visite Microsoft Update para que sólo se descarguen las actualizaciones apropiadas para su sistema o lea detenidamente los boletines de seguridad que acompañan a cada actualización. En las páginas que enlazo desde aquí también encontrará información detallada para saber si una cierta actualización está instalada en su sistema o no.


    Para obtener información detallada sobre el boletín mensual en su conjunto visite la siguiente web de Technet: Resumen del boletín de seguridad de Microsoft de junio de 2006.

    sábado, junio 10, 2006

    Windows Vista Beta 2 disponible públicamente

    Recientemente Microsoft ha hecho pública la beta 2 de su nuevo sistema operativo: Windows Vista. Si dispone de un entorno de pruebas y desea echar un vistazo al nuevo desarrollo de la empresa de Redmond, acuda a este sitio web para descargarlo o para pedirlo en DVD con un mínimo coste (si reside en un país contemplado por Microsoft para su envío físico): http://www.microsoft.com/windowsvista/getready/preview.mspx. El sistema operativo está únicamente disponible en inglés, alemán y japonés. Si quisiera enviar sugerencias, errores o aciertos de Windows Vista, emplee para ello el siguiente formulario: http://www.microsoft.com/windowsvista/sentiments/default.mspx.

    jueves, junio 01, 2006

    ¿Sabía que...?

    En esta serie de artículos irá descubriendo algunas cosas curiosas sobre el funcionamiento de Windows. A modo de comienzo, dejo dos curiosidades sobre el botón Inicio:

    Si durante el arranque de Windows se inician muchas aplicaciones es posible que haya notado que, mientras que prácticamente todo el sistema no responde eficientemente, la combinación Ctrl+Esc para abrir el menú Inicio sí que lo hace. Esto se debe a que el hilo (thread) encargado de mostrar el menú Inicio se ejecuta con una prioridad más alta de la normal para ganar tiempo de respuesta en sistemas muy cargados de trabajo.

    Otra curiosidad con relación al botón Inicio es que está "protegido" contra dobles clic. Me explico: estudios de Microsoft determinaron que un alto número de usuarios hace doble clic sobre el botón Inicio, lo que tenía como resultado que el menú homónimo se abría pero inmediatamente se cerraba. Por este motivo, actualmente Windows no tiene en cuenta el doble clic y el menú se mantiene desplegado en la pantalla. Haga la prueba en su sistema.

    miércoles, mayo 10, 2006

    Actualizaciones de mayo de 2006 y solución al problema de descarga continua de la actualización 913433

    En este artículo comento cuáles son las actualizaciones de seguridad correspondientes a mayo de 2006. Sería aconsejable que visitara Microsoft Update (http://update.microsoft.com/microsoftupdate) para descargar las actualizaciones en este mismo momento.

    Hay disponibles 3 nuevas actualizaciones de seguridad correspondientes al mes de mayo de 2006:

    Críticas

    - 916803
    - 913433

    Moderada

    - 913580

    Nota: Es muy probable que no todas las actualizaciones antes citadas sean aplicables a su sistema operativo y/o a las versiones de las aplicaciones que tenga instaladas. Visite Microsoft Update para que sólo se descarguen las actualizaciones apropiadas para su sistema o lea detenidamente los boletines de seguridad que acompañan a cada actualización. En las páginas que enlazo desde aquí también encontrará información detallada para saber si una cierta actualización está instalada en su sistema o no.


    Para obtener información detallada sobre el boletín mensual en su conjunto visite la siguiente web de Technet: Resumen del boletín de seguridad de Microsoft de mayo de 2006.


    Nota: Es posible que observe en su sistema que la actualización 913433 le devuelve un mensaje de error durante su instalación y que, por lo tanto, Microsoft Update/Windows Update/Actualizaciones automáticas siguen ofreciéndole su instalación de manera cíclica, fallando el proceso constantemente. Para solucionar el problema, eche un vistazo a este documento de la KB de Microsoft (en inglés): http://support.microsoft.com/kb/913433/en-us (apartado "Known issues").

    sábado, mayo 06, 2006

    Una de esas opciones de la interfaz de Windows que pasan desapercibidas

    Si acostumbra a trabajar con distintas distribuciones de teclado, es probable que se haya percatado de que cualquier modificación que haga por lo general no afecta a las nuevas cuentas de usuario ni a la ventana de inicio de sesión de Windows XP. Para evitar tocar en el Registro del sistema operativo le comento que existe una opción algo "escondida" que sí permite aplicar toda esa configuración de teclado (entre otras cosas) a todas las cuentas de usuario, así que ya podría emplear la nueva distribución de teclado en la ventana de inicio de sesión de Windows, por ejemplo.
    Abra Inicio, Ejecutar, escriba intl.cpl y pulse Aceptar. Haga clic sobre la pestaña Opciones avanzadas, marque la casilla Aplicar toda la configuración a la cuenta de usuario actual y al perfil de usuario predeterminado, pulse Aceptar, nuevamente sobre Aceptar y reinicie el sistema.
    Nota: Se requieren privilegios administrativos para realizar el procedimiento anterior.

    martes, mayo 02, 2006

    Error al acceder a las propiedades de Mis documentos

    En uno de mis equipos "de laboratorio" experimenté un extraño problema a la hora de acceder a las propiedades de la carpeta Mis documentos, aparecía el mensaje de error "Las propiedades para este archivo no están disponibles". En este artículo de la bitácora se explicará cómo se soluciona el problema y cuál es el motivo por el que aparece ese mensaje de error.

    Concretamente, cuando quise acceder a las propiedades de Mis documentos (por ejemplo abriendo el menú Inicio estilo XP, seleccionando con el botón derecho del ratón la opción Mis documentos y haciendo clic sobre Propiedades) me apareció este mensaje de error:


    Al hacer clic sobre Aceptar no ocurría nada.

    Después de estar un rato revisando a fondo el Registro de Windows, imaginé que algún manejador del menú contextual estaría dando la lata; en concreto debía tratarse de algún manejador de la opción Propiedades del menú contextual (Property Sheet Handler). Y así fue. En efecto, el problema aparece cuando la siguiente clave del Registro falta o está incorrectamente creada:

    HKCR\CLSID\{450D8FBA-AD25-11D0-98A8-0800361B1103}\shellex\PropertySheetHandlers\{4a7ded0a-ad25-11d0-98a8-0800361b1103}.

    Más precisamente el identificador 4a7ded0a-ad25-11d0-98a8-0800361b1103 hace referencia a "MyDocs menu and properties", siendo la DLL Mydocs.dll la encargada de manejar todo ese panel. Así que no es difícil deducir que si la clave HKEY_CLASSES_ROOT\CLSID\{4a7ded0a-ad25-11d0-98a8-0800361b1103} falta o está incorrectamente definida es muy probable que también produzca el problema mencionado en este artículo.

    Solución

    Para solucionar el problema se debe volver a registrar la DLL Mydocs.dll:

    1. Abra Inicio, Ejecutar.

    2. Escriba regsvr32 Mydocs.dll y pulse Aceptar.

    3. Haga clic en Aceptar cuando aparezca el cuadro de diálogo de título RegSvr32.

    Esto restaurará el property sheet handler encargado de manejar las propiedades de la carpeta Mis documentos.

    ¿Qué es un manejador de la opción Propiedades del menú contextual?

    Windows XP permite que los desarrolladores de terceros implementen extensiones adicionales para la interfaz gráfica de Windows (el shell). Entre estas extensiones están los manejadores de la opción Propiedades del menú contextual.

    Ejemplo de property sheet handler: el encargado de la pestaña Personalizar de las propiedades de ciertas carpetas del equipo. Se define en la clave del Registro HKEY_CLASSES_ROOT\Directory\shellex\PropertySheetHandlers\{ef43ecfe-2ab9-4632-bf21-58909dd177f0}.

    Este tipo de manejadores se declaran en el Registro de Windows, en la subclave shellex\PropertySheetHandlers que penda del identificador de clase (CLSID) apropiado (como en el caso del problema discutido en este artículo) o que penda del identificador de programa que quiera "recibir" esa pestaña adicional (como en el caso de la pestaña Personalizar mostrada anteriormente en la imagen). Estos manejadores "apuntan" asimismo a un identificador de clase (CLSID) que contiene la referencia a la DLL implicada en la creación de la pestaña en cuestión (en el caso del problema que nos ocupa, Mydocs.dll).

    Se ha realizado una descripción muy general de este tipo de extensiones para la interfaz gráfica, dispone de más información sobre este tema (en inglés) en la siguiente página web del sitio Microsoft Developer Network (MSDN): Creating Property Sheet Handlers.

    Espero que les haya parecido interesante el artículo y, si por casualidad experimentan en sus sistemas el mismo problema que se describe aquí, sean capaces de solucionarlo satisfactoriamente.

    viernes, abril 21, 2006

    Windows Shell Architecture

    Dejo un enlace a un vídeo de Channel 9 -una comunidad en línea sobre Microsoft- que trata acerca del shell de Windows, aquella parte del sistema operativo con la que interactúa el usuario, en pocas palabras. Se hace mención al futuro Windows Vista.

    Windows Shell Architecture

    Nota: El vídeo está íntegramente realizado en lengua inglesa.

    sábado, abril 15, 2006

    Problemas derivados de la instalación de la actualización de seguridad KB908531 (MS06-15)

    Microsoft acaba de reemplazar la actualización de seguridad KB908531 por una nueva versión que trata de evitar ciertas incompatibilidades que se presentaban cuando en el equipo estaba instalado software antiguo de HP y NVIDIA. Si experimenta alguno de los síntomas recogidos en el artículo http://support.microsoft.com/kb/918165/en-us y tiene configurada la funcionalidad Actualizaciones automáticas, debería recibir en poco tiempo una alerta para descargar la nueva versión de la actualización antes mencionada. Si quiere bajarla manualmente, haga clic aquí.

    martes, abril 11, 2006

    Actualizaciones de abril de 2006

    En este artículo comento cuáles son las actualizaciones de seguridad correspondientes a abril de 2006. Sería aconsejable que visitara Microsoft Update (http://update.microsoft.com/microsoftupdate) para descargar las actualizaciones en este mismo momento.

    Hay disponibles 5 nuevas actualizaciones de seguridad correspondientes al mes de abril de 2006:

    Críticas

    - 912812
    - 911562
    - 908531

    Importante

    - 911567

    Moderada

    - 917627

    Nota: Es muy probable que no todas las actualizaciones antes citadas sean aplicables a su sistema operativo y/o a las versiones de las aplicaciones que tenga instaladas. Visite Microsoft Update para que sólo se descarguen las actualizaciones apropiadas para su sistema o lea detenidamente los boletines de seguridad que acompañan a cada actualización. En las páginas que enlazo desde aquí también encontrará información detallada para saber si una cierta actualización está instalada en su sistema o no.

    Para obtener información detallada sobre el boletín mensual en su conjunto visite la siguiente web de Technet: Resumen del boletín de seguridad de Microsoft de abril de 2006.

    viernes, marzo 31, 2006

    ¿Valores codificados en ROT13 en el Registro?

    Si ha "trasteado" alguna vez con el Registro de Windows quizá se haya encontrado con una determinada clave que contiene valores un tanto extraños, aparentemente codificados y que puede que no sepa ni para qué sirven. Concretamente esos valores le permiten a Windows generar el listado de aplicaciones más utilizadas y aquí obtendrá más información sobre cómo mantiene Windows toda esa información.

    Si abre Editor del Registro (Regedit.exe) y accede a la rama HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{75048700-EF1F-11D0-9888-006097DEACF9}\Count, es muy probable que se encuentre con una ristra más o menos extensa de valores binarios cuyos nombres parecen estar codificados, observe la siguiente figura a modo de ejemplo:

    Ejemplo de un valor contenido en la clave antes citada. Concretamente hace referencia a la Calculadora de Windows.

    Efectivamente esos nombres están cifrados en ROT13, un sistema de codificación que se basa en la sustitución de cada caracter de una cadena por el ASCII situado trece posiciones después (considerando el alfabeto de manera cíclica). Puede obtener más información sobre este método de codificación así como un disponer de un espacio para codificar/descodificar automáticamente en la web http://rot13.de/ (en inglés).

    ¿Qué significan esos valores?

    Si copia en la caja de texto de la web que comento anteriormente el nombre de alguno de los valores binarios que le aparecerán en la clave del Registro antes mencionada, obtendrá su descodificación desde ROT13. Y se encontrará con rutas bastante familiares, sin duda. ¿Qué hacen ahí?

    Windows XP mantiene un cierto control sobre la utilización de las aplicaciones instaladas. Esto le permite generar listados como el que por defecto se encontrará al abrir el menú Inicio (suponiendo que use el menú de Inicio estilo XP). Cuando un usuario ejecuta una aplicación, Windows se prepara para almacenar en el Registro el dato acerca de que ésta ha sido utilizada una vez más, pero no sin antes consultar una lista de "excepciones". Este paso permite que no aparezcan entre el listado de aplicaciones más utilizadas un instalador de un programa, por ejemplo (cosa que sería absurda). La lista de excepciones la obtiene el sistema operativo desde la siguiente clave del Registro: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ FileAssociation.

    Excepciones por defecto para la lista de programas usados frecuentemente

    Una vez que Windows decide que efectivamente debería controlar la frecuencia de uso de esa aplicación que el usuario tiene la intención de abrir, se crea en la clave HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{75048700-EF1F-11D0-9888-006097DEACF9}\Count un valor binario codificado en ROT13 que incluye (de manera igualmente codificada) el número de ejecuciones que lleva el programa en cuestión.

    Nota: Windows no lee continuamente de la anterior clave del Registro (sería una pérdida importante de rendimiento). Solamente lo hace en ciertas situaciones, entre las que se encuentran las siguientes: Cuando se añade un nuevo acceso directo a la clave, o bien cuando se modifica alguna propiedad del menú Inicio, o bien cuando se elimina manualmente alguna entrada (haciendo clic con el botón derecho del ratón sobre la misma y seleccionado Quitar de esta lista). Por ello es posible que si elimina manualmente algún valor de la clave (a modo de experimento) observe que los cambios no se producen instantáneamente en la lista de programas más utilizados del menú Inicio.

    Agregar o quitar programas también utiliza toda esa información

    Agregar o quitar programas también recoge esa información acerca de los programas y su frecuencia de uso. Basándose en el valor DisplayName de cada subclave de HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall, Windows obtiene la ruta del programa en cuestión utilizando dos palabras de dicho texto como palabras clave de búsqueda. La información una vez recabada se almacena regularmente en una caché situada en HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Management\ARPCache.

    Si por algún motivo la información de la clave HKLM\Microsoft\Windows\CurrentVersion\App Management\ARPCache se pierde o se corrompe, observará que Windows tardará unos molestos segundos de más la primera vez que vuelva a abrir Agregar o quitar programas. Esto se debe a que durante ese tiempo el sistema está "consultando" al menú Inicio la frecuencia de uso de las aplicaciones, además de recorriendo el directorio Archivos de programa de manera intempestiva para calcular una estimación del espacio ocupado por cada programa. Toda la información queda compactada de nuevo en diferentes subclaves de la clave ARPCache, una para prácticamente cada aplicación.

    Espero que el artículo les haya servido para profundizar sobre el funcionamiento interno de la característica "programas más usados" del menú Inicio estilo XP así como para comprender qué eran esos valores con nombres codificados en ROT13, en caso de que se los haya encontrado alguna vez en sus "buceos" por el Registro del sistema operativo.

    miércoles, marzo 15, 2006

    Actualizaciones de marzo de 2006 y MMC 3.0

    En este artículo comento cuáles son las actualizaciones de seguridad correspondientes a marzo de 2006 así como la aparición de la versión 3.0 de MMC (Microsoft Management Console) para Windows XP. Sería aconsejable que visitara Microsoft Update (http://update.microsoft.com/microsoftupdate) para descargar las actualizaciones en este mismo momento.

    Hay disponibles 2 nuevas actualizaciones de seguridad correspondientes al mes de marzo de 2006:

    Crítica

    - 905413

    Importante

    - 914798

    Nota: Es muy probable que no todas las actualizaciones antes citadas sean aplicables a su sistema operativo y/o a las versiones de las aplicaciones que tenga instaladas. Visite Microsoft Update para que sólo se descarguen las actualizaciones apropiadas para su sistema o lea detenidamente los boletines de seguridad que acompañan a cada actualización. En las páginas que enlazo desde aquí también encontrará información detallada para saber si una cierta actualización está instalada en su sistema o no.

    Para obtener información detallada sobre el boletín mensual en su conjunto visite la siguiente web de Technet: Resumen del boletín de seguridad de Microsoft de marzo de 2006.

    Por otra parte está disponible para descarga pública la versión 3.0 de MMC (Microsoft Management Console), una consola que simplifica enormemente la administración del sistema operativo Windows. Puede descargar la versión para Windows XP (32 bits) desde http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=61fc1c66-06f2-463c-82a2-cf20902ffae0 (requiere validación).

    jueves, marzo 09, 2006

    Problemas con Opciones de carpeta y cuentas no administrativas

    En un artículo anterior de mi bitácora expliqué una razón para trabajar con una cuenta con los menores privilegios posibles. Sin embargo, cumplir a rajatabla los requisitos de todo software que quiera funcionar en cuentas sin privilegios administrativos es algo que hasta Microsoft puede "saltarse" en algún momento, produciendo efectos tan curiosos como el que se describe en este artículo.

    Windows incorpora desde hace bastantes años un panel que permite personalizar el modo en el que se presenta el contenido de carpetas, las asociaciones de las extensiones de archivo, etc. Se llama Opciones de carpeta y está situado en Panel de control.

    Aspecto del panel Opciones de carpeta en un sistema Windows XP

    Si se accede a ese panel desde una cuenta sin privilegios administrativos y se selecciona alguna de las siguientes opciones:

    • Subrayar los títulos de iconos que coincidan con el explorador
    • Subrayar los títulos de iconos cuando yo los señale

    Al pulsar Aplicar o Aceptar no notará cambio alguno en la configuración del subrayado de las carpetas y/o archivos del explorador.

    Si inicia sesión con una cuenta administrativa, según seleccione una opción u otra notará que los nombres de los iconos quedan siempre subrayados (si activa la primera opción), o bien sólo se subrayan cuando se pasa el puntero del ratón sobre ellos (si activa la segunda). Este es el efecto esperado.

    ¿Por qué no funciona esta característica en una cuenta sin privilegios administrativos?

    El explorador de Windows hace el uso del archiconocido Registro para almacenar la selección de esta opción del panel Opciones de carpeta: En concreto el valor IconUnderline de la clave HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer le dirá a Windows qué opción se ha elegido (y por tanto la que deberá aplicar):

    Valor

    Acción seleccionada

    03 00 00 00

    Subrayar los títulos de los iconos que coincidan con el explorador

    02 00 00 00

    Subrayar los títulos de los iconos cuando yo los señale


    El problema en sí no reside en la lectura del valor, reside en su creación: en una cuenta con privilegios no administrativos no se llega a generar. Se preguntará por qué, si dicho valor está situado en una clave que pende de la rama principal HKCU\ (donde un usuario cualquiera puede escribir). Pues la razón es que el explorador "silenciosamente" trata de escribir en una rama no permitida a un usuario no administrador (HKLM\) y, al no conseguirlo, no se llega a generar el valor IconUnderline en su lugar correspondiente.

    Concretamente Explorer.exe trata de crear cada vez las siguientes claves en el Registro de Windows:
    • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer
    • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer
    Lo hace por si éstas no existieran. En una cuenta administrativa la creación de ambas no presenta ningún problema, pero en una cuenta limitada la segunda no se podrá crear y le devolverá un mensaje de "access denied" a Explorer.exe. Éste no "sabe" cómo seguir y no genera el valor IconUnderline en la clave que corresponde.

    Solución al problema

    He ideado un rodeo para evitar el problema:

    Afirma el dicho que si Mahoma no va a la montaña, la montaña va a Mahoma; así que si Explorer.exe no "sabe" crear el valor en el Registro, créemoslo manualmente por él:

    Nota: El siguiente procedimiento implica la manipulación del Registro de Windows. Le recomiendo que genere un punto de restauración antes de continuar.


    1. Inicie sesión con la cuenta limitada.

    2. Abra Inicio, Ejecutar, escriba notepad y pulse Aceptar.

    3. Copie y pegue en la ventana de Bloc de notas alguno de los siguientes textos (indicados en color rojo):
    4. Windows Registry Editor Version 5.00

      [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]
      "IconUnderline"=hex(0):03,00,00,00

      (Si desea activar la opción "Subrayar los títulos de los iconos que coincidan con el explorador").

      Windows Registry Editor Version 5.00

      [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]
      "IconUnderline"=hex(0):02,00,00,00

      (Si desea activar la opción "Subrayar los títulos de los iconos cuando yo los señale").

    5. Pulse Archivo, Guardar como, seleccione Todos los archivos en la lista desplegable Tipo, escoja una ubicación cualquiera, escriba Subrayado.reg en la caja Nombre y pulse Guardar.

    6. Cierre Bloc de notas.

    7. Haga doble clic sobre el fichero que acaba de crear, pulse y haga clic sobre Aceptar.

    Espero que les haya parecido interesante, ya ven que hasta Microsoft a veces no piensa lo suficiente en los entornos sin privilegios administrativos. Afortunadamente el error no es demasiado grave.

    domingo, febrero 26, 2006

    Un almacén especial

    Los sistemas NT como Windows 2000 o Windows XP disponen de un almacén de recursos de elementos de escritorio que en cierta medida supone una limitación del número de ventanas, menús o incluso servicios que se pueden ejecutar simultáneamente en Windows. Es lo que se conoce como desktop heap.

    Dada la arquitectura y complejidad del shell de Windows, dentro de su subsistema gráfico reina una necesaria jerarquía: Existen estaciones de ventana, cada una de las cuales puede contener un cierto número de escritorios (o incluso no contener ninguno). A cada uno de estos escritorios (nótese que el concepto va más allá del espacio donde se sitúa un fondo de pantalla y unos iconos) se le asigna un montón (heap) donde almacenar cadenas, imágenes, menús, manejadores, etc. En total los montones de escritorio (desktop heaps) de un sistema Windows no pueden exceder los 48 MB.

    En Windows existen las siguientes estaciones de ventana:

    • Winsta0: Es una estación de ventana interactiva, lo que quiere decir que cualquier elemento o servicio que se sitúe en ella podrá mostrar información visual y recibirla. En esta estación de ventana por defecto hay tres escritorios creados: Winlogon, encargado del inicio de sesión, Default, al que se "adhieren" por defecto todos los procesos y servicios iniciados por el usuario (los que interactúen con el escritorio) y Screen-saver, que se crea cuando el salvapantallas entra en funcionamiento.

    • Service-0x0-3e7$: Es una estación de ventana no interactiva, por lo que los procesos, servicios, etc. que se situén en ella no podrán mostrar una interfaz gráfica.

    Diagrama simplificado de las estaciones de ventanas y escritorios del subsistema gráfico de Windows

    Nota: Dispone de más información sobre las APIs CreateWindowStation y CreateDesktop (CreateDesktopEx) en los siguientes enlaces: CreateDesktop/CreateDesktopEx, CreateWindowStation.

    Cada escritorio, según pertenezca a una estación interactiva o no interactiva tiene un tamaño máximo del heap asignado desde el Registro de Windows, concretamente en la clave HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems (valor Windows de la parte derecha):

    Si modifica el segundo y el tercer parámetro de la cadena SharedSection=, el sistema podrá almacenar más recursos de escritorio en estaciones de ventana interactivas y no interactivas, respectivamente. Esto se consigue a costa de reducir el número de escritorios que se puedan generar en el sistema.

    Nota: Los cambios requieren un reinicio del sistema operativo para que surtan efecto.

    ¿Y qué ocurre cuando se alcanza el límite del almacén? Cuando se alcanza el límite o bien le aparecerá en pantalla algún error referenciando a User32.dll (o Kernel32.dll) o bien se encontrará con un sistema gráficamente inservible. Eche un vistazo al siguiente vídeo que he realizado y que demuestra esto: Vídeo.

    Nota: Si dispone de una conexión lenta a Internet quizá le venga mejor descargar el vídeo. Para ello seleccione el enlace con el botón derecho del ratón y pulse sobre Guardar destino como (Internet Explorer).

    En el vídeo se ve que voy abriendo intempestivamente instancias de Internet Explorer. El sistema con pocas ventanas se comporta adecuadamente (vea que puedo acceder al menú contextual sin problemas), pero cuando llego a abrir 56 ventanas observará que no puedo abrir ninguna más, que los menús contextuales de la barra de tareas no llegan siquiera a mostrarse y que la última ventana sólo muestra el icono estándar de Internet Explorer, los menús no se muestran . Hemos llegado a un punto en el que la interfaz gráfica de Windows ha quedado "inutilizada" por alcanzar el máximo del almacén de recursos del escritorio.

    Nota: Los sistemas de 64 bits como XP Professional x64 disponen de un tamaño de desktop heap bastante elevado, por lo que no existe el riesgo de agotarlo. Además, la clave de Registro mencionada anteriormente no es tenida en cuenta si en el fichero Boot.ini existe el parámetro /3GB.

    sábado, febrero 18, 2006

    ¿Qué nos traerá Windows Vista? ¿Merecerá la pena actualizarse?

    En este artículo presentaré las principales mejoras que se encontrará el usuario final que se actualice a Windows Vista desde el momento en que esté disponible en el mercado (mediados-finales de este año). Este es el primero de los artículos sobre Windows Vista que espero exponer por aquí.

    Graficamente, ¿qué nos vamos a encontrar?

    Aún es pronto para definir una experiencia visual que se incorpore a la versión final de Windows Vista, pero podemos vislumbrar algunas novedades notables, la más destacada es Aero:

    Aero, el nombre de código de la nueva interfaz gráfica de Windows Vista, supondrá una importante mejora con respecto a la interfaz gráfica de los sistemas Windows anteriores. Aparecen efectos 3D (como la capacidad de moverse entre ventanas usando la rueda del ratón), nuevas animaciones, instantáneas gráficas de las ventanas abiertas tanto en la barra de tareas -aparecen al dejar el puntero del ratón sobre cada una de ellas- como pulsando la combinación Alt+Tab, y transparencias visuales. Todo ello aprovechable por una nueva generación de controladores gráficos, llamados LDDM (Longhorn Display Driver Model), que deberán estar sustentados por hardware gráfico relativamente moderno. Consulte la web del fabricante de su tarjeta gráfica para obtener más información sobre compatibilidad con Windows Vista. No obstante existirán varios "niveles" de configuración de la interfaz gráfica, con el fin de adaptarse a aquellos sistemas gráficos relativamente antiguos.

    ¿Qué tal la facilidad de uso de Windows Vista?

    La curva de aprendizaje para un usuario medio que provenga de Windows XP es suave. Se mantiene la idea de Windows XP con ciertas novedades, como una mayor organización del Panel de control, tareas intuitivas a la vista, menús menos reconcentrados de opciones, etc. Además el nuevo menú Inicio, desde el que podrá hacer todo lo que realiza ahora mediante la opción Ejecutar, ahorrará bastante tiempo a la hora de realizar ciertas tareas rutinarias en el PC.

    ¿Es estable Windows Vista? La arquitectura interna cambia de manera considerable

    Windows Vista parte de la base de Windows XP, así que es de esperar que mantenga la estabilidad que ha hecho gala este sistema operativo durante años. Además se introducen cambios importantes:
    • El subsistema gráfico de Windows Vista ya no está incorporado en el modo kernel (núcleo), como sí lo estaba en Windows XP; ahora todo este subsistema se ha "movido" al modo user (usuario). Esto supone que un fallo gráfico no nos dejará "colgado" el sistema operativo, algo que sí podía ocurrir en Windows XP cuando se usaban controladores gráficos mal diseñados u obsoletos.

    • Lo mismo sucede con el subsistema de sonido de Windows. Ahora los controladores de sonido actuarán en modo user en lugar de en modo kernel.

    Esto tiene como consecuencia una clara mejora en la estabilidad del sistema, pero obligará a los fabricantes de hardware a diseñar "de otra manera" sus controladores. Veamos cómo se van adaptando durante este tiempo hasta que aparezca la versión final del sistema operativo.

    ¿Es compatible con las aplicaciones más antiguas?

    El nivel de compatibilidad con aplicaciones es similar al de Windows XP, con puntualizaciones: Durante la beta se han ido encontrado bastantes problemas menores con aplicaciones, problemas que afortunadamente se van solucionando progresivamente. Además, el fabricante de software va a tener que adaptarse a un entorno que por defecto no gozará de privilegios administrativos, quizá este sea un escollo para las aplicaciones más antiguas, veremos qué pasa según avanza el periodo beta. No obstante, Microsoft ha pensado en ello, siga leyendo.

    ¿Es seguro? ¿Qué es eso de que no va a funcionar por defecto como administrador? ¡Quiero instalar mis programas fácilmente!

    Seguramente esta es la pregunta que más se ha formulado cuando ha oído hablar de UAP (User Account Protection), que supone que el usuario que inicie sesión en Windows Vista (aunque lo haga como administrador local) no obtendrá efectivos privilegios administrativos.

    Cuando UAP esté activado y el usuario haya iniciado sesión con un usuario con privilegios administrativos realmente estará trabajando en un entorno limitado (es lo que Microsoft denomina Administrator Approval Model (modelo de aprovación del administrador, en español). Cuando quiera realizar una tarea que realmente requiera privilegios administrativos (señaladas de manera especial en la interfaz gráfica), se le pedirá una confirmación. Esto supone que el usuario dispone de privilegios limitados para realizar sus tareas cotidianas (leer el correo electrónico, navegar por Internet...) mientras que puede en cualquier momento realizar una tarea administrativa de manera cómoda y sencilla.

    Además, los usuarios limitados disponen de algunos privilegios más de los que tenían en Windows XP (para realizar tareas que no supongan riesgos: mostrar el panel Fecha y hora, cambiar la zona horaria, entre otras).

    ¿Y las aplicaciones antiguas que no "saben" trabajar en entornos limitados? Microsoft ha ideado una virtualización del sistema de archivos y del Registro para que las aplicaciones de este tipo funcionen correctamente. Por ejemplo, cuando una aplicación quiera escribir en la rama del Registro HKEY_LOCAL_MACHINE (rama en la que los usuarios limitados no pueden escribir), Windows le "virtualizará" una copia de la rama que desee en su propio espacio operativo (más restringido), así pues la aplicación seguirá funcionando correctamente sin escribir en áreas críticas del sistema operativo. Durante la beta he comprobado que este método funciona bastante bien con las aplicaciones que he probado.

    Como conclusión decir que Windows Vista es un sistema prometedor. Aún se le observan ciertas carencias propias de una versión beta, pero confiamos en que Microsoft presente un sistema maduro y confiable (se retrasará el lanzamiento final si hace falta). En poco tiempo aparecerá la versión Beta 2, que se supone "cerrada" en cuanto a características que se incorporen al producto final, así que esperamos acontecimientos con ilusión.

    Este es un primer adelanto sobre lo que se encontrará con Windows Vista. Quedan bastantes temas por tratar y algunos en los que deseo detenerme más. Si el NDA de las posteriores builds de Vista me lo permite intentaré comentar algo más sobre el nuevo sistema operativo según vaya avanzando su desarrollo, y mostraré capturas de pantalla para que vea cómo se muestra al usuario el nuevo sistema.

    Espero que les haya parecido interesante.