<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Windows Server : Windows Server</title><link>http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx</link><description>Tags: Windows Server</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>El Registro: Restaurar sistema</title><link>http://msmvps.com/blogs/juansa/archive/2009/12/16/el-registro-restaurar-sistema.aspx</link><pubDate>Wed, 16 Dec 2009 13:38:16 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1745947</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1745947</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/12/16/el-registro-restaurar-sistema.aspx#comments</comments><description>&lt;p&gt;Restaurar sistema nos devuelve el equipo a un estado previo sin perder información personal. Esta opción no existe en W2003, pero sí en XP y posteriores. Lo que hace es comprobar los cambios en el equipo y muchas de sus aplicaciones y crear puntos de restauración. Estos snapshots o instantáneas son en realidad las instrucciones para deshacer cambios recientes. Podemos recuperar estas instantáneas en caso de que el sistema no funcione adecuadamente. XP por ejemplo crea puntos de restauración diarios y cuando existen eventos significativos, como instalar nuevas aplicaciones, parches, controladores… Nosotros podemos modificar la programación o incluso usar scripts.&lt;/p&gt;  &lt;p&gt;Restaurar sistema crea diversos tipos de puntos de restauración, a saber:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Comprobación del sistema.&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Hay un punto de restauración inicial cuando XP se inicia por primera vez, si lo restauramos a éste punto tendremos el sistema tal cual se instaló y arrancó la primera vez.&lt;/p&gt;  &lt;p&gt;Se crean diversos puntos de sistema regularmente, cambie o no el sistema. Normalmente cada 24 horas, si mantenemos apagado el equipo por más de 24 horas se creará en cuanto iniciemos el sistema.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Instalación.&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Cuando instalamos programas que usan instaladores correctos se crea un punto de restauración.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Actualizaciones automáticas.&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Tanto si es por Actualizaciones automáticas como si usamos Windows Update, se crean puntos de restauración.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Manuales.&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Creamos los puntos nosotros mismos mediante Restaurar Sistema o nos montamos nuestro propio Script para que los cree según nuestras preferencias. Por ejemplo: no es mala idea realizar un punto de restauración manual antes de empezar a toquetear el registro y cambiar valores.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Operaciones de restauración.&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Se crean puntos cuando restauramos puntos, es decir, puntos que nos permiten deshacer la propia restauración.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Controladores no firmados.&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Se crean en cuanto instalamos un controlador de dispositivo no firmado. En caso de inestabilidad por dicha instalación, a restaurar.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Copias de seguridad&lt;/strong&gt; . &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;En cuanto realizamos una copia de seguridad usando la utilidad del sistema para recuperar una copia, se crea un punto por si queremos deshacer esa recuperación.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Restaurar Sistema &lt;/em&gt;&lt;/strong&gt;utiliza una cantidad de espacio en disco que hemos de configurar, por supuesto a mayor cantidad de espacio mayor cantidad de puntos pueden guardarse.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Mirar dentro…&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Muchos de los archivos y carpetas de Restaurar Sistema están muy ocultos, tanto que no se ven aunque marquemos ver archivos ocultos y de sistema, hemos de añadir la selección de NO ocultar archivos protegidos del sistema.&lt;/p&gt;  &lt;p&gt;Los archivos se encuentran en la &lt;em&gt;raíz_del_sistema\System32\Restore, en XP.&lt;/em&gt; Además del Rstrui.exe vemos el filelist.xml que es la lista de archivos y configuraciones que Restaurar Sistema controla. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5722.systemrestoreFILESxp_5F00_35162A32.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="systemrestoreFILESxp" border="0" alt="systemrestoreFILESxp" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3603.systemrestoreFILESxp_5F00_thumb_5F00_4F9FEA00.jpg" width="344" height="228" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Se excluyen archivos de configuración Legacy –win.ini, system.ini, autoexec.bat y config.sys-, algunas carpetas también en su mayoría nada importantes para el sistema. Se protegen desde los exe y dll hasta VBS y VxD. Si un archivo coincide con las extensiones incluidas y está en una carpeta excluida en filelist.xml, Restaurar Sistema lo sigue, como lo hace con los archivos de sección por-usuario de la rama &lt;em&gt;HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Los archivos de restauración están en cada carpeta de cada volumen: System Volume Information, por supuesto oculta y con ACL. No es aconsejable acceder, ya que hay que cambiar los valores de ACL. Dentro se encuentra una carpeta –restoreEQUIPO (EQUIPO=GUID del equipo):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3603.systemrestore01_5F00_2148F504.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="systemrestore01" border="0" alt="systemrestore01" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2514.systemrestore01_5F00_thumb_5F00_6E0F4C4B.jpg" width="244" height="233" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Que a su vez contiene cada punto de restauración, con la nomenclatura de RP&lt;em&gt;num&lt;/em&gt; donde num es un número incremental que comienza por 1. Cada RP&lt;em&gt;num &lt;/em&gt;contiene las copias de seguridad y archivos eliminados. Restaurar Sistema cambia los nombres de archivos.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/4251.systemrestore02_5F00_26BC870A.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="systemrestore02" border="0" alt="systemrestore02" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3175.systemrestore02_5F00_thumb_5F00_724366D4.jpg" width="290" height="184" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Así pues cada RPnum contiene copias de seguridad de los archivos de sección del Registro. Si obtenemos acceso a System Volume Information podríamos cargar estos archivos de sección con Regedit y examinarlos, o recuperar valores si se quiere. En realidad la manera más adecuada para recuperar configuraciones de estos archivos sería usar Restaurar Sistema.&lt;/p&gt;  &lt;p&gt;Pero ya que estamos en ello; los archivos de sección que encontraremos dentro de las instantáneas (\snapshot) de un RPnum se ven perfectamente en la imagen:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7317.systemrestoresnapshot_5F00_23D1651B.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="systemrestoresnapshot" border="0" alt="systemrestoresnapshot" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7888.systemrestoresnapshot_5F00_thumb_5F00_447D5022.jpg" width="347" height="229" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Restaurar sistema &lt;/em&gt;&lt;/strong&gt;dispone de opciones de administración. Tales como cambiar el tamaño de espacio en disco que usará, incluso deshabilitarlo, o disponer de un par de directivas, como &lt;strong&gt;&lt;em&gt;Desactivar restaurar sistema&lt;/em&gt;&lt;/strong&gt;, que deshabilita Restaurar sistema totalmente, y cuando no queremos que los usuarios puedan cambiar su configuración tenemos &lt;strong&gt;&lt;em&gt;Desactivar configuración&lt;/em&gt;&lt;/strong&gt;, aunque los usuarios pueden crear sus propios puntos de restauración. Estas directivas son aplicables al equipo.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6327.systemrestoregpos_5F00_3A4BB5B5.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="systemrestoregpos" border="0" alt="systemrestoregpos" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6811.systemrestoregpos_5F00_thumb_5F00_0AB5493C.jpg" width="373" height="168" /&gt;&lt;/a&gt; &lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0066.systemrestoregposw7_5F00_03989D75.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="systemrestoregposw7" border="0" alt="systemrestoregposw7" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/4572.systemrestoregposw7_5F00_thumb_5F00_2E075F43.jpg" width="411" height="167" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Personalizar Restaurar Sistema&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;La llave es &lt;strong&gt;&lt;em&gt;HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore&lt;/em&gt;&lt;/strong&gt;, aquí hallaremos la configuración de Restaurar sistema, que en principio toda la lista de valores son del tipo &lt;strong&gt;&lt;em&gt;REG_DWORD &lt;/em&gt;&lt;/strong&gt;en XP, pero no así en Vista o W7.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5340.registrosystemrestoreXP_5F00_3FE683C1.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="registrosystemrestoreXP" border="0" alt="registrosystemrestoreXP" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8473.registrosystemrestoreXP_5F00_thumb_5F00_59DF6545.jpg" width="354" height="185" /&gt;&lt;/a&gt; &lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/4667.registrosystemrestorew7_5F00_6B5256CE.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="registrosystemrestorew7" border="0" alt="registrosystemrestorew7" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/4744.registrosystemrestorew7_5F00_thumb_5F00_79B2EA62.jpg" width="333" height="188" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h5&gt;Valores que pueden modificarse sin riesgo de dañar el equipo&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;CompressionBurst&lt;/b&gt;      &lt;br /&gt;Tiempo de compresión en segundos antes de entrar en inactividad: tiempo empleado en comprimir los datos antes de que el equipo entre en inactividad. Un servicio puede comprimir datos durante el tiempo especificado y después detenerse. Así, en el siguiente intervalo, podrá repetirse el proceso. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;DiskPercent&lt;/b&gt;      &lt;br /&gt;Valor de referencia al porcentaje de espacio de disco que Restaurar sistema usa para almacén de datos. El valor predeterminado es del 12%. Siempre se calcula como el &amp;quot;máximo de (12%, DSMax)&amp;quot;, sin importar el tamaño del disco. El tamaño máximo (máximo de) es lo que se especifica en DSMax. Para tamaños de disco inferior a 4GB, el 12% es menos de 400MB, así que el &amp;quot;máximo de (12%, DSMax)&amp;quot; es 400MB. Si es mayor de 4GB, el 12% es más de 400MB, por lo que el &amp;quot;máximo de (12%, DSMax)&amp;quot; es el 12%. Este tamaño no es reservado y sólo se usa si se pide.&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Windows Vista:&lt;/strong&gt;&amp;#160; Recibe un valor desde el servicio Volume Shadow Copy Service (VSS). Es la cantidad máxima de espacio en disco de cada unidad ue puede usar Restaurar Sistema. El valor predeterminado es el 15% del total de la unidad o el 30% del espacio libre el que sea menor. &lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;DSMax&lt;/b&gt;      &lt;br /&gt;Tamaño máximo de almacén de Restaurar sistema. De forma predeterminada son 400 MB. Y como se veía anteriormente se calcula como el &amp;quot;máximo de (12%, DSMax)&amp;quot;, sin importar el tamaño del disco.&amp;#160; Discos menores a 4GB será 400MB y en los mayores de 4GB será realmente el 12%.&amp;#160; No es tamaño reservado y se usa si se pide.&lt;/li&gt;    &lt;li&gt;&lt;b&gt;DSMin&lt;/b&gt;      &lt;br /&gt;Aquí se refiere al mínimo de espacio libre en disco que Restaurar sistema necesita para poder funcionar durante la instalación, y para que se reactive y reanude la creación de puntos después de deshabilitarse por falta de espacio en el disco. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;RestoreStatus&lt;/b&gt;      &lt;br /&gt;Indicación sobre la última restauración: falló (0), correcta (1) o se interrumpió (2). &lt;/li&gt;    &lt;li&gt;&lt;b&gt;RPGlobalInterval&lt;/b&gt;      &lt;br /&gt;Valor, en segundos, de espera antes de crear puntos automáticos del equipo durante el tiempo transcurrido. Valor predeterminado, 24 horas.&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Windows Vista:&lt;/strong&gt;&amp;#160; Recibe un valor desde programador de tareas. 0 si el programador está desactivado.&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;RPLifeInterval&lt;/b&gt;      &lt;br /&gt;Período de vida(TTL), en segundos, de los puntos de restauración. Llegado el momento si un punto de restauración sigue en el sistema, se elimina. Valor predeterminado (7776000) = 90 días.&lt;/li&gt;    &lt;li&gt;&lt;b&gt;RPSessionInterval&lt;/b&gt;      &lt;br /&gt;Valor, en segundos, de espera antes de crear puntos de comprobación automáticos del equipo (el tiempo que el equipo ha estado activo). El valor predeterminado es cero (0), lo que significa que esta característica está desactivada.&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Windows Vista:&lt;/strong&gt;&amp;#160; Recibe un 0 si Restaurar Sistema está deshabilitado. &lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;ThawInterval&lt;/b&gt;      &lt;br /&gt;Valor, en segundos, de tiempo que Restaurar sistema espera antes de activarse a sí mismo desde un estado deshabilitado, si se cumplen las condiciones para ello. Si abrimos la ventana de Restaurar sistema, se activa inmediatamente.&lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Valores que no deben modificarse&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;CreateFirstRunRp&lt;/b&gt;      &lt;br /&gt;Valor que indica al equipo que cree el primer punto de restauración, como cuando Restaurar sistema se desactiva y se vuelve a activar seguidamente, o lo deshabilitamos e inmediatamente lo volvemos a habilitar. &lt;strong&gt;&lt;em&gt;&lt;u&gt;No debe debe modificarse bajo ninguna circunstancia, cualquier modificación puede dejar al equipo irrecuperable.&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;b&gt;DisableSR&lt;/b&gt;      &lt;br /&gt;Activa o desactiva Restaurar sistema. Si se desactiva en el Registro, los puntos de restauración existentes no se quitan. No debe modificarse, debe activarse o desactivarse sólo desde la interfaz de usuario. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;RestoreDiskSpaceError&lt;/b&gt;      &lt;br /&gt;Indicación al equipo para que muestre un mensaje de error si Restaurar sistema no puede ejecutarse por problemas de espacio en disco. Es informativo. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;RestoreSafeModeStatus&lt;/b&gt;      &lt;br /&gt;Indicación de si la última restauración fue en Modo a prueba de errores. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;TimerInterval&lt;/b&gt;      &lt;br /&gt;Tiempo de activación, en segundos. Momento u hora en la que Restaurar sistema se &amp;quot;activa&amp;quot; y comprueba su espacio en disco. Predeterminado 120, &lt;strong&gt;&lt;em&gt;&lt;u&gt;no debe modificarse ya que puede afectar al rendimiento del equipo.&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;&lt;u&gt;Vista-W7&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Normalmente Windows utiliza el 15% del espacio disponible en la unidad para guardar los puntos de restauración. En XP esta opción se hace desde la pestaña Restaurar Sistema del cuadro de diálogo de las propiedades del Sistema,&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Pero esto ya no está en Vista-W7, aunque podemos hacer lo siguiente:&lt;/p&gt;  &lt;p&gt;Vamos a la llave del Registro &lt;em&gt;HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\SystemRestore\Cfg&lt;/em&gt; &lt;/p&gt;  &lt;p&gt;Doble clic en &lt;strong&gt;DiskPercent&lt;/strong&gt;, el valor predeterminado es F (15 en decimal), para cambiar a 10% escribiríamos A.&lt;/p&gt;  &lt;p&gt;Si queremos cambiar la frecuencia de los puntos de restauración automáticos:&lt;/p&gt;  &lt;p&gt;Vamos a la llave del Registro &lt;em&gt;HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\SystemRestore&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Cambiamos el valor &lt;strong&gt;RPGlobalInterval&lt;/strong&gt; que de forma predeterminada es 86400 segundos (24 horas) a por ejemplo: 43200 (a8c0) que serían 12 horas.&lt;/p&gt;  &lt;p&gt;Cuando se crean nuevos puntos se van eliminando los viejos si no hay espacio en disco suficiente, al estilo FIFO (Primero en entrar primero en salir).&lt;/p&gt;  &lt;p&gt;De forma pretederminada, Vista-W7 elimina puntos de restauración a los 136 años, je! en XP eran 90 días.&lt;/p&gt;  &lt;p&gt;Pero bueno, lo podemos cambiar en valor &lt;strong&gt;RPLifeInterval&lt;/strong&gt;, por ejemplo al valor que tenía XP, 7776000 (76A700).&lt;/p&gt;  &lt;p&gt;Para ver el espacio que ocupan los puntos de restauración, más abajo indico los comandos de vssadmin necesarios.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.softpedia.com/get/Tweak/System-Tweak/System-Restore-Point-Creator.shtml" target="_blank"&gt;Utilidad para crear puntos de restauración&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Para cambiar la frecuencia de los puntos automáticos sin tocar el registro:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.vista4beginners.com/files/CSRF_1_0.zip"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="CSFRregistry" border="0" alt="CSFRregistry" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7384.CSFRregistry_5F00_527B31DE.jpg" width="244" height="110" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;u&gt;vssadmin&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Un punto de restauración es ahora un tipo de Shadowcopy. Los puntos de restauración se crean con File Backup, Complete PC backup, la tarea diaria de system restore y en las instalaciones de aplicaciones y controladores. &lt;/p&gt;  &lt;p&gt;Las shadowcopy que crea Complete PC no son puntos de restauración, aunque ambos tipos de copia existan en el mismo lugar de almacenamiento de cada volumen. &lt;/p&gt;  &lt;p&gt;El lugar de almacenamiento de las shadowcopy es por tanto el area destinada en cada volumen para el almacenamiento de cada shadow copy. &lt;/p&gt;  &lt;p&gt;El comando &lt;strong&gt;vssadmin list shadowstorage&lt;/strong&gt; (con privilegios) obtiene como salida: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8867.vssadminlist_5F00_6D49E89B.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="vssadminlist" border="0" alt="vssadminlist" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/4263.vssadminlist_5F00_thumb_5F00_4946A8B0.jpg" width="290" height="154" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;con &lt;strong&gt;vssadmin resize shadowstorage&lt;/strong&gt; podemos cambiar el tamaño del espacio en el volumen deseado, y, con &lt;strong&gt;vssadmin list shadows&lt;/strong&gt; obtendremos una salida resumen, como:&lt;/p&gt;  &lt;p&gt;------------------------------&lt;/p&gt;  &lt;p&gt;Microsoft Windows [Versión 6.1.7600]   &lt;br /&gt;Copyright (c) 2009 Microsoft Corporation. Reservados todos los derechos. &lt;/p&gt;  &lt;p&gt;C:\Windows\system32&amp;gt;vssadmin list shadows   &lt;br /&gt;vssadmin 1.1 - Herramienta administrativa de línea de comandos del Servicio de instantáneas de volumen. (C) Copyright 2001-2005 Microsoft Corp. &lt;/p&gt;  &lt;p&gt;Contenido de&amp;#160; id. de conjunto de instantáneas: {357f2227-c25f-49b5-8133-9f9fde3e4666}   &lt;br /&gt;&amp;#160;&amp;#160; Contenía 1 instantáneas en el momento de su creación: 09/12/2009 09:02:24    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Id. de instantáneas: {18fbf63d-a4b8-43c6-b52e-4f2c8e4856e4}    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Volumen original: (C:)\\?\Volume{7113d9e8-3624-11de-b05a-806e6f6e6963}\ &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Volumen de instantáneas: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Equipo de origen: Juansa-PC    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Equipo de servicio: Juansa-PC    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Proveedor: &amp;#39;Microsoft Software Shadow Copy provider 1.0&amp;#39;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Tipo: ClientAccessibleWriters    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Atributos: Persistente, Accesible para el cliente, Sin liberación automática, Diferencial, Recuperado automáticamente &lt;/p&gt;  &lt;p&gt;Contenido de&amp;#160; id. de conjunto de instantáneas: {46713632-9da9-4348-9475-0dea7c78a04f}   &lt;br /&gt;&amp;#160;&amp;#160; Contenía 1 instantáneas en el momento de su creación: 09/12/2009 09:16:04    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Id. de instantáneas: {13a94392-3d04-4ecc-b8e7-cb1cb5390924}    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Volumen original: (C:)\\?\Volume{7113d9e8-3624-11de-b05a-806e6f6e6963}\ &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Volumen de instantáneas: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Equipo de origen: Juansa-PC    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Equipo de servicio: Juansa-PC    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Proveedor: &amp;#39;Microsoft Software Shadow Copy provider 1.0&amp;#39;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Tipo: ClientAccessibleWriters    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Atributos: Persistente, Accesible para el cliente, Sin liberación automática, Diferencial, Recuperado automáticamente &lt;/p&gt;  &lt;p&gt;Contenido de&amp;#160; id. de conjunto de instantáneas: {ccd27605-a70e-4dba-9cb1-33b818eb8110}   &lt;br /&gt;&amp;#160;&amp;#160; Contenía 1 instantáneas en el momento de su creación: 11/12/2009 07:48:21    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Id. de instantáneas: {89bf1497-9510-4b81-9e33-bdbe0cd45378}    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Volumen original: (C:)\\?\Volume{7113d9e8-3624-11de-b05a-806e6f6e6963}\ &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Volumen de instantáneas: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Equipo de origen: Juansa-PC    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Equipo de servicio: Juansa-PC    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Proveedor: &amp;#39;Microsoft Software Shadow Copy provider 1.0&amp;#39;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Tipo: ClientAccessibleWriters    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Atributos: Persistente, Accesible para el cliente, Sin liberación automática, Diferencial, Recuperado automáticamente &lt;/p&gt;  &lt;p&gt;Contenido de&amp;#160; id. de conjunto de instantáneas: {e8c1e12b-063d-46ef-839c-bac5d5f39fe3}   &lt;br /&gt;&amp;#160;&amp;#160; Contenía 1 instantáneas en el momento de su creación: 15/12/2009 08:06:04    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Id. de instantáneas: {9f0aae64-ffa8-4f52-9c16-0ddb228a825e}    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Volumen original: (C:)\\?\Volume{7113d9e8-3624-11de-b05a-806e6f6e6963}\ &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Volumen de instantáneas: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy4   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Equipo de origen: Juansa-PC    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Equipo de servicio: Juansa-PC    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Proveedor: &amp;#39;Microsoft Software Shadow Copy provider 1.0&amp;#39;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Tipo: ClientAccessibleWriters    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Atributos: Persistente, Accesible para el cliente, Sin liberación automática, Diferencial, Recuperado automáticamente &lt;/p&gt;  &lt;p&gt;Contenido de&amp;#160; id. de conjunto de instantáneas: {fb976c3b-5c64-44d3-be68-2d7a9c3c8bf0}   &lt;br /&gt;&amp;#160;&amp;#160; Contenía 1 instantáneas en el momento de su creación: 15/12/2009 09:43:18    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Id. de instantáneas: {774842c6-7163-4db8-b2ad-9396e72fbc07}    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Volumen original: (C:)\\?\Volume{7113d9e8-3624-11de-b05a-806e6f6e6963}\ &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Volumen de instantáneas: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy5   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Equipo de origen: Juansa-PC    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Equipo de servicio: Juansa-PC    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Proveedor: &amp;#39;Microsoft Software Shadow Copy provider 1.0&amp;#39;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Tipo: ClientAccessibleWriters    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Atributos: Persistente, Accesible para el cliente, Sin liberación automática, Diferencial, Recuperado automáticamente &lt;/p&gt;  &lt;p&gt;C:\Windows\system32&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;-----------------------&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1745947" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>El Registro: Copias de seguridad</title><link>http://msmvps.com/blogs/juansa/archive/2009/12/14/el-registro-copias-de-seguridad.aspx</link><pubDate>Mon, 14 Dec 2009 12:44:27 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1745506</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1745506</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/12/14/el-registro-copias-de-seguridad.aspx#comments</comments><description>&lt;p&gt;Ya que mencionaba el consejo de hacer copia del registro antes de manipularlo…&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;seguridad ante todo&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Es fácil olvidarse de hacer una copia de seguridad antes de cualquier cambio, por simple que sea. Pero, ¿Cómo sabemos que ese pequeño cambio no causará un error grave? No lo sabemos, así qué hay que hacer una copia de seguridad ‘siempre’ antes de cualquier cambio.&lt;/p&gt;  &lt;p&gt;Para realizar las copias de seguridad distinguiremos varios aspectos:&lt;/p&gt;  &lt;p&gt;- Copia de valores, que podremos restaurar rápidamente en el registro.&lt;/p&gt;  &lt;p&gt;- Exportar la parte del registro que nos interese guardar a un archivo REG.&lt;/p&gt;  &lt;p&gt;- Exportar las ramas hacia archivos de sección (hive files).&lt;/p&gt;  &lt;p&gt;Cualquiera de los tres nos servirá para recuperar el registro en la mayoría de los casos.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;copiar valores&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Una manera fácil de copia de seguridad de los valores antes de cambiarlos:&lt;/p&gt;  &lt;p&gt;Renómbralos. Es decir, cambia su nombre original, añadiéndoles algo que te indique que es una copia, incluso añade la fecha si quieres hacer un seguimiento de cambios. Por ejemplo:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7701.reg_5F00_copyvalues_5F00_14518708.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="reg_copyvalues" border="0" alt="reg_copyvalues" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6330.reg_5F00_copyvalues_5F00_thumb_5F00_08522785.jpg" width="401" height="145" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Tenemos una copia del valor deseado en el propio registro, que podemos recuperar rápidamente con eliminar el nuevo y cambiarle el nombre al marcado como COPIA.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Exportar a REG&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Manera de tener una copia para restaurarla desde un archivo.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Seleccionamos la rama a exportar.&lt;/li&gt;    &lt;li&gt;Menú Archivo y Exportar&lt;/li&gt;    &lt;li&gt;Elegiremos la opción Rama seleccionada&lt;/li&gt;    &lt;li&gt;Le daremos un nombre al archivo REG&lt;/li&gt;    &lt;li&gt;Ya tenemos un archivo con datos copiados del registro y listo para integrarlo de nuevo con un doble clic.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;¿Que pasa al intentar integrarlo de nuevo?&lt;/p&gt;  &lt;p&gt;Si el valor no existe en el REG ni en el Registro: NADA&lt;/p&gt;  &lt;p&gt;Si el valor no existe en el REG pero sí en el Registro: El valor del registro no cambia ni se elimina.&lt;/p&gt;  &lt;p&gt;Si el valor existe en el REG pero no en el Registro: El valor se añade al registro&lt;/p&gt;  &lt;p&gt;Si el valor existe tanto en el REG como en el Registro: El valor del registro se modifica con el valor del archivo REG.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Exportar a archivos de sección&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Dicen que es la mejor manera de tener copias de seguridad del Registro. Cuando importamos un archivo de sección con una llave, Regedit reemplaza la llave y todas sus sub-llaves con los valores del archivo. Es decir, se eliminará cualquier valor añadido desde la copia del archivo de sección.&lt;/p&gt;  &lt;p&gt;Exportar a un archivo de sección es similar a hacerlo a un archivo REG, tan sólo hemos de cambiar el tipo de archivo en el cuadro de diálogo de exportar en lugar de REG y darles la extensión que consideremos más oportuna.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="reg_export_hivefile" border="0" alt="reg_export_hivefile" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1121.reg_5F00_export_5F00_hivefile_5F00_thumb_5F00_7A163F45.jpg" width="267" height="248" /&gt;&lt;/p&gt;  &lt;p&gt;Para importar uno de estos archivos, haremos lo mismo después de escoger la acción Importar del menú Archivo.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2110.reg_5F00_import_5F00_hivefile_5F00_1339E309.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="reg_import_hivefile" border="0" alt="reg_import_hivefile" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5734.reg_5F00_import_5F00_hivefile_5F00_thumb_5F00_03525058.jpg" width="276" height="235" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;No confundamos importar/exportar con cargar/descargar. Al importar realizamos cambios en el registro, mientras que al cargar creamos una nueva rama entera que Windows no usa, y sólo nos servirá para examinarla. El descargar sólo descargará archivos que hayamos cargado manualmente.&lt;/p&gt;  &lt;p&gt;Considerando que la importación de un archivo de sección es una buena manera de restauración de una rama entera, cargar el archivo es un buen método de comprobación de valores originales.&lt;/p&gt;  &lt;p&gt;Cargamos un archivo en el registro, el que contiene nuestros valores, Regedit nos solicita un nombre de llave, le damos uno que nos identifique la sección; ahora disponemos de una visión de los valores que contienen el archivo y que podemos comparar con los valores de la misma rama que hay actualmente en el registro, pudiendo copiar los actuales y pegar los que tenemos guardados con el fin de configurar lo deseado.&lt;/p&gt;  &lt;p&gt;RECUERDA DESCARGAR EL ARCHIVO ANTES DE CERRAR EL REGISTRO!!&lt;/p&gt;  &lt;p&gt;Finalmente, una utilidad vía línea de comandos es &lt;a href="http://www.petri.co.il/reg_command_in_windows_xp.htm" target="_blank"&gt;REG.EXE&lt;/a&gt;. Nos ofrece muchas de las características de Regedit y algunas otras más.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1745506" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>Consejo y aviso</title><link>http://msmvps.com/blogs/juansa/archive/2009/12/11/consejo-y-aviso.aspx</link><pubDate>Fri, 11 Dec 2009 11:38:09 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1744811</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1744811</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/12/11/consejo-y-aviso.aspx#comments</comments><description>&lt;p align="center"&gt;Como comenta Iván, manipular el registro no está exento de su peligrosidad, así que haciendo caso de su consejo OS RECUERDO:&lt;/p&gt;  &lt;p class="CodeBlock" align="center"&gt;HACER COPIA DE SEGURIDAD DEL REGISTRO ANTES DE CUALQUIER MANIPULACIÓN DEL MISMO. UN MAL USO PODRÍA DEJAR AL SISTEMA DAÑADO Y SIN RESPONDER!!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1744811" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Otros/default.aspx">Otros</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>El registro: Exportación</title><link>http://msmvps.com/blogs/juansa/archive/2009/12/11/el-registro-exportaci-243-n.aspx</link><pubDate>Fri, 11 Dec 2009 10:51:20 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1744807</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1744807</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/12/11/el-registro-exportaci-243-n.aspx#comments</comments><description>&lt;p&gt;Exportar parte o todo el registro es algo que los que nos dedicamos a esto deberíamos hacer con frecuencia. Con Exportar conseguimos guardar en un archivo partes del registro, los suelen denominar archivos REG, aunque los archivos de secciones (hive files) son más útiles. Es una buena manera de hacer copias de seguridad de valores de configuración que queramos restaurar con facilidad con posterioridad, si lo necesitamos. Es una forma de compartir configuraciones también.&lt;/p&gt;  &lt;p&gt;Los archivos REG nos servirán con propósitos prácticos además, por ejemplo como implantación.&lt;/p&gt;  &lt;p&gt;Regedit exporta los valores de cuatro maneras: registro, registro w9x/NT, archivos de sección y archivos de texto. Las diferencias entre ellos son significativas. Para exportar una rama del registro:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Seleccionamos la llave superior de la rama que queremos exportar &lt;/li&gt;    &lt;li&gt;Menú archivo, pulsamos en Exportar y accedemos al diálogo de exportar archivo de registro.     &lt;br /&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1680.registro_5F00_export01_5F00_2F2BA512.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="registro_export01" border="0" alt="registro_export01" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0513.registro_5F00_export01_5F00_thumb_5F00_29DF4F12.jpg" width="244" height="157" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Escribimos un nombre para el archivo que vamos a crear. &lt;/li&gt;    &lt;li&gt;Seleccionamos una de las opciones, dependiendo del rango a exportar:      &lt;ol&gt;       &lt;li&gt;Si queremos todo el registro: opción TODO &lt;/li&gt;        &lt;li&gt;Sólo la rama seleccionada: Opción RAMA. &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Elegimos el tipo de archivo para la exportación. &lt;/li&gt;    &lt;li&gt;Finalmente pulsamos en guardar.     &lt;br /&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7115.registro_5F00_export02_5F00_4034F457.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="registro_export02" border="0" alt="registro_export02" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7534.registro_5F00_export02_5F00_thumb_5F00_6C769C9D.jpg" width="244" height="229" /&gt;&lt;/a&gt;&amp;#160;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Importar un archivo al registro es como abrir un archivo. Seleccionamos importar y buscamos el archivo o simplemente hacemos doble clic sobre el que queremos integrar en el Registro.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Archivos de registro&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Los archivos de registro son similares a los archivos INI, cada sección representa una llave, y cada elemento dentro de una sección un valor.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8130.registro_5F00_icon_5F00_7017482B.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="registro_icon" border="0" alt="registro_icon" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7534.registro_5F00_icon_5F00_thumb_5F00_2DA736A6.jpg" width="136" height="152" /&gt;&lt;/a&gt; &lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8130.registro_5F00_file_5F00_0AE5FEE9.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="registro_file" border="0" alt="registro_file" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2335.registro_5F00_file_5F00_thumb_5F00_43B7E4FC.jpg" width="244" height="242" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Quizás lo más importante de estos REG de versión 5 es que son Unicode y algunos programas no los pueden manejar correctamente. Debido a ser Unicode, cada carácter en valores REG_EXPAND_SZ y REG_MULTI_SZ es de DOS (2) bytes. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Aviso:&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;OJO con las versiones de los REG!, no hay que importar archivos creados en una versión de Windows en otra versión de Windows.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Los archivos REG de w9x/NT son de versión 4, es decir, son ANSI.&lt;/p&gt;  &lt;p&gt;Los archivos de sección son archivos binarios que contienen partes del Registro. Aunque Regedit los muestre juntos y debidamente estructurados como una sólo unidad lógica. Podemos exportar ramas a archivos de sección que usaremos en otros equipos u otros usuarios. Esta exportación es como los REG, sin poder editar o modificar como los REG, tampoco pueden apuntar a configuraciones individuales. La ventaja entonces es centra en la posibilidad de cargarlos y editarlos con Regedit sin que remplacen a la configuración existente. Usando nuestro sentido común podremos elegir entre archivos de sección o archivos REG.&lt;/p&gt;  &lt;p&gt;Los archivos de texto no se pueden importar hacia el registro, así que parece que nos servirán sólo para imprimirlos o leerlos con más comodidad que los propios REG.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1744807" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>El Registro: Editándolo</title><link>http://msmvps.com/blogs/juansa/archive/2009/12/10/el-registro-edit-225-ndolo.aspx</link><pubDate>Thu, 10 Dec 2009 10:40:03 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1744620</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1744620</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/12/10/el-registro-edit-225-ndolo.aspx#comments</comments><description>&lt;p&gt;Primero nos aseguramos que no hay nada que nos prohíba manipular el registro y que podemos añadir, eliminar o renombrar llaves y valores.&lt;/p&gt;  &lt;p&gt;Regedit nos muestra en pantalla un editor distinto dependiendo del tipo de valor:&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="648"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="292"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3733.registro_5F00_binario_5F00_2C77FDE1.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="registro_binario" border="0" alt="registro_binario" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8611.registro_5F00_binario_5F00_thumb_5F00_0340F8DB.jpg" width="248" height="221" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="348"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8623.registro_5F00_MULTI_5F00_2F1E8D88.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="registro_MULTI" border="0" alt="registro_MULTI" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2766.registro_5F00_MULTI_5F00_thumb_5F00_37F0FC56.jpg" width="244" height="220" /&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="292"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0677.registro_5F00_cadena_5F00_0B8F0876.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="registro_cadena" border="0" alt="registro_cadena" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7446.registro_5F00_cadena_5F00_thumb_5F00_29FE6AC1.jpg" width="259" height="168" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="348"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3324.registro_5F00_DWORD_5F00_42093B95.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="registro_DWORD" border="0" alt="registro_DWORD" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7140.registro_5F00_DWORD_5F00_thumb_5F00_79DE1069.jpg" width="301" height="169" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;El editor de cadena nos servirá en los tipos REG_SZ y REG_EXPAND_SZ, el DWORD para REG_DWORD, el binario para valores REG_BINARY, y el multi-string para los REG_MULTI_SZ.&lt;/p&gt;  &lt;p&gt;Para cambiar un valor, Editar, Modificar y escribir el nuevo valor dentro de la casilla correspondiente. Cuando cambiamos un valor éste se aplica de inmediato, aunque no signifique que Windows u otro programa incorporen el cambio. De hecho, hay cambios que hasta que el sistema o programa no se reinicien no se cargarán.&lt;/p&gt;  &lt;p&gt;Lo normal es realizar una copia de seguridad antes de modificar cualquier valor, no estamos libres de errores, para eso somos humanos.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Añadir llaves o valores&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Podemos crear llaves y valores sólo si sabemos lo que estamos haciendo:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Seleccionamos la llave donde añadir &lt;/li&gt;    &lt;li&gt;clic derecho, elegimos Nuevo &lt;/li&gt;    &lt;li&gt;Seleccionamos el tipo de valor     &lt;br /&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7127.registro_5F00_addkey_5F00_3051531D.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="registro_addkey" border="0" alt="registro_addkey" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3733.registro_5F00_addkey_5F00_thumb_5F00_45D12329.jpg" width="244" height="168" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Le damos un nombre y lo editamos para introducir el valor/es que deseamos. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;u&gt;Borrar llaves o valores&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Deberíamos exportar aquéllas llaves/valores que vamos a eliminar, por seguridad.&lt;/p&gt;  &lt;p&gt;Clic derecho sobre el valor/llave y Eliminar&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3733.registro_5F00_deletekey_5F00_4B44B52F.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="registro_deletekey" border="0" alt="registro_deletekey" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0020.registro_5F00_deletekey_5F00_thumb_5F00_2F5B324A.jpg" width="244" height="236" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Renombrar llaves o valores&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Clic en la llave/valor y renombrarlo. También podemos seleccionar con clic derecho la opción Cambiar nombre.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1744620" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>El Registro: Usando el editor</title><link>http://msmvps.com/blogs/juansa/archive/2009/12/09/el-registro-usando-el-editor.aspx</link><pubDate>Wed, 09 Dec 2009 12:33:09 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1744410</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1744410</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/12/09/el-registro-usando-el-editor.aspx#comments</comments><description>&lt;p&gt;El editor del registro es la herramienta que usaremos para editar el registro directamente. Cada vez que iniciamos sesión el registro cambia, sea a nivel del equipo o porque nosotros cambiamos algo en el panel de control, aplicamos una actualización, ejecutamos un programa concreto, etc… Con el editor del registro comprometemos los valores del registro sin la ayuda de una interfaz de usuario. Esto hace de esta herramienta una más poderosas y peligrosas de las del sistema operativo. Por una parte personalizamos el sistema de maneras que no son posibles mediante el interfaz de usuario, por otra, ninguna otra herramienta controla doblemente los cambios que efectuamos.&lt;/p&gt;  &lt;p&gt;Toda versión de Windows (desde Windows 3.1) ha tenido un editor del registro. Por supuesto, durante el paso del tiempo y versiones se ha ido mejorando. &lt;/p&gt;  &lt;p&gt;No tenemos ningún acceso directo al editor del registro, REGEDIT, en el menú de inicio, además de que Windows ofrece diversas gpo para limitar el acceso y uso de esta herramienta.&lt;/p&gt;  &lt;p&gt;Regedit se encuentra en la raíz del sistema, normalmente C:\Windows. Si queremos ejecutarlo es tan simple como acceder a Ejecutar desde el menú de inicio y escribir regedit.&lt;/p&gt;  &lt;p&gt;Con toda su potencia, Regedit se mantiene como un simple programa con un interfaz de usuario directo. Sus menús son simples. Tiene una barra de estado que muestra en pantalla el nombre de la llave actual. Sus ventanas contienen dos paneles, divididos por una línea de separación que podemos arrastrar y soltar para cambiar el ancho de cada uno de los paneles. Con doble clic en la línea se obtiene una división automática. En el panel de la izquierda se muestran las llaves y su jerarquía, mientras en el panel de la derecha es el de los valores.&lt;/p&gt;  &lt;p&gt;Regedit guarda su configuración cada vez que lo cerramos, es decir, que cuando volvamos a abrirlo se nos mostrará en el lugar en que lo utilizamos por última vez.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Panel de llaves&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Este panel muestra la jerarquía del registro. Se organiza con cada llave, sus hijas o sub llaves colgando de ellas. Arriba encontramos a MI equipo, Mi PC o Equipo, que representa al equipo evidentemente. Cuando se conecta con otro registro de otro equipo de la red, veremos el nombre del equipo en el nivel superior del panel de llaves también. Debajo de MI PC (Equipo) vemos cada una de las llaves raíz del registro local, debajo de estas si vamos desplegándolas, están sus sub-llaves. Cuando alguien se refiera a una Rama es a unaave y sus sub-llaves. Una rama se extiende pulsando en el signo + (más) se retrae si pulsamos en el signo –(menos). Si pulsamos en cualquier llave, podremos obsrvar sus valores en el panel de valores.&lt;/p&gt;  &lt;p&gt;Como comentábamos anteriormente, Windows almacena diferentes partes del registro en diferentes archivos de secciones. Regedit muestra en pantalla todos los archivos de secciones juntos, para ver un registro unificado. Podemos ver cuando una rama es su propio archivo de sección ya que su nombre se encuentra en mayúsculas. &lt;/p&gt;  &lt;p&gt;&lt;u&gt;Panel de valores&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Este panel muestra en pantalla los valores de la llave seleccionada. Tenemos tres columnas: Nombre, tipo y datos. Podemos variar la anchura de las columnas arrastrando los divisores. Cada fila contiene un valor único. El primero de los valores siempre es Default, que es el valor RG_SZ predeterminado de la llave.&lt;/p&gt;  &lt;p&gt;Como parece obvio, la columna Nombre nos muestra el nombre junto a un icono que indica el tipo de valor, si es una cadena o es un valor binario.&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="90"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0272.registryicons_5F00_34330423.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="registryicons" border="0" alt="registryicons" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/4401.registryicons_5F00_thumb_5F00_06F0825B.jpg" width="56" height="81" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="310"&gt;         &lt;p&gt;&amp;#160;&lt;/p&gt;          &lt;p&gt;El primero nos indica un valor binario, mientras el segundo una cadena.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Dentro del editor tenemos la opción de búsqueda, que nos será útil para hallar llaves, valores o datos que nos interesen.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0184.registroBUSCAR_5F00_7881757B.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="registroBUSCAR" border="0" alt="registroBUSCAR" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6052.registroBUSCAR_5F00_thumb_5F00_24C31DC2.jpg" width="345" height="129" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;O, tener las llaves deseadas como favoritas.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0184.registrofavoritos_5F00_08B4EF88.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="registrofavoritos" border="0" alt="registrofavoritos" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2766.registrofavoritos_5F00_thumb_5F00_379CC2CE.jpg" width="345" height="134" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Después de varias búsquedas comenzaremos a conocer como buscar en el registro más rápidamente, donde comenzar y acabar las búsquedas, seguir la búsqueda con la tecla F3 o ver que nos indica la barra de estado. Aún así es bueno tener en cuenta:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Limitar la búsqueda a la llave HKCR si buscamos asociaciones de archivo.&lt;/li&gt;    &lt;li&gt;Mirar en KHCU\Software y HKLM\SOFTWARE si queremos configuraciones de programas.&lt;/li&gt;    &lt;li&gt;En HKCU si lo que buscamos son configuraciones por usuario, y en HKLM si son por equipo.&lt;/li&gt;    &lt;li&gt;Finalmente la rama HKLM\System es la que contiene controladores de dispositivo y configuraciones de servicios.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Hay herramientas de búsqueda del registro que son de terceros.&lt;/p&gt;  &lt;p&gt;Como Registry Crawler (que al parecer 4dev ha dejado de estar disponible)&lt;/p&gt;  &lt;p&gt;Como &lt;a href="http://www.funduc.com/registry_toolkit.htm" target="_blank"&gt;Registry Toolkit&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Como &lt;a href="http://www.resplendence.com/downloads" target="_blank"&gt;Resplendent Registrar&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;o, como &lt;a href="http://www.pcmag.com/article2/0,2817,73719,00.asp" target="_blank"&gt;Registry detective&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1744410" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>El Registro: Herramientas y archivos de las secciones</title><link>http://msmvps.com/blogs/juansa/archive/2009/12/03/el-registro-herramientas-y-archivos-de-las-secciones.aspx</link><pubDate>Thu, 03 Dec 2009 13:57:55 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1743476</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1743476</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/12/03/el-registro-herramientas-y-archivos-de-las-secciones.aspx#comments</comments><description>&lt;p&gt;Aunque hay diversas herramientas para el registro de terceros, sean libres o de probar y comprar, las más comúnmente utilizadas, creo, son:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;El editor del registro&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Herramienta básica y principal.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Reg.exe&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Herramienta en línea de comandos para el registro, nos permite scripts para el registro en archivos de lotes.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;WinDiff&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Herramienta de las Windows Support Tools.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&lt;u&gt;Archivos de secciones&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Con el editor del registro vemos la estructura del registro. Es como Windows nos lo presenta y lo usan los programas, a pesar de cómo lo organiza el sistema operativo en el disco, que es algo más complicado.&lt;/p&gt;  &lt;p&gt;Físicamente, Windows organiza el registro en secciones (ramas almacenadas en archivos únicos), cada una es un archivo binario denominado Hive File. Para cada uno de estos, Windows crea archivos adicionales de compatibilidad que contienen copias de seguridad de los datos de la sección. Estas copias permiten al sistema repararla durante la instalación e inicio si hubiese pasado algo malo. Los hives los encontramos sólo en dos llaves raíz: HKLM y HKU (ya que las demás llaves son enlaces dentro de estas dos). Los archivos de las secciones y los archivos de compatibilidad que no pertenezcan a HKU se encuentran en&amp;#160; &lt;strong&gt;&lt;em&gt;raíz_del_sistema\system32\config&lt;/em&gt;&lt;/strong&gt;. Las de HKU están en los perfiles de usuario.&lt;/p&gt;  &lt;p&gt;La correspondencia entre las secciones del registro y el archivo de sección en HKLM es:&lt;/p&gt;  &lt;p&gt;HKLM\SAM&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -----&amp;gt; SAM, SAM.log&lt;/p&gt;  &lt;p&gt;HKLM\SECURITY&amp;#160;&amp;#160;&amp;#160; -----&amp;gt; SECURITY, SECURITY.log&lt;/p&gt;  &lt;p&gt;HKLM\SOFTWARE&amp;#160; -----&amp;gt; Software, Software.log, Software.sav&lt;/p&gt;  &lt;p&gt;HKLM\SYSTEM&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -----&amp;gt; System, System.log, System.sav.&lt;/p&gt;  &lt;p&gt;Los .log son transacciones y cambios en la sección, mientras los .sav son una copia del archivo de sección hecho al terminar la fase de modo-texto del programa de instalación de Windows.&lt;/p&gt;  &lt;p&gt;La HKLM\HARDWARE es una sección dinámica, Windows crea cada vez el inicio del sistema y por ello no guarda la sección como un archivo de sección al apagar el equipo.&lt;/p&gt;  &lt;p&gt;Cada sub-llave en HKU es una sección también, HKU\.DEFAULT por ejemplo cuyo archivo de sección es &lt;strong&gt;&lt;em&gt;raíz_del_sistema\system32\config\default&lt;/em&gt;&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;HKU\SID&amp;#160; --&amp;gt; NTUSER.DAT&lt;/p&gt;  &lt;p&gt;HKU\SID_Classes –&amp;gt; &lt;strong&gt;&lt;em&gt;perfil_usuario\Local Settings\Application Data\Microsoft\Windows\UsrClass.dat&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Cada vez que un usuario inicia sesión en Windows, el sistema usa el perfil predeterminado de usuario para crear un nuevo perfil para el que inicia. El perfil contiene un nuevo NTUSER.DAT, que no es más que la sección de perfil de usuario.&lt;/p&gt;  &lt;p&gt;Si queremos ver los perfiles cargados por Windows y el archivo de sección que les corresponde miraremos en &lt;strong&gt;&lt;em&gt;HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList&lt;/em&gt;&lt;/strong&gt;. Esta llave contiene una sub-llave por cada perfil que el sistema haya cargado, antes o ahora, cuyo nombre es el de la sección en HKU y el valor ProfileImagePath es el que contiene la ruta al archivo de sección, que siempre es NTUSER.DAT.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1743476" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>El Registro: organización</title><link>http://msmvps.com/blogs/juansa/archive/2009/11/30/el-registro-organizaci-243-n.aspx</link><pubDate>Mon, 30 Nov 2009 13:55:15 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1743061</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1743061</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/11/30/el-registro-organizaci-243-n.aspx#comments</comments><description>&lt;p&gt;Como una vista esencial y panorámica, diremos que el registro está compuesto de 5 llaves raíz y de ellas las &lt;strong&gt;&lt;em&gt;HKLM &lt;/em&gt;&lt;/strong&gt;y &lt;strong&gt;&lt;em&gt;HKU&lt;/em&gt;&lt;/strong&gt; son más importantes que el resto. Son las llaves que Windows guarda en disco, mientras que el resto son enlaces a sub-llaves de una u otra. HKCU es un enlace a una sub-llave de HKU, HKCR y HKCC son enlaces a sub-llaves de HKLM.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3821.registro03_5F00_037CDACA.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="registro03" border="0" alt="registro03" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6557.registro03_5F00_thumb_5F00_7F94A79B.jpg" width="418" height="347" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Las configuraciones pueden ser para el usuario o para el equipo. En la llave &lt;strong&gt;&lt;em&gt;HKCU&lt;/em&gt;&lt;/strong&gt; tenemos los de usuarios y en la &lt;strong&gt;&lt;em&gt;HKLM&lt;/em&gt;&lt;/strong&gt; la del equipo.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;HKEY_USERS&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Aquí nos encontramos al menos con:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;.DEFAULT&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Configuración por usuario que usa Windows para mostrar el escritorio antes de que cualquier usuario inicie sesión. No es lo mismo que el perfil predeterminado, que utiliza Windows para crear la configuración de los usuarios la primera vez que inician sesión en el equipo.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;SID&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Donde SID es el identificador de seguridad de la consola de usuario, contiene configuración por usuario. HKCU enlaza con esta llave. Valores de preferencia de escritorio de usuario, configuración de Panel de control, etc…&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;SID_classes&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Donde SID, al igual que el anterior es el identificador de seguridad de la consola de usuario, contiene configuración por usuario, registro de clases y asociaciones de archivos. Windows mezcla los contenidos de HKLM\SOFTWARE\Classes y HKU\SID_Classes en HKCR.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;Suelen verse otros SID en HKU, como los SID conocidos: s-1-5-18, s-1-5-19, s-1-5-20, etc…&lt;/p&gt;  &lt;p&gt;Cualquier otra sub-llave pertenece a usuarios secundarios, es decir, si usamos el comando RunAs para ejecutar algún programa como usuario distinto.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7041.registro04_5F00_4CC731D8.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="registro04" border="0" alt="registro04" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3833.registro04_5F00_thumb_5F00_1031C3EC.jpg" width="399" height="176" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;HKEY_CURRENT_USER&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Aquí encontramos la configuración por usuario de la consola del usuario. Esta llave raíz está enlazada a HKU\SID (El SID representa cada identificador de usuario). Esta rama incluye las variables de entorno, configuración del escritorio, conexiones de red, impresoras, y preferencias de las aplicaciones.&lt;/p&gt;  &lt;p&gt;Así a bote pronto:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;AppEvents&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Sonidos asociados con eventos.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;Console&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Almacena datos del subsistema de consola, que almacena todos modos caracteres de aplicaciones, incluido el prompt de MS-DOS. La llave Console puede contener sub-llaves de ventanas de comando personalizadas.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;Control Panel&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Configuración de la apariencia del escritorio, configuración de accesibilidad y la configuración regional. Muchos de estos valores se configuran desde el Panel de Control, sin embargo dentro de esta llave hay un montón de configuraciones útiles que carecen de interfaz de usuario; que sólo podemos configurar mediante el registro.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;Environment&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Variables de entorno establecidas por los usuarios. Los valores predeterminados se encuentran en el perfil del usuario.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;Identities&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Una sub-llave por cada identidad de Outlook express. Desde la compatibilidad de Windows con perfiles múltiples de usuario, las configuraciones de cada uno van separadas, por lo que esta clave se usa ya pocas veces.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;Keyboard Layout&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Información sobre los teclados instalados.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;Network&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Información sobre las unidades de red. Cada sub-llave dentro de Network es una unidad de red, conteniendo su configuración a usar para reconexión.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;Printers&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Preferencias de usuario de impresoras.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;Software&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Configuraciones de aplicación por usuario. Windows tiene muchas de sus configuraciones dentro de esta llave.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;Volatile Environment&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Variables de entorno definidas dentro de la sesión de usuario.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;HKEY_LOCAL_MACHINE&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Esta llave raíz contiene los valores por equipo, que significa que la configuración establecida aquí es de aplicación al equipo y afectará a cada usuario que inicie sesión en el.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;HARDWARE&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Descripción del hardware que Windows detecta e inicia. Esta llave se crea cada vez que el sistema operativo inicia, incluyendo la información sobre dispositivos, sus controladores y recursos asociados.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;SAM&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Base de datos de Seguridad Local de Windows, el Administrador de cuentas de Seguridad (SAM), donde Windows almacena usuarios y grupos. Las listas de control de acceso de esta llave (ACL) impiden verla, aun siendo administrador. Es un enlace a la llave HKLM\SECURITY\SAM&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;SECURITY&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Contenido de la sub-llave SAM y algunos otros valores de seguridad. La ACL impide verla, a menos que hagamos por verla, claro.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;SOFTWARE&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Configuraciones de las aplicaciones por equipo. Windows también almacena configuraciones propias aquí.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;SYSTEM&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Contiene conjuntos de control, del que uno será el actual. Los conjuntos quedan disponibles para su uso por Windows. Cada sub-llave se llama ControlSet???, donde ??? es un número que se incrementa y que comienza por 001. El sistema operativo mantiene al menos dos conjuntos de control para asegurarse que puede iniciarse correctamente siempre. Estos conjuntos contienen configuraciones de servicios y controladores de dispositivo. HKLM\SYSTEM\CUrrentControlSet es un enlace a ControlSet???, y HKLM\SYSTEM\Select al ControlSet??? en uso.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;HKEY_CLASSES_ROOT&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Aquí se esconden dos tipos de configuración. La primera de ellas es la asociación de archivos, que asocia los distintos tipos de archivo con los programas que pueden abrirlos, editarlos, imprimirlos. La segunda es el registro de clases para los objetos COM. Esta es una de las llaves más interesantes del registro a personalizar, nos permite cambiar el comportamiento del sistema operativo. Es la más grande además, por lo que consume la mayor parte del espacio del registro. Ha sufrido algunos cambios desde Windows 2000, realizando una mezcla de llaves que se supone que son beneficiosos, como:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Los programas pueden registrar su asociación de archivo y clase tanto por usuario como por equipo.&lt;/li&gt;    &lt;li&gt;Distintos usuarios que comparten el equipo pueden estar utilizando diferentes programas para editar el mismo tipo de archivo, sin que ello afecte a ninguno de ellos.&lt;/li&gt;    &lt;li&gt;Debido a que el registro de clases y asociaciones de archivo por usuario están en el perfil de usuario, le siguen a cualquier equipo al usar perfiles móviles.&lt;/li&gt;    &lt;li&gt;Podemos limitar el acceso a HKLM\SOFTWARE\Classes sin impedir a los usuarios cambiar HKCU\Software\Classes, ganando en seguridad en el registro sin consecuencias en la posibilidad de que los usuarios cambien las asociaciones.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;HKEY_CURRENT_CONFIG&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Enlace a los datos de configuración del perfil actual de hardware, HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\****, donde **** es un número incremental desde el 0000.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1743061" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>El Registro: estructura</title><link>http://msmvps.com/blogs/juansa/archive/2009/11/27/el-registro-estructura.aspx</link><pubDate>Fri, 27 Nov 2009 13:38:48 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1742496</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1742496</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/11/27/el-registro-estructura.aspx#comments</comments><description>&lt;p&gt;La estructura del registro de Windows es muy parecida a la estructura del sistema de archivos:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="500"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="242"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2021.registro_5F00_6A82F4D1.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="registro" border="0" alt="registro" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8053.registro_5F00_thumb_5F00_3E8FC497.jpg" width="300" height="215" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="250"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5722.explorador_5F00_09199323.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="explorador" border="0" alt="explorador" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5228.explorador_5F00_thumb_5F00_27F52863.jpg" width="272" height="234" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;En el editor del registro (ya charlaremos sobre el), se muestra en el árbol de la izquierda, panel de llaves, la jerarquía del registro. Aquí cada carpeta es una llave del registro. A la derecha, panel de valores, observamos los valores de las llaves. El explorador de Windows nos muestra también la jerarquía de carpetas y los valores en dos paneles.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Llaves&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Las llaves son similares a las carpetas ya que tienen las mismas reglas de nombrado. Podemos anidar una o más llaves dentro de otra llave, mientras sus nombres sean únicos dentro de cada llave. El nombre está limitado a 512 caracteres ANSI o 256 Unicode y podemos usar cualquier carácter ASCII que no sea la &lt;strong&gt;&lt;em&gt;barra invertida \&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;el asterisco *&lt;/em&gt;&lt;/strong&gt;, y &lt;strong&gt;&lt;em&gt;la interrogación ?&lt;/em&gt;&lt;/strong&gt;. Windows se reserva todos los nombres que comienzan con un periodo para su propio uso.&lt;/p&gt;  &lt;p&gt;Las similitudes entre el registro y el sistema siguen con las rutas. La ruta C:\Windows\System32\notepad.exe se refiere al archivo Notepad.exe en la unidad C, carpeta Windows, subcarpeta System32. La ruta HKLM\System\CurrentControlSet\Control\CurrentUser se refiere al valor CurrentUser de la llave raíz HKLM, que se encuentra en la subllave Control de la subllave de SYSTEM llamada CurrentControlSet. Notación de nombre cualificado con el que frecuentemente nos referiremos a una llave y todas sus subllaves como una RAMA.&lt;/p&gt;  &lt;p&gt;Como punto a tener en cuenta me referiré a las llaves enlazadas. Windows almacena perfiles de hardware en la RAMA HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\, cada perfil es una subllave xxxx, donde xxxx es un número incremental que comienza por 0000. La subllave Current es un enlace a toda llave que actualmente se encuentre en los perfiles de hardware, y la llave Raíz HKCC es un enlace a Current.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0844.registro02_5F00_76F577B5.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="registro02" border="0" alt="registro02" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6724.registro02_5F00_thumb_5F00_7D3EDEF4.jpg" width="141" height="283" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;u&gt;Valores&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Cada llave contiene uno o más valores. El nombre de un valor es parecido al nombre de un archivo. El tipo de un valor es similar a la extensión de un archivo, que es lo que indica su tipo. Los datos del valor es parecido al contenido actual del archivo. Si pulsamos en una llave del registro en el panel de llaves del editor, el panel de valores nos mostrará los pertenecientes a dicha llave. En el panel de valores observamos tres columnas, correspondientes a tres partes de un valor:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Nombre. &lt;/strong&gt;Todo valor tiene un nombre. Con las restricciones ya comentadas. Dentro de cada llave ese nombre será único, pudiendo usar el mismo nombre en distintas llaves.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Tipo. &lt;/strong&gt;Cada tipo de valor determina el tipo de dato que puede contener. &lt;em&gt;REG_DWORD &lt;/em&gt;un número double-word, &lt;em&gt;REG_SZ&lt;/em&gt; una cadena, etc…&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Datos. &lt;/strong&gt;Cada valor puede estar vacio, nulo o puede contener datos. Los datos se limitan a 32767 bytes, aunque el límite práctico son 2KB. Los datos se corresponden con su tipo, exceptuando los valores binarios que pueden contener cadenas, doble-words, o cualquier otro.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Cada llave contiene al menos un valor, el valor predeterminado. Casi siempre una cadena, pero algunos programas lo cambian por otros tipos. En muchos casos el valor predeterminado es NULL y el editor nos indica &amp;#39;valor no establecido&amp;#39;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Tipos&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;&lt;em&gt;REG_BINARY&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Datos binarios, se muestran en hexadecimal y se introducen datos binarios en hexadecimal.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;&lt;em&gt;REG_DWORD&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Valores doble-word de 32 bits. Muchos son banderas booleanas (si o no). Valores de tiempo en milisegundos. Números de 32-bits, firmados o no (hay unos rangos). Los valores se ven en decimal o hexadecimal.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;&lt;em&gt;REG_DWORD_BIG_ENDIAN&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Orden de los bytes Big_Endian&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;&lt;em&gt;REG_DWORD_LITTLE_ENDIAN&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Orden de los bytes Little-Endian&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;&lt;em&gt;REG_EXPAND_SZ&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Texto de longitud variable. Puede incluir variables de entorno que se expandirán luego por el programa antes de su uso.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;&lt;em&gt;REG_FULL_RESOURCE_DESCRIPTOR&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Lista de recursos para un dispositivo o controlador de dispositivo. Importante para el Pinchar y Listo P&amp;amp;P.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;&lt;em&gt;REG_LINK&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Enlace. No los podemos crear nosotros.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;&lt;em&gt;REG_MULTI_SZ&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Valores binarios que contienen listas de cadenas. El editor muestra una cadena por cada línea y nos permite editarlas. Un carácter nulo 0x00 separa cada cadena y dos nulos el final de la lista.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;&lt;em&gt;REG_ONE&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Sin tipo definido&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;&lt;em&gt;REG_QWORD&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Quadruple-word (64 bits).&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;&lt;em&gt;REG_QWORD_BIG_ENDIAN&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Quadruple-word (64 bits). Como Big_Endian.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;&lt;em&gt;REG_QWORD_LITTLE_ENDIAN&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Quadruple-word (64 bits). Como Little-Endian.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;&lt;em&gt;REG_RESOURCE_LIST&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Lista de los valores de &lt;em&gt;REG_FULL_RESOURCE_DESCRIPTOR&lt;/em&gt;. El editor nos deja verlos pero no editarlos.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;&lt;em&gt;REG_RESOURCE_REQUERIMENTS_LIST&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Lista de recursos que un dispositivo necesita. No podemos editarlo.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;&lt;em&gt;REG_SZ&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Texto de longitud fija. Es el más común, otro valor REG_DWORD. La cadena termina con un carácter nulo y los programas no expanden las variables de entorno contenidas en valores RG_SZ.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;De todos los valores del registro, el valor binario es el menos sencillo. Cuando una aplicación lee un valor binario desde el registro, descifrar su contenido le corresponde a ese programa. Esto significa que las aplicaciones pueden almacenar datos en valores binarios usando sus propias estructuras de datos, que no significan nada para nosotros u otros programas. También, las aplicaciones, frecuentemente, almacenan datos REG_DWORD y REG_SZ en REG_BYNARY, lo que dificulta su búsqueda y descifrado.&lt;/p&gt;  &lt;p&gt;Ahora se complica, el registro en la actualidad almacena todos los valores como valores binarios. Las API del registro identifican cada tipo de valor mediante un número, al que los programadores se refieren como constante, y que se tiende a denominar como el número de tipo.&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="332"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="73"&gt;         &lt;p align="center"&gt;&lt;strong&gt;Número&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="251"&gt;         &lt;p align="center"&gt;&lt;strong&gt;Tipo&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="73"&gt;0&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;&lt;em&gt;REG_ONE&lt;/em&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="73"&gt;1&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;&lt;em&gt;REG_SZ&lt;/em&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="73"&gt;2&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;&lt;em&gt;REG_EXPAND_SZ&lt;/em&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="73"&gt;3&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;&lt;em&gt;REG_BINARY&lt;/em&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="73"&gt;4&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;&lt;em&gt;REG_DWORD&lt;/em&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="73"&gt;4&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;&lt;em&gt;REG_DWORD_LITTLE_ENDIAN&lt;/em&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="73"&gt;5&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;&lt;em&gt;REG_DWORD_BIG_ENDIAN&lt;/em&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="73"&gt;6&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;&lt;em&gt;REG_LINK&lt;/em&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="73"&gt;7&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;&lt;em&gt;REG_MULTI_SZ&lt;/em&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="73"&gt;8&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;&lt;em&gt;REG_RESOURCE_LIST&lt;/em&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1742496" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>El alma de Windows: el registro</title><link>http://msmvps.com/blogs/juansa/archive/2009/11/26/el-alma-de-windows-el-registro.aspx</link><pubDate>Thu, 26 Nov 2009 10:35:39 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1742269</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1742269</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/11/26/el-alma-de-windows-el-registro.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Recuerdos&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;La configuración en MS-DOS se componía de los archivos config.sys y autoexec.bat.&lt;/p&gt;  &lt;p&gt;El primero cargaba los controladores de los dispositivos, mientras que el segundo se encargaba de ejecutar programas, establecer las variables de entorno, y algo más, para preparar el uso de MS-DOS.&lt;/p&gt;  &lt;p&gt;Cada aplicación era responsable de sí misma, así como de su configuración. &lt;/p&gt;  &lt;p&gt;Obviamente ninguno de estos archivos sirve en Windows.&lt;/p&gt;  &lt;p&gt;Windows 3.0 fue el primero que introdujo los archivos INI de configuración, que no eran sino simples archivos de texto con una o varias secciones y, en cada una, uno o varios valores de configuración. Uno de sus contras era carecer de jerarquía y además almacenar valores binarios era engorroso, aunque posible, y el almacenamiento de valores no tenía un estándar para tipos similares de configuración. Relación entre aplicaciones y el sistema operativo fatal y el caso es que cada aplicación tenía su propio INI.&lt;/p&gt;  &lt;p&gt;En Windows 3.1 apareció el registro como una herramienta de almacenamiento de configuraciones OLE, mientras que Windows 95/NT 3.5 lo extendieron a una base de datos que al fin y al cabo, es la que Windows XP o Windows 2003 usan. A pesar de que los INI ya no son necesarios, las aplicaciones ahora tienen un camino mucho mejor donde almacenar su configuración, siempre encontraremos varios archivos INI desperdigados en cualquier equipo.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Tópicos&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Aun con todos sus beneficios, el registro de Windows es una paradoja. Por una parte, un lugar centralizado para todos los datos de configuración de Windows. La piedra angular. De otra parte, el hecho de que el registro sea tan importante también hace que sea una de las debilidades del sistema operativo. Quita la piedra angular y el castillo se derrumba. Si el registro falla, el sistema falla. Afortunadamente un fallo total es menos probable a que me toque la lotería y un fallo parcial que impida el inicio del equipo es fácil de superar.&lt;/p&gt;  &lt;p&gt;EL papel de piedra angular del registro es una de las razones de su cariz mítico. Microsoft no ha hablado mucho sobre él. No tenemos un editor en el menú de inicio, encontramos poca información en la ayuda, carecemos de documentos que nos enseñen sus secretos. Parece que sea mágico, y la verdad es que no deja de ser simplemente la configuración del equipo.&lt;/p&gt;  &lt;p&gt;Las advertencias que nos encontramos a montones en los lugares donde se hallan instrucciones para editarlo son definitivamente exageradas. Hay poco daño que podamos causarle y que no pueda recuperarse tomando las mínimas precauciones (tener una copia en lugar seguro :-)).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;A tener claro&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Las cosas que deberíamos conocer para trabajar eficientemente con el registro, por ejemplo, familiarizarnos con la notación hexadecimal, conversión hexadecimal-binario y hexadecimal-decimal, GUIDs, Unicode contra ANSI, etc…&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Identificadores de seguridad&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Cuentas de equipo y usuarios, grupos y otros objetos relacionados con la seguridad son Objetos principales de seguridad. Los Identificadores de Seguridad o SID identifican inequívocamente a los objetos principales de seguridad. Cada vez que Windows y Directorio Activo crean un objeto principal de seguridad le generan un SID. LSA (Local Security Authority) genera los SID para objetos principales locales y entonces los almacena en su base de datos de seguridad local. Domain Security Authority genera los SID para los objetos principales de seguridad del dominio y los almacena en AD. Los SID son únicos dentro de su ámbito. Cada SID local es único en el equipo, como cada SID de dominio lo es dentro del dominio. Windows nunca reusa un SID, o sea, aunque se elimine un objeto principal. De hecho si borramos una cuenta y la volvemos a crear ésta tendrá un nuevo SID.&lt;/p&gt;  &lt;p&gt;Es importante recordar que cada cuenta dispone de un SID. Es como tener un número de DNI que te identifica inequívocamente en tu país. Podemos referirnos a una cuenta por su nombre o por su SID, aunque en la práctica rara vez usamos el SID. En el registro veremos frecuentemente los SID de cuenta, por ello la necesidad de familiarizarse sobre ello.&lt;/p&gt;  &lt;p&gt;Un SID de ejemplo &lt;strong&gt;&lt;em&gt;S-1-5-21-224257856-4948505641-1666550967-500&lt;/em&gt;&lt;/strong&gt;. Los SID siempre comienzan con &lt;strong&gt;&lt;em&gt;s-&lt;/em&gt;&lt;/strong&gt;. El número siguiente identifica la versión del SID (aquí versión 1). Luego un número indicando la autoridad de identificación y que normalmente es &lt;strong&gt;&lt;em&gt;5&lt;/em&gt;&lt;/strong&gt;, NT Authority en es caso. La cadena de números siguiente hasta &lt;strong&gt;&lt;em&gt;500 &lt;/em&gt;&lt;/strong&gt;es el identificador de dominio, el resto es un identificador relativo, que es la cuenta o grupo. Esto es una aproximación al formato del SID, cuya complejidad es superior a este breve ejemplo.&lt;/p&gt;  &lt;p&gt;Algunos SID son más cortos que en el ejemplo, son los SID &lt;em&gt;&lt;strong&gt;conocidos&lt;/strong&gt;&lt;/em&gt; y son los mismos en cada equipo y dominio. Son interesantes porque aparecen una y otra vez tanto en el registro como en otras partes.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://technet.microsoft.com/es-es/library/cc978401(en-us).aspx" target="_blank"&gt;SID conocidos&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Identificadores globales únicos&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Los identificadores globales únicos, más conocidos como GUIDs, son números que identifican objetos inequívocamente como equipos, componentes de programa y dispositivos. Estos objetos a menudo tienen nombre, pero sus GUID permanecen de forma única aun si dos objetos tienen el mismo nombre o si se les cambia el nombre. En otras palabras, un GUID es similar a un SID. Hay muchos GUID en el registro.&lt;/p&gt;  &lt;p&gt;Todos tienen el mismo formato. Son números hexadecimales en grupos de 8,4 ,4, 4 y 12 dígitos (del 0-9 y de la A-F). Un guión divide cada grupo de dígitos, y las llaves {}&amp;#160; engloban al número entero. Por ejemplo: &lt;strong&gt;&lt;em&gt;{645FF040-5081-101B-9F08-00AA002F954E}&lt;/em&gt;&lt;/strong&gt;, que representa el objeto de papelera que vemos en el escritorio.&lt;/p&gt;  &lt;p&gt;Los desarrolladores usan &lt;a href="http://msdn.microsoft.com/en-us/library/kw069h38(VS.71).aspx" target="_blank"&gt;Guidgen.exe&lt;/a&gt; para crear GUIDs, pero Windows los genera también. A pesar del origen, Windows garantiza que los GUID son globalmente únicos. No hay que preocuparse de cuantas veces se generan los GUID, el resultado es siempre único. Por eso los GUID son perfectos para identificar equipos y dispositivos.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Notación hexadecimal&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;El 99% de los datos que se ven en el registro están en notación hexadecimal. Los equipos usan notación hexadecimal más que la decimal por una buena razón, que se comprenderá rápidamente. Saber leer y convertir números hexadecimales es un buen elemento en nuestro trato diario con el registro.&lt;/p&gt;  &lt;p&gt;Las notaciones decimales y binarias no se intercambian bien, de hecho nosotros hemos aprendido de pequeños la decimal sobre ‘todas las cosas’ ;-).&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;     &lt;p&gt;El número 546 sería 5*10^2 + 4*10^1 + 6*10^0, es decir: 5*100+4*10+6*1. Esto es &lt;em&gt;Base 10.&lt;/em&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;El número 1011 sería 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0, es decir: 1*8+0*4+1*2+1*1 o 11 en Base 10, aunque el número, dígitos 0 y 1, está en &lt;em&gt;Base 2.&lt;/em&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Convertir Base 2 en Base 10 es trabajoso.&lt;/p&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Esto nos lleva a la notación hexadecimal, o &lt;em&gt;Base 16&lt;/em&gt;, con sólo dividir 16/2 convertir a binario (base 2) es algo sencillo. De todas formas, tener una tabla a mano para conversiones siempre viene bien.&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="304"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="84"&gt;         &lt;p align="center"&gt;&lt;em&gt;&lt;strong&gt;Base 2 Binario&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="106"&gt;         &lt;p align="center"&gt;&lt;em&gt;&lt;strong&gt;Base 16 Hexadecimal&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="104"&gt;         &lt;p align="center"&gt;&lt;em&gt;&lt;strong&gt;Base 10 Decimal&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="84"&gt;0000&lt;/td&gt;        &lt;td valign="top" width="106"&gt;0&lt;/td&gt;        &lt;td valign="top" width="104"&gt;0&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="84"&gt;0001&lt;/td&gt;        &lt;td valign="top" width="106"&gt;1&lt;/td&gt;        &lt;td valign="top" width="104"&gt;1&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="84"&gt;0010&lt;/td&gt;        &lt;td valign="top" width="106"&gt;2&lt;/td&gt;        &lt;td valign="top" width="104"&gt;2&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="84"&gt;0011&lt;/td&gt;        &lt;td valign="top" width="106"&gt;3&lt;/td&gt;        &lt;td valign="top" width="104"&gt;3&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="84"&gt;0100&lt;/td&gt;        &lt;td valign="top" width="106"&gt;4&lt;/td&gt;        &lt;td valign="top" width="104"&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="84"&gt;0101&lt;/td&gt;        &lt;td valign="top" width="106"&gt;5&lt;/td&gt;        &lt;td valign="top" width="104"&gt;5&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="84"&gt;0110&lt;/td&gt;        &lt;td valign="top" width="106"&gt;6&lt;/td&gt;        &lt;td valign="top" width="104"&gt;6&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="84"&gt;0111&lt;/td&gt;        &lt;td valign="top" width="106"&gt;7&lt;/td&gt;        &lt;td valign="top" width="104"&gt;7&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="84"&gt;1000&lt;/td&gt;        &lt;td valign="top" width="106"&gt;8&lt;/td&gt;        &lt;td valign="top" width="104"&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="84"&gt;1001&lt;/td&gt;        &lt;td valign="top" width="106"&gt;9&lt;/td&gt;        &lt;td valign="top" width="104"&gt;9&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="84"&gt;1010&lt;/td&gt;        &lt;td valign="top" width="106"&gt;A&lt;/td&gt;        &lt;td valign="top" width="104"&gt;10&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="84"&gt;1011&lt;/td&gt;        &lt;td valign="top" width="106"&gt;B&lt;/td&gt;        &lt;td valign="top" width="104"&gt;11&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="84"&gt;1100&lt;/td&gt;        &lt;td valign="top" width="106"&gt;C&lt;/td&gt;        &lt;td valign="top" width="104"&gt;12&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="84"&gt;1101&lt;/td&gt;        &lt;td valign="top" width="106"&gt;D&lt;/td&gt;        &lt;td valign="top" width="104"&gt;13&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="84"&gt;1110&lt;/td&gt;        &lt;td valign="top" width="106"&gt;E&lt;/td&gt;        &lt;td valign="top" width="104"&gt;14&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="84"&gt;1111&lt;/td&gt;        &lt;td valign="top" width="106"&gt;F&lt;/td&gt;        &lt;td valign="top" width="104"&gt;15&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Pasar el número 11111111 a hexadecimal es tan fácil como que 1111=F, así que 11111111 = FF.&lt;/p&gt;  &lt;p&gt;Una última cosa a tener en cuenta, para diferenciar el número 12 decimal del número 12 hexadecimal se añade al segundo el prefijo 0x, quedando entonces el 0x12 como hexadecimal y el 12 como decimal.&lt;/p&gt;  &lt;p&gt;Un pequeño truco para las conversiones es usar la calculadora de Windows, donde introduciendo un número lo convertimos a otras Bases con un par de clics.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Little-Endian, Big-Endian&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;En un número hexadecimal como 0x0102, el 0x01 es el byte más significativo y el 0x02 el menos significativo.&lt;/p&gt;  &lt;p&gt;Los programas almacenan números en memoria de dos maneras: big-endian o little-endian. Si usan la primera, almacenan los bytes más significantes en memoria primero, seguido de los menos significantes, por ejemplo: 0x01020304 es 0x01 0x02 0x03 0x04. Sin embargo los procesadores Intel usan la otra manera, que significa que almacenan los menos significantes primero, seguido de los más significantes; el mismo número en memoria es =x04 0x03 0x02 0x01.&lt;/p&gt;  &lt;p&gt;Aunque las herramientas que usaremos muestran todos los números –little o big-endian- correctamente, hemos de prestar atención cuando miramos números en valores binarios, ya que las herramientas no revierten el orden de los bytes por nosotros. Si vemos el número 0x2F 0xAA en valor binario recordemos que para revertir el orden de los bytes cogeremos el resultado 0xAA2F.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://wiki.jarfil.net/Litle_Endian_vs._Big_Endian" target="_blank"&gt;Algo así.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Codificación ANSI y Unicode&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;El esquema de codificación de caracteres prominente (texto que representan los equipos) era el ASCII, y que aún permanece hoy en día. En esta codificación, cada carácter es de 8 bits, o de un byte. Ya que ASCII era para idiomas occidentales, su uso fue limitado en países europeos y regiones cuyos idiomas contienen caracteres no incluidos en los 256 soportados por ASCII. Para superar esta limitación, la ISO creó una codificación estándar denominada Latin-1, que incluye caracteres europeos fuera del conjunto ASCII. Microsoft mejoró el Latin-1 y lo llamó ANSI. Pero ANSI sigue siendo de 8-bits y puede representar sólo 256 caracteres. Muchos idiomas tienen cientos de símbolos, en particular los asiáticos como el chino, koreano o japonés.&lt;/p&gt;  &lt;p&gt;Para superar las limitaciones de las codificaciones de 8-bits, Microsoft junto a compañías como Apple e IBM, crearon el consorcio sin ánimo de lucro Unicode Inc. para definir una codificación nueva para juegos de caracteres internacionales. El trabajo realizado junto al ya en progreso por ISO, dio como resultado el estándar Unicode, que no es sino una codificación estándar de 16-bits, con lo que proporciona 65536 caracteres –más que suficiente para representar todos los idiomas del mundo.&lt;/p&gt;  &lt;p&gt;Unicode es la codificación nativa de Windows, aunque es compatible con ANSI. Internamente, el sistema representa los archivos, objetos, rutas, como caracteres de 16-bits. También es normal almacenar datos en el registro usando Unicode.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Cadenas nulas o vacías&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;El concepto nulo es conocidísimo para los desarrolladores de C, 0x00, o sea el carácter NULL. Windows siempre acaba las cadenas con el carácter NULL, así los programas saben donde finaliza la cadena.&lt;/p&gt;  &lt;p&gt;En el registro, el concepto es similar, el valor que contiene datos nulos significa que no contiene datos. Eso es, VACÍO. Normalmente cuando vemos un valor NULL en el registro leemos ‘valor no establecido’. Esto cambia si lo que se contiene es una cadena vacía, o sea cero caracteres de longitud o &amp;quot;&amp;quot;. No es lo mismo NULL &amp;lt;&amp;gt; que &amp;quot;&amp;quot;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1742269" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>Análisis del dump I –Preparando las herramientas</title><link>http://msmvps.com/blogs/juansa/archive/2009/10/11/an-225-lisis-del-dump-i-preparando-las-herramientas.aspx</link><pubDate>Sun, 11 Oct 2009 09:47:13 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1731561</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1731561</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/10/11/an-225-lisis-del-dump-i-preparando-las-herramientas.aspx#comments</comments><description>&lt;p&gt;Para analizar el archivo de volcado que se genera al colgarse Windows necesitaremos un depurador y los símbolos pertenecientes al sistema operativo en el que se ha producido ese dump.&lt;/p&gt;  &lt;p&gt;Los mini-dumps se almacenan en la carpeta &amp;quot;&lt;em&gt;ruta_del_sistema\Minidump&amp;quot;&lt;/em&gt;, y contienen la información del stop, los datos de la pila del modo kernel y una lista de los controladores cargados. &lt;/p&gt;  &lt;p&gt;Desde &lt;a href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx"&gt;Debugging Tools for Windows&lt;/a&gt; podremos descargar las herramientas de depuración de 32/64 bits y los paquetes de símbolos, sinó configuramos el depurador para que los use desde internet.&lt;/p&gt;  &lt;p&gt;Yo descargo la versión de 32 bits puesto que mi Windows 7 actual es el de 32 bits (cosas de pruebas).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx#a"&gt;Install Debugging Tools for Windows 32-bit Version&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5381.debugging01_5F00_6BFCC639.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="debugging01" border="0" alt="debugging01" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8103.debugging01_5F00_thumb_5F00_11F50741.jpg" width="340" height="150" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Luego los símbolos respectivos,&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx#d"&gt;Download Windows Symbol Packages&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;El tamaño de un paquete de símbolos ronda los 300Mb y cada uno servirá para el sistema en concreto, puede configurarse Windbg para usar el servidor de descarga de MS.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;&lt;/h4&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h4&gt;Instalando las herramientas&lt;/h4&gt;  &lt;p&gt;Lo primero dirigirme donde he descargado el paquete msi y desbloquearlo:&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7532.debugging02_5F00_1D21223C.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="debugging02" border="0" alt="debugging02" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6862.debugging02_5F00_thumb_5F00_579EB2C1.jpg" width="374" height="278" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Luego proceder a la instalación:&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="133"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5873.installdebug01_5F00_41D75B15.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="installdebug01" border="0" alt="installdebug01" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0412.installdebug01_5F00_thumb_5F00_29D60B5E.jpg" width="244" height="151" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5488.installdebug02_5F00_1E42DED0.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="installdebug02" border="0" alt="installdebug02" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6765.installdebug02_5F00_thumb_5F00_61AD70E3.jpg" width="244" height="151" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2727.installdebug03_5F00_174ADE5E.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="installdebug03" border="0" alt="installdebug03" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1072.installdebug03_5F00_thumb_5F00_799105B1.jpg" width="244" height="151" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2234.installdebug04_5F00_41E0DC32.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="installdebug04" border="0" alt="installdebug04" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3782.installdebug04_5F00_thumb_5F00_736EDA78.jpg" width="244" height="151" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6443.installdebug05_5F00_208657F8.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="installdebug05" border="0" alt="installdebug05" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1541.installdebug05_5F00_thumb_5F00_5F7A6944.jpg" width="244" height="151" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3113.installdebug06_5F00_79DCED0C.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="installdebug06" border="0" alt="installdebug06" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7506.installdebug06_5F00_thumb_5F00_38D0FE59.jpg" width="244" height="151" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;*Casi con seguridad que UAC nos pedirá confirmar la acción de instalación después de elegir el modo en la tercera pantalla.&lt;/p&gt;  &lt;p&gt;Ya nos aparecen en el menú:&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2100.installdebug07_5F00_55700ADD.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="installdebug07" border="0" alt="installdebug07" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3364.installdebug07_5F00_thumb_5F00_2DF35B6A.jpg" width="371" height="277" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Vamos a abrir Windbg y a configurar donde tiene los símbolos o desde donde descargarlos:&lt;/p&gt;  &lt;p&gt;Hay que elegir una carpeta en el equipo donde se descargarán los símbolos desde el servidor de descarga, por ejemplo y siguiendo el ejemplo (valga la redundancia) de la propia MS, yo he creado la carpeta &lt;strong&gt;c:\websymbols&lt;/strong&gt;, y la ruta a utilizar en la configuración de Windbg sería: &lt;b&gt;SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols&lt;/b&gt;&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8562.windbg02_5F00_3BEA4CBA.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="windbg02" border="0" alt="windbg02" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7571.windbg02_5F00_thumb_5F00_61E51E72.jpg" width="374" height="275" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Podemos asimismo utilizar el botón &lt;em&gt;&lt;strong&gt;Browse&lt;/strong&gt;&lt;/em&gt; para buscar las rutas en el equipo.&lt;/p&gt;  &lt;p&gt;Podemos establecer varias rutas de paquetes de símbolos.&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7077.windbg01_5F00_1713C847.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="windbg01" border="0" alt="windbg01" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6404.windbg01_5F00_thumb_5F00_5F639EC7.jpg" width="398" height="168" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1731561" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>Controlar el rendimiento I</title><link>http://msmvps.com/blogs/juansa/archive/2009/10/04/controlar-el-rendimiento-i.aspx</link><pubDate>Sun, 04 Oct 2009 11:59:45 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1729608</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1729608</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/10/04/controlar-el-rendimiento-i.aspx#comments</comments><description>&lt;p&gt;Estaremos de acuerdo en que realizar un control rutinario del rendimiento nos servirá para propósitos como:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Detectar y diagnosticar problemas de rendimiento &lt;/li&gt;    &lt;li&gt;Comprobar que los servicios cumplen con los niveles acordados &lt;/li&gt;    &lt;li&gt;Ayuda para poder prevenir escasez de recursos antes de ésta suponga un impacto al nivel de los servicios. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;&lt;u&gt;Saber que contadores registrar&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Una rutina de control del rendimiento efectiva en la detección y diagnóstico, además de resolver los problemas de rendimiento comunes, debería reunir quizás cantidades enormes de datos, para editarlos, resumirlos y usarlos en informes y programación. &lt;/p&gt;  &lt;p&gt;La primera de las cuestiones a determinar puede que verse sobre los contadores de rendimiento; entre todos los disponibles debemos reunir un conjunto básico.&lt;/p&gt;  &lt;p&gt;Una monitorización diaria, con sesiones de registro de contadores en segundo plano, para reunir los datos de rendimiento según ese conjunto básico de contadores de forma continua que nos permita la posibilidad de resolver problemas comunes cuando surjan. Como no somos adivinos y nos es imposible conocer de antemano qué recursos clave están saturados en un equipo con problemas de rendimiento, quizás en un mundo perfecto deberíamos reunir datos de todos los recursos: procesador, memoria, disco y red; pero el sentido común nos dice que es una burrada, así qué nos queda la idea de ser selectivos en cuanto a los datos a reunir, su cantidad y con qué frecuencia. Es decir, un intento de encontrar un justo equilibrio entre la cantidad de datos a reunir para analizar y el costo asociado a este proceso.&lt;/p&gt;  &lt;p&gt;La detección y diagnóstico de problemas comunes de rendimiento implica recursos sobrecargados, necesitamos reunir un gran rango de datos detallados del procesador, memoria, disco y uso de red y de las cargas que están soportando. Los datos deben incluir contadores que puedan indicar condiciones de error, en especial los que se dan como resultado de falta de recursos internos.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;em&gt;Procedimientos de control diario&lt;/em&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Un procedimiento de control rutinario debe incluir:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Recogida automática de una vista en detalle del rendimiento del sistema mediante los registros de contador. &lt;/li&gt;    &lt;li&gt;Control de los indicadores de errores de aplicaciones de servidor y del sistema. &lt;/li&gt;    &lt;li&gt;Configuración de alertas que provoquen registros de contador de diagnóstico e información detallada. &lt;/li&gt;    &lt;li&gt;Conservación resumida de estadísticas de rendimiento. &lt;/li&gt;    &lt;li&gt;Administración de los registros de contador generados automáticamente por estos procesos. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Registros de contador diarios.&lt;/p&gt;  &lt;p&gt;Primer paso, establecer un registro automatizado de datos con Logman. Por ejemplo:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;&lt;em&gt;Logman create counter registro_diario –cf &amp;quot;ruta_del_archivo_de_configuracion\archivoconf.txt&amp;quot; –o ruta_archivo\diario\registrodiario –b 1/10/2009 00:00:00 –cnf 24:00:00 –si 1:00 –f BIN –v mmddhhmm&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Después de la ejecución podemos verlo desde la interfaz gráfica de Rendimiento:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7635.sesiondiaria_5F00_2F934480.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="sesiondiaria" border="0" alt="sesiondiaria" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8637.sesiondiaria_5F00_thumb_5F00_19624A90.jpg" width="356" height="255" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Descripción:&lt;/p&gt;  &lt;p&gt;Se crea un contador llamado registro_diario, donde se registrarán los contadores especificados en C:\perflogs\archivoconf.txt.&lt;/p&gt;  &lt;p&gt;El registro se iniciará automáticamente por el monitor del sistema, una vez reiniciada la máquina y sea el 5 de octubre de 2009.&lt;/p&gt;  &lt;p&gt;Las muestras se toman cada minuto, el formato del archivo de registro es el Binario.&lt;/p&gt;  &lt;p&gt;Los archivos llevaran en su nombre la fecha, en formato mmddhhmm.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;El archivo de configuración nos servirá para indicar los contadores que deseamos registrar o si queremos añadir contadores de aplicaciones específicas.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1729608" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>La pantalla azul II- Ha petado o petado, ¿pero hay solución?</title><link>http://msmvps.com/blogs/juansa/archive/2009/09/29/la-pantalla-azul-ii-ha-petado-o-petado-191-pero-hay-soluci-243-n.aspx</link><pubDate>Tue, 29 Sep 2009 12:18:29 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1728173</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1728173</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/09/29/la-pantalla-azul-ii-ha-petado-o-petado-191-pero-hay-soluci-243-n.aspx#comments</comments><description>&lt;p&gt;Dependeeee… ¿de qué?. De las ganas que se tengan de encontrar solución, hay muchos que reinstalan el sistema pensando que así desaparecerá el problema, y yo digo que puede que no y puede que tampoco, tarde o temprano si tenemos los mismos dispositivos, el mismo sistema, los mismos controladores y las mismas aplicaciones… regresará. Otra cosa es si al mismo tiempo cambiamos cosas y no nos damos cuenta que estamos eliminando la causa, pero en fin, contra gustos no hay colores, ni el azul.&lt;/p&gt;  &lt;p&gt;Yo sí tengo ganas de solucionarlos. Por ello, primero analizo si es cosa del sistema o de alguna aplicación, luego sigo unas premisas bastante básicas para ir poco a poco profundizando si fuese necesario.&lt;/p&gt;  &lt;p&gt;Cuando uno o varios equipos se ponen pesados en mostrarnos &lt;strong&gt;&lt;em&gt;BSOD’s &lt;/em&gt;&lt;/strong&gt;puede que sea por diversas razones: &lt;/p&gt;  &lt;p&gt;- que hayamos instalado nuevos dispositivos, &lt;/p&gt;  &lt;p&gt;- nuevo software o, &lt;/p&gt;  &lt;p&gt;- de verdad se ha roto algo.&lt;/p&gt;  &lt;p&gt;Yo pienso que el azul no sale &amp;quot;porque sí&amp;quot;, es decir, pienso que el desencadenante es reciente y no creo nunca eso de &amp;quot;no hemos hecho nada&amp;quot;. Una nueva aplicación, un nuevo escáner, ratón, tarjeta, controladores,… &lt;/p&gt;  &lt;p&gt;Si hemos actualizado o instalado un nuevo controlador y al reiniciar nos saluda con una pantalla azul… pues que te voy a contar: Reinicia de nuevo y pulsa la tecla de función F8 y escoge &lt;font color="#000080"&gt;&amp;quot;la última configuración buena conocida&amp;quot;&lt;/font&gt;. Esto lo que hará es volver hacia atrás, evitando el nuevo controlador instalado.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1581.wre2_5F00_1203F646.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="wre2" border="0" alt="wre2" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0676.wre2_5F00_thumb_5F00_609AA354.jpg" width="390" height="297" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Al reiniciar después de una bsod, bootmgr automáticamente detecta que no se apagó correctamente y mostrará una pantalla similar a la anterior (Windows Error Recovery), que nos ofrece algunas opciones; en este caso reparar el inicio. (En este caso la bsod fue provocada en un windows 7 en español)&lt;/p&gt;  &lt;p&gt;Si las pantallas azules nos aparecen después de haber pasado ya tiempo de cualquier instalación de soft o hard no nos quedará otro remedio que intentar buscarnos la vida de algún modo, si es que queremos encontrar solución.&lt;/p&gt;  &lt;p&gt;Aquí tenemos el primer paso importante, para poder indagar necesitamos datos y creo recordar que comenté algo de DUMPS, es decir, archivos de volcado de memoria. Bien, lo primero es lo primero.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Archivos de volcado&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;De forma predeterminada todos los Windows están configurados para intentar la grabación de información relativa al estado del sistema durante un cuelgue. La configuración se encuentra en la pestaña avanzada de las propiedades del sistema:&lt;/p&gt;  &lt;p&gt;Clic derecho Equipo –&amp;gt; Propiedades –&amp;gt; Configuración avanzada del sistema del árbol izquierdo –&amp;gt; Pestaña Opciones avanzadas –&amp;gt; Sección Inicio y recuperación –&amp;gt; Sección Error del sistema.&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="1094"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="246"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1588.configdumps01_5F00_473530CB.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="configdumps01" border="0" alt="configdumps01" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1172.configdumps01_5F00_thumb_5F00_7F763894.jpg" width="215" height="244" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="291"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5488.configdumps02_5F00_518B768D.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="configdumps02" border="0" alt="configdumps02" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2161.configdumps02_5F00_thumb_5F00_302E61A2.jpg" width="310" height="254" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="264"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7851.configdumps03_5F00_5B095665.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="configdumps03" border="0" alt="configdumps03" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8015.configdumps03_5F00_thumb_5F00_45448F6A.jpg" width="236" height="244" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="281"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6765.configdumps04_5F00_29366130.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="configdumps04" border="0" alt="configdumps04" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7838.configdumps04_5F00_thumb_5F00_610DC6B5.jpg" width="232" height="244" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;La configuración predeterminada con la que me encuentro en windows 7:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Grabar un evento en el registro del sistema &lt;/li&gt;    &lt;li&gt;Reiniciar automáticamente &lt;/li&gt;    &lt;li&gt;Un Volcado de memoria del kernel &lt;/li&gt;    &lt;li&gt;La ruta del volcado es: &lt;strong&gt;&lt;em&gt;%SYSTEMROOT%\MEMORY.DMP&lt;/em&gt;&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Sobrescribir cualquier archivo existente &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Los volcados, son tres –aunque en la imagen de win7 sólo hay dos-:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Volcado de memoria del kernel &lt;/li&gt;    &lt;li&gt;Volcado de memoria completo &lt;/li&gt;    &lt;li&gt;Volcado de memoria pequeño (128KB) &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;¿Sus diferencias?&lt;/p&gt;  &lt;p&gt;El tamaño del archivo final es concluyente.&lt;/p&gt;  &lt;p&gt;1) Sólo contiene páginas de memoria presentes lectura/escritura en modo kernel y en la memoria física, todo ello en el momento del cuelgue. Por su tipo y debido a que sólo el código en modo kernel puede causar cuelgues, parece el más indicado, aunque habrá ocasiones que necesitaremos depurar los procesos de usuario.&lt;/p&gt;  &lt;p&gt;2) Lo que contiene la memoria física en el momento del cuelgue.&lt;/p&gt;  &lt;p&gt;3) Con un tamaño entre 128KB y 1MB, denominado mini-Dump también, contiene el código de stop y sus parámetros, la lista de controladores de dispositivo cargados, las estructuras de datos que describen el proceso actual y el hilo, la pila del kernel para el hilo que ha causado el cuelgue y aquélla porción de memoria considerada relevante para el caso, de forma heurística.&lt;/p&gt;  &lt;p&gt;Yo lo dejo de forma que no reinicie automáticamente, así puedo leer los datos de la pantalla azul mientras se realiza el volcado, y el volcado del kernel (el minidump siempre lo hace).&lt;/p&gt;  &lt;p&gt;Después de la pantalla que hemos visto en la primera imagen, desde el interfaz de Windows se nos informa que el sistema se ha recuperado de un error grave, ofreciéndonos algunas opciones (esto sería para un análisis online).&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2148.infobsod2008_5F00_7E16757D.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="infobsod2008" border="0" alt="infobsod2008" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8422.infobsod2008_5F00_thumb_5F00_66ED8BB0.jpg" width="334" height="214" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1007.infobsod20082_5F00_6AFA6A33.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="infobsod20082" border="0" alt="infobsod20082" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5775.infobsod20082_5F00_thumb_5F00_40ADC309.jpg" width="426" height="218" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ok. Tenemos los dumps. Pues ya veremos si hacemos algo con ellos. También podemos forzar un dump manualmente &lt;a href="http://support.microsoft.com/kb/244139/"&gt;vía teclado&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Y, ¿podemos realizar dumps si es una aplicación o servicio (no se cae el sistema) el del Hang?&lt;/p&gt;  &lt;p&gt;Sí por supuesto.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Usando &lt;a href="http://www.debuginfo.com/articles/ntsdwatson.html"&gt;NTSD&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Con &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=E089CA41-6A87-40C8-BF69-28AC08570B7E&amp;amp;displaylang=en"&gt;Userdump.exe&lt;/a&gt;, &lt;a href="http://support.microsoft.com/kb/241215/es"&gt;Cómo&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;Adjuntando y guardando el dump de forma interactiva &lt;a href="http://support.citrix.com/article/CTX108173"&gt;via NTDS&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Adjuntando y guardando el dump de forma interactiva &lt;a href="http://support.citrix.com/article/CTX106566"&gt;via WinDbg&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Usando &lt;a href="http://support.microsoft.com/kb/286350/es"&gt;ADPlus&lt;/a&gt; en modo Hang. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;También necesitaremos los símbolos del sistema a analizar para usarlos con algún depurador.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1728173" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>La pantalla azul de la muerte BSOD</title><link>http://msmvps.com/blogs/juansa/archive/2009/09/27/la-pantalla-azul-de-la-muerte-bsod.aspx</link><pubDate>Sun, 27 Sep 2009 09:14:48 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1727528</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1727528</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/09/27/la-pantalla-azul-de-la-muerte-bsod.aspx#comments</comments><description>&lt;p&gt;El azul es mi color favorito, no sé si es por ser acuario. Tengo el mar a mi lado, tenemos un cielo azul la mayor parte del año, etc…&lt;/p&gt;  &lt;p&gt;Eso sí, cuando lo veo mostrado por Windows se transforma! :-)))&lt;/p&gt;  &lt;p&gt;Está claro que ese bonito color azul no es más ni menos que una &lt;strong&gt;&lt;em&gt;BSOD (&lt;/em&gt;&lt;/strong&gt;Blue Screen Of Death), la pantalla azul de la muerte.&lt;/p&gt;  &lt;p&gt;Una de las primeras cosas que se me vienen a la cabeza es, simplemente, que el equipo ha petado. Y ya en lo de petar, una de las primeras confusiones al respecto es la diferencia entre petar y petar. ¿Ha petado porque ha petado? o ¿Simplemente ha petado? :-) &lt;/p&gt;  &lt;p&gt;Me explico: En inglés hablan de Crash y de Hang, que a veces van relacionados, es decir, que a veces un Hang es una consecuencia directa de un Crash. Yo siempre digo que ha petado o ha petado, pero parece que no es lo mismo, me explico.&lt;/p&gt;  &lt;p&gt;Petar (&lt;strong&gt;Crash&lt;/strong&gt;): La cpu no puede llevar a cabo su trabajo por una instrucción (cálculo, lectura/escritura) incorrecta. En cuanto sucede esto, Windows es tan listo que inicia una recogida de datos y los guarda para analizarlos. Si el pete es del propio sistema operativo, además, nos regala con una pantalla azul llena de garabatos y la información de la memoria del kernel o de la totalidad de la memoria física(dependerá de la configuración) la guardará en un archivo denominado &lt;em&gt;&lt;strong&gt;DUMP&lt;/strong&gt;&lt;/em&gt;, un archivo de volcado de memoria. Si el pete ha sido de una aplicación o servicio el dump será de la memoria de usuario. Este último lo llaman muchas veces el archivo de volcado de memoria post-mortem y que podemos enviar a un depurador post-mortem, que aunque pueden ser varios los depuradores se ejecutará el especificado en el registro.&lt;/p&gt;  &lt;p&gt;Petar (&lt;strong&gt;Hang&lt;/strong&gt;): Este también podemos analizarlo con un dump. La primera diferencia es que se manifiestan de forma diferente (¿petar&amp;lt;&amp;gt;petar? Me pierdo.) &lt;/p&gt;  &lt;p&gt;&lt;u&gt;Veamos como peta (Crash) una aplicación (proceso):&lt;/u&gt; plas! peta y desaparece de la lista de procesos en ejecución; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;u&gt;¿y como peta (Hang)?&lt;/u&gt;&lt;/em&gt; Pues se queda ahí, como embobado, esperando no se sabe a qué, COLGADO vamos…&lt;/p&gt;  &lt;p&gt;Los cuelgues de aplicaciones o sistema se producen por ciertos fenómenos de mala entrega de mensajes. Las aplicaciones, o componentes del propio sistema se relacionan entre sí por ese medio, se mandan mensajitos. Y claro, esperan respuesta, y aquí está el quid de la cuestión, que se quedan esperando, esperando, esperando…&lt;/p&gt;  &lt;p&gt;Y no hay nada más colgado que dos aplicaciones en ejecución que se esperan una a otra.&lt;/p&gt;  &lt;p&gt;El &lt;strong&gt;&lt;em&gt;dilema de Windows&lt;/em&gt;&lt;/strong&gt;: ¿Qué hacer ante una excepción ilegal? Alguien está intentando hacer algo que se supone que no debería hacer y para más inri dispone de privilegios de acceso elevados. ¿Entonces? ¿Por qué acaba colgándose? ¿No podría ignorar dicha excepción y permitir al controlador o subsistema seguir como si no hubiera pasado nada? De hecho podría hacerlo y pensar que el error es aislado y el componente, de alguna manera, podrá recuperarse. Pero, lo más probable es que acabe con problemas mayores y es un riesgo muy alto.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;La pantalla azul&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms801645.aspx"&gt;KeBugCheckEx&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;, documentada en el WDK (&lt;a href="http://www.microsoft.com/whdc/devtools/wdk/default.mspx"&gt;Windows Driver Kit&lt;/a&gt;), es la encargada de dar el pantallazo.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8664.bsod_5F00_089B8EDA.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="bsod" border="0" alt="bsod" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0654.bsod_5F00_thumb_5F00_02E305E5.jpg" width="450" height="343" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;KeBugCheckEx&lt;/em&gt; muestra en pantalla los garabatos que nos servirán para ir investigando. El código de stop y tras la palabra STOP muestra el código numérico y 4 parámetros.&lt;/p&gt;  &lt;p&gt;En la imagen(provocada por cierto), el código que se muestra es: &lt;strong&gt;DRIVER_IRQL_NOT_LESS_OR_EQUAL&lt;/strong&gt;, el equivalente al código numérico detrás del &lt;strong&gt;STOP: 0x000000D1&lt;/strong&gt;. Cuando un parámetro contiene una dirección al código de parte del sistema operativo o controlador de dispositivo, Windows muestra la dirección base del módulo donde se presume el fallo, la fecha y el nombre del controlador. Con esta sola información ya podríamos localizar el componente que está fallando.&lt;/p&gt;  &lt;p&gt;Aunque hay más de 300 códigos de stop, la mayoría no se suelen ver. No demasiados representan la mayoría de los cuelgues de Windows. El significado de los cuatro parámetros adicionales dependerá del código de stop (que no se dan en todos). Aún así con el código de stop y los parámetros (si los muestra) pueden, al menos, darnos la posibilidad de diagnosticar el componente que está fallando ( o el controlador de dispositivo que causa el cuelgue).&lt;/p&gt;  &lt;p&gt;Podemos encontrar la información de los errores de stop en el archivo de ayuda de las herramientas de depuración para Windows, sección Bug Checks (Blue Screens) o, basándonos en el código del error o en el nombre del hardware o aplicación sospechosa, buscarla en la Knowledge Base. Siempre podemos encontrar información sobre alternativas, actualizaciones, services pack que arreglen el problema que se está padeciendo. El archivo Bugcodes.h del WDK contiene una lista completa de los aproximadamente 300 códigos de error de stop con detalles y razones adicionales en algunos casos.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1727528" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>Los contadores de rendimiento: Procesador</title><link>http://msmvps.com/blogs/juansa/archive/2009/08/24/los-contadores-de-rendimiento-procesador.aspx</link><pubDate>Mon, 24 Aug 2009 09:37:07 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1717837</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1717837</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/08/24/los-contadores-de-rendimiento-procesador.aspx#comments</comments><description>&lt;p&gt;&lt;u&gt;Procesador&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Processor(_Total)\% Processor Time Counter (&lt;/strong&gt;\Procesador(*)\% de tiempo de procesador&lt;strong&gt;)&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="662"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Tipo de contador:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Intervalo (% Ocupado)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Descripción:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Media de uso global del procesador en el intervalo. Cada intervalo en el que el procesador no ejecuta el hilo IDLE se supone que está ocupado por alguna carga de trabajo real.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Medición:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Se toma una muestra del estado del procesador una vez cada periodo del intervalo por una función de medida del sistema. El contador % de tiempo de procesador se computa desde un ratio de muestras comparadas entre su ejecución e IDLE.          &lt;br /&gt;&lt;em&gt;(100% – ((Muestras – Idle) / Muestras * 100)&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Uso:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Indicador del uso global del procesador.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Rendimiento:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Indicador para determinar si el procesador es un cuello de botella.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Programación:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Tendencia y previsión del uso del procesador.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Que hace:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Periodos sostenidos de uso del 100% pueden significar un proceso fuera de control.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Alerta de umbral:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;&lt;em&gt;80/90%&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Medidas relacionadas:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;&lt;em&gt;&lt;strong&gt;&lt;em&gt;&lt;strong&gt;Processor(_Total)\% Privileged Time&lt;/strong&gt;&lt;/em&gt; (&lt;/strong&gt;\Procesador(*)\% de tiempo privilegiado&lt;strong&gt;)              &lt;br /&gt;&lt;/strong&gt;&lt;em&gt;&lt;strong&gt;&lt;em&gt;Processor(_Total)\% User Time&lt;/em&gt; (&lt;/strong&gt;\Procesador(*)\% de tiempo de usuario&lt;strong&gt;)&lt;/strong&gt;&lt;/em&gt;             &lt;br /&gt;&lt;em&gt;&lt;strong&gt;&lt;em&gt;&lt;strong&gt;Processor(n)\% Processor Time&lt;/strong&gt;&lt;/em&gt; (&lt;/strong&gt;\Procesador(*)\% de tiempo de procesador&lt;strong&gt;)                &lt;br /&gt;&lt;/strong&gt;&lt;em&gt;&lt;strong&gt;&lt;em&gt;Process(n)\% Processor Time&lt;/em&gt; (&lt;/strong&gt;\Proceso(*)\% de tiempo de procesador&lt;strong&gt;)                  &lt;br /&gt;Thread(n/Index#)\% Processor Time (&lt;/strong&gt;\Subproceso(*)\% de tiempo de procesador&lt;strong&gt;)&lt;/strong&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt; &lt;em&gt;&lt;strong&gt;System\Processor Queue Lenght Counter (&lt;/strong&gt;\Sistema\Longitud de la cola del procesador&lt;strong&gt;)&lt;/strong&gt;&lt;/em&gt;  &lt;p&gt;&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="662"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Tipo de contador:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Instantáneo&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Descripción:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Número de subprocesos que se han observado como retrasados en la cola del procesador y que esperan para su programación de ejecución. Se ordenan por prioridad, la mayor prioridad se programa para ejecutarse en cuanto el procesador entra en el subproceso IDLE.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Medición:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Se toma una muestra cada periodo de tiempo de un intervalo. La muestra informa el valor último visto en la medida, obtenido por la función de medida del procesador que se ejecuta periódicamente.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Uso:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Muchos procesos de programas están dormidos en estados voluntarios de espera. El subconjunto de subprocesos activos establece un límite superior práctico de la longitud de la cola del procesador que puede observarse.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Rendimiento:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Indicador secundario para determinar si el procesador es un cuello de botella.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Programación:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;&lt;em&gt;&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Que hace:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Una indicación de la limitación de la capacidad del procesador por causa de excesivos retrasos de aplicaciones.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Alerta de umbral:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;&lt;em&gt;Longitud mayor de 5.&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Medidas relacionadas:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;&lt;em&gt;&lt;em&gt;&lt;em&gt;&lt;strong&gt;Thread(parent-process\Index#)\Thread State (&lt;/strong&gt;\Subproceso(*)\Estado de subproceso&lt;strong&gt;)&lt;/strong&gt;&lt;/em&gt; &lt;/em&gt;&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1717837" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Rendimiento/default.aspx">Rendimiento</category></item><item><title>Los contadores de rendimiento: el sistema</title><link>http://msmvps.com/blogs/juansa/archive/2009/08/18/los-contadores-de-rendimiento-el-sistema.aspx</link><pubDate>Tue, 18 Aug 2009 08:56:24 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1716429</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1716429</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/08/18/los-contadores-de-rendimiento-el-sistema.aspx#comments</comments><description>&lt;p&gt;Los contadores disponibles en un equipo que ejecuta Windows Server 2003 son diversos y son utilizados para informar sobre el sistema, las aplicaciones y el rendimiento. &lt;/p&gt;  &lt;p&gt;** Hay que tener en cuenta el idioma del sistema operativo. Yo suelo usarlo en inglés y le aplico el MUI en español para los usuarios que no se encuentran cómodos con este idioma. Lo digo por los nombres de contador, intentaremos poner el nombre usado en ambos idiomas pero prima siempre el original en inglés.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Disponibilidad del Sistema&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;System\System Up Time (&lt;/strong&gt;\Sistema\Tiempo de actividad del sistema&lt;strong&gt;)&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="662"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Tipo de contador:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Tiempo transcurrido&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Descripción:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Nos muestra el tiempo, en segundos, que el equipo lleva activo desde el último inicio/reinicio.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Medición:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Sus valores son acumulados hasta que se reinicia el sistema.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Uso:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Indicador primario de la disponibilidad del sistema.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Rendimiento:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Programación:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;&lt;em&gt;&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Que hace:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Informa de la disponibilidad del sistema.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Alerta de umbral:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;&lt;em&gt;&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Medidas relacionadas:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;&lt;em&gt;&lt;strong&gt;Process(n)\Elapsed Time (&lt;/strong&gt;\Proceso(*)\Tiempo transcurrido&lt;strong&gt;)&lt;/strong&gt;&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Process(n)\Elapsed Time (&lt;/strong&gt;\Proceso(*)\Tiempo transcurrido&lt;strong&gt;)&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="664"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Tipo de contador:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="501"&gt;Tiempo transcurrido&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Descripción:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="501"&gt;Nos muestra el tiempo, en segundos, que el proceso lleva activo desde el último inicio/reinicio.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Medición:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="501"&gt;La instancia de proceso sólo existe durante un intervalo en el cual se encontró al proceso en ejecución al final del intervalo. Los valores son acumulados a través de intervalos medidos mientras el proceso se está ejecutando.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Uso:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="501"&gt;Indicador primario de la disponibilidad de la aplicación. En el caso de servicios del sistema, comparándolo con &lt;em&gt;&lt;strong&gt;System\System Up Time (&lt;/strong&gt;\Sistema\Tiempo de actividad del sistema&lt;strong&gt;) &lt;/strong&gt;&lt;/em&gt;nos servirá para determinar si la aplicación ha estado disponible continuamente desde que el equipo se inició/reinició.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Rendimiento:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="501"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Programación:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="501"&gt;&lt;em&gt;&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Que hace:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="501"&gt;Informa de la disponibilidad del sistema.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Alerta de umbral:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="501"&gt;&lt;em&gt;&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Medidas relacionadas:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="501"&gt;&lt;em&gt;&lt;strong&gt;System\System Up Time (&lt;/strong&gt;\Sistema\Tiempo de actividad del sistema&lt;strong&gt;)&lt;/strong&gt;&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Otras posibles mediciones que nos sirvan para ver la disponibilidad del sistema pueden ser los contadores: &lt;em&gt;&lt;strong&gt;TCP\Connections Active (&lt;/strong&gt;&lt;/em&gt;\TCPv4\Conexiones activas&lt;em&gt;&lt;strong&gt;)&lt;/strong&gt; y &lt;strong&gt;Server\Server Sessions (&lt;/strong&gt;&lt;/em&gt;\Servidor\Sesiones del servidor&lt;strong&gt;&lt;em&gt;)&lt;/em&gt;&lt;/strong&gt;, que indican el estado de la conectividad de red. Un sistema que está en ejecución y no puede comunicarse con otros equipos es más que probable que esté inutilizable. En caso de hosting web, habría que separar los contadores de &lt;strong&gt;&lt;em&gt;FTP Service\FTP Service Uptime () &lt;/em&gt;&lt;/strong&gt;y &lt;strong&gt;&lt;em&gt;Web Service\Service Uptime ()&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1716429" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Rendimiento/default.aspx">Rendimiento</category></item><item><title>Configurar archivos seguimiento con Logman</title><link>http://msmvps.com/blogs/juansa/archive/2009/08/14/configurar-archivos-seguimiento-con-logman.aspx</link><pubDate>Fri, 14 Aug 2009 09:33:55 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1715600</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1715600</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/08/14/configurar-archivos-seguimiento-con-logman.aspx#comments</comments><description>&lt;p&gt;También podemos usar Logman para generar los archivos de seguimiento de sucesos.&lt;/p&gt;  &lt;p&gt;Sintaxis:&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="992"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="208"&gt;         &lt;p align="center"&gt;&lt;em&gt;&lt;strong&gt;Comando de logman&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="776"&gt;         &lt;p align="center"&gt;&lt;em&gt;&lt;strong&gt;Qué hace&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="208"&gt;&lt;em&gt;create trace &amp;lt;nombre&amp;gt;&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="776"&gt;Crea una colección de consultas o de registro de contador o de sesión de seguimiento.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="208"&gt;update &amp;lt;nombre&amp;gt;&lt;/td&gt;        &lt;td valign="top" width="776"&gt;Actualiza una colección existente modificando los parámetros.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="208"&gt;delete &amp;lt;nombre&amp;gt;&lt;/td&gt;        &lt;td valign="top" width="776"&gt;Elimina una colección existente.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="208"&gt;query &amp;lt;nombre&amp;gt;&lt;/td&gt;        &lt;td valign="top" width="776"&gt;Lista las colecciones definidas y su estado sin el &amp;lt;nombre&amp;gt; con él mostrará las propiedades de la colección especificada. Si es en equipos remotos añadiremos la opción –&lt;strong&gt;&lt;em&gt;s&lt;/em&gt;&lt;/strong&gt;.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="208"&gt;query providers &amp;lt;proveedor&amp;gt;&lt;/td&gt;        &lt;td valign="top" width="776"&gt;Mostrará en pantalla una lista de los parámetros que pueden establecerse para el proveedor especificado, sus valores y descripciones de lo que habilitan. Esto depende del proveedor.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="208"&gt;start &amp;lt;nombre&amp;gt;&lt;/td&gt;        &lt;td valign="top" width="776"&gt;Inicia una sesión manualmente.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="208"&gt;stop &amp;lt;nombre&amp;gt;&lt;/td&gt;        &lt;td valign="top" width="776"&gt;Detiene una sesión manualmente.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Las colecciones creadas con Logman tienen las mismas propiedades de configuración que las creadas con el elemento de Alertas y registros de rendimiento, y desde el podemos ver cualquier colección que hayamos creado con Logman. Asimismo, si usamos el parámetro –&lt;strong&gt;query&lt;/strong&gt; con Logman para ver una lista de colecciones en el equipo, también veremos los creados desde Alertas y registros de rendimiento.&lt;/p&gt;  &lt;p&gt;El conmutador –&lt;strong&gt;&lt;em&gt;ets&lt;/em&gt;&lt;/strong&gt; se usa para establecer una sesión de seguimiento de sucesos interactiva. Sin él, Logman asume que la colección es programada. Cuando usamos –&lt;strong&gt;&lt;em&gt;ets&lt;/em&gt;&lt;/strong&gt;, Logman no verá ninguna configuración de sesión previamente guardada. Los parámetros se le pasan directamente a la sesión sin guardarse o programarse. Con el conmutador –&lt;strong&gt;&lt;em&gt;ets&lt;/em&gt;&lt;/strong&gt; podemos crear múltiples sesiones de seguimiento de sucesos por ventana de consola.&lt;/p&gt;  &lt;p&gt;Un ejemplo de secuencia de comandos:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;logman create trace &amp;quot;&lt;/strong&gt;miseguimiento&amp;quot; –&lt;strong&gt;pf &lt;/strong&gt;&lt;/em&gt;deIIS.txt –&lt;strong&gt;&lt;em&gt;bs&lt;/em&gt;&lt;/strong&gt; 64 –&lt;strong&gt;&lt;em&gt;o&lt;/em&gt;&lt;/strong&gt; miseguimiento.etl     &lt;br /&gt;&lt;strong&gt;&lt;em&gt;logman start &amp;quot;&lt;/em&gt;&lt;/strong&gt;miseguimiento&amp;quot; &lt;strong&gt;&lt;em&gt;–ets&lt;/em&gt;&lt;/strong&gt;     &lt;br /&gt;&lt;strong&gt;&lt;em&gt;logman stop &amp;quot;&lt;/em&gt;&lt;/strong&gt;miseguimiento&amp;quot; –&lt;strong&gt;&lt;em&gt;ets&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;La sesión iniciada con el segundo comando NO es la única creada por el primero. El segundo comando iniciará la sesión &lt;em&gt;miseguimiento&lt;/em&gt; con la configuración predeterminada ya que se ha especificado –&lt;strong&gt;ets&lt;/strong&gt; sin otros argumentos. Sin embargo, este mismo comando no borrara la configuración guardada por el primer comando.&lt;/p&gt;  &lt;p&gt;Por contra, si no se especifica –&lt;strong&gt;ets&lt;/strong&gt;:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;logman create trace &amp;quot;&lt;/strong&gt;miseguimiento&amp;quot; –&lt;strong&gt;pf &lt;/strong&gt;&lt;/em&gt;deIIS.txt –&lt;strong&gt;&lt;em&gt;bs&lt;/em&gt;&lt;/strong&gt; 64 –&lt;strong&gt;&lt;em&gt;o&lt;/em&gt;&lt;/strong&gt; miseguimiento.etl     &lt;br /&gt;&lt;strong&gt;&lt;em&gt;logman start &amp;quot;&lt;/em&gt;&lt;/strong&gt;miseguimiento&amp;quot;     &lt;br /&gt;&lt;strong&gt;&lt;em&gt;logman stop &amp;quot;&lt;/em&gt;&lt;/strong&gt;miseguimiento&amp;quot;&lt;/p&gt;  &lt;p&gt;El segundo y tercer comando recuperan la configuración de la sesión guardada, inician y paran la sesión. Si observamos la secuencia ésta es como una sesión interactiva pero sin –&lt;strong&gt;&lt;em&gt;ets&lt;/em&gt;&lt;/strong&gt;, los comandos pasan por el servicio de programación, incluido su inicio/detención.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Proveedores&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;El subcomando –&lt;strong&gt;&lt;em&gt;query providers&lt;/em&gt;&lt;/strong&gt; nos permite determinar desde qué proveedores de seguimiento podemos reunir datos de seguimiento.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3247.logmanqueryproviders_5F00_5E020DAD.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="logmanqueryproviders" border="0" alt="logmanqueryproviders" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/4721.logmanqueryproviders_5F00_thumb_5F00_73A6890E.jpg" width="377" height="255" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;*Por supuesto si la aplicación o servicio asociado al proveedor no está activa en el equipo, el proveedor no está habilitado para recoger los sucesos correspondientes.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Algunos proveedores disponen de opciones adicionales que podemos seleccionar entre los sucesos que estos proveedores pueden seguir.&lt;/p&gt;  &lt;p&gt;Parámetros de Logman para el seguimiento:&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="904"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="145"&gt;         &lt;p align="center"&gt;&lt;strong&gt;&lt;em&gt;Parámetro&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="249"&gt;         &lt;p align="center"&gt;&lt;strong&gt;&lt;em&gt;Sintaxis&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="222"&gt;         &lt;p align="center"&gt;&lt;strong&gt;&lt;em&gt;Función&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="276"&gt;         &lt;p align="center"&gt;&lt;strong&gt;&lt;em&gt;Observaciones&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Activar proveedor(es) de seguimiento&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-p {GUID} [(flags[,flags…])] Level |&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Proveedores a utilizar en la sesión.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;Con –&lt;em&gt;&lt;strong&gt;pf &lt;/strong&gt;archivo&lt;/em&gt; para usar los de un archivo de configuración.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Tamaño búfer&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-bf valor&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Tamaño en KB del búfer de la sesión.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;En caso de ocurrir sucesos más rápido que su guardado en disco y para evitar su pérdida, un tamaño grande de búfer será de gran ayuda.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Número de búferes&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;nb min max&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Cantidad mínima/máxima de búferes para la sesión.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;El mínimo predeterminado es el número de procesadores más 2 y como máximo 25.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Establecer opciones de modo de seguimiento&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-mode [modo[modo…]]&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;El modo puede ser &lt;em&gt;globalsequence, localsequence o pagedmemory.&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="276"&gt;La opción &lt;em&gt;pagedmemory&lt;/em&gt; utiliza búferes de memoria paginable.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Resolución del reloj&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-ct {system | perf | ciclo}&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;perf y ciclo usan 100 ns de temporizador contra un ms del reloj del sistema.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;&lt;em&gt;ciclo&lt;/em&gt; usa menos tiempo de proceso.           &lt;br /&gt;&lt;em&gt;perf&lt;/em&gt; proporciona una resolución de temporizador más exacto.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Creación e inicio de sesión de seguimiento&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-ets&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Iniciar una sesión usando los parámetros definidos en el símbolo del sistema para esta sesión.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Equipo&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-s Equipo&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Especifica el equipo del que se quieren recoger los contadores.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;Si no se especifica se toma el equipo local.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Sesión en tiempo real&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-rt&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Muestra en pantalla los datos en tiempo real. No los guarda en ningún archivo.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Seguimiento en modo usuario&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-ul&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;El seguimiento se realiza en modo usuario.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;En este modo, un proveedor puede habilitarse para la sesión de seguimiento de sucesos.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Nombre archivo de salida&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-o {Ruta |&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Se especifica el archivo de salida, si no existe, se crea.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;Es obligatorio. Los archivos son en formato binario con la extensión *.etl.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Nombrado archivos&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;- v {NNNNNN | MMDDHHMM}&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Genera archivos con nombres únicos sea numerándolos consecutivamente o añadiendo la hora y la fecha al nombre.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Vaciado de búferes&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-ft [[HH]:MM:]SS&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Los búferes se vacían después del tiempo especificado.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Límite tamaño archivo&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-max valor&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Tamaño máximo del archivo o BD en MB.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;El registro finaliza al alcanzar el tamaño.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;LoggerName&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;ln LoggerName&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Un nombre definido de usuario para la sesión.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;Predeterminadamente este nombre es el de la colección.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Añadir&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-a&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Añade los datos de salida a un archivo existente.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Comienzo sesión&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-b M/D/YYYY H:MM:SS [{AM | PM}]&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Inicia la sesión en la fecha y hora designada.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Fin de sesión&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-e M/D/YYYY H:MM:SS [{AM | PM}]&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Finaliza la sesión en la fecha y hora designada.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;Con –&lt;strong&gt;r&lt;/strong&gt; se establece la duración de sesión.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;duración&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-rf [[HH:]MM:]SS&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Finaliza la sesión pasado el tiempo especificado.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;Con –&lt;strong&gt;e &lt;/strong&gt;se establece la fecha y hora de finalización.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Repetir&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-r&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Repetición cada día a la misma hora. El periodo de tiempo se basa en alguna de las opciones –&lt;strong&gt;b &lt;/strong&gt;con –&lt;strong&gt;rf&lt;/strong&gt;, o –&lt;strong&gt;b &lt;/strong&gt;con –&lt;strong&gt;e&lt;/strong&gt;.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;uso conjuntamente con las opciones –&lt;strong&gt;cnf&lt;/strong&gt;, –&lt;strong&gt;v&lt;/strong&gt; y –&lt;strong&gt;rc&lt;/strong&gt;.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Inicio y detención de colección&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-m [start] [stop]&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Inicio y detención de la sesión interactiva manualmente.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Usuario y contraseña&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-u usuario contraseña&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Se especifica usuario y contraseña para acceso a equipo remoto.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;u&gt;Marcas de hora de suceso&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Si las entradas de sucesos aparecen como fuera de hora, podemos necesitar usar un reloj de alta resolución. Algunas veces, si usamos la hora del sistema como reloj, la resolución (10ms) puede no ajustarse lo suficiente para ciertas secuencias de sucesos. Cuando un conjunto de sucesos muestran el mismo valor de marca de hora, el orden en que aparecen en el visor de sucesos no garantiza que sea en el mismo orden en que sucedieron. Si observamos que algo de esto está pasando, usaremos &lt;em&gt;perf&lt;/em&gt; –que tiene una resolución más ajustada (100ns). Con Logman, el parámetro –&lt;strong&gt;&lt;em&gt;ct perf&lt;/em&gt;&lt;/strong&gt; obliga al uso del reloj &lt;em&gt;perf&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Comprobación del límite de tamaño del archivo.&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Si especificamos un límite de tamaño de archivo con la opción –&lt;em&gt;max&lt;/em&gt;, el sistema de archivos en el que queremos crear el archivo de seguimiento lo evalúa antes de iniciar la sesión para ver si existe el espacio suficiente para ejecutar adecuadamente el seguimiento. Este límite de tamaño sólo se lleva a cabo cuando el archivo se almacena en la unidad del sistema. Si éste tuviera espacio insuficiente, la sesión fallará, apareciendo un error genérico de &lt;strong&gt;smlogsvc&lt;/strong&gt; en el visor de sucesos.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Informes del seguimiento de sucesos.&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Con Tracerpt.exe podemos convertir uno o más archivos *.etl al formato *.csv y ver su contenido.&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;tracerpt&lt;/strong&gt; archivo.etl &lt;strong&gt;–o&lt;/strong&gt; archivo.csv&lt;/p&gt;  &lt;p&gt;Estos archivos podemos abrirlos con Excel y ver, secuencialmente, lo grabado.&lt;/p&gt;  &lt;p&gt;Si se usa la opción –&lt;strong&gt;&lt;em&gt;report&lt;/em&gt;&lt;/strong&gt; con alguno de los proveedores, windows kernel trace, IIS, spooler o AD, se generan tablas adicionales en el informe que contienen los datos relacionados con un pre-formato. Por ejemplo:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;&lt;em&gt;tracerpt&lt;/em&gt;&lt;/strong&gt; archivo.etc archivo2.etl &lt;strong&gt;&lt;em&gt;–report&lt;/em&gt;&lt;/strong&gt; archivo.html &lt;em&gt;&lt;strong&gt;–f&lt;/strong&gt;&lt;/em&gt; html&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1715600" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Rendimiento/default.aspx">Rendimiento</category></item><item><title>Investigación de eventos</title><link>http://msmvps.com/blogs/juansa/archive/2009/08/11/investigaci-243-n-de-eventos.aspx</link><pubDate>Tue, 11 Aug 2009 09:22:23 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1714862</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1714862</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/08/11/investigaci-243-n-de-eventos.aspx#comments</comments><description>&lt;p&gt;En Windows disponemos de la posibilidad de seguimiento de eventos ETW (Event Tracing for Windows). Este seguimiento puede terminar en un informe relacionado a los eventos de rendimiento cuando estos ocurren, eventos como:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Cambios de contexto &lt;/li&gt;    &lt;li&gt;Errores de página &lt;/li&gt;    &lt;li&gt;Solicitudes E/S de archivo &lt;/li&gt;    &lt;li&gt;Creación y finalización de procesos &lt;/li&gt;    &lt;li&gt;Creación y finalización de hilos &lt;/li&gt;    &lt;li&gt;Solicitudes de conexión, envíos y recepciones TCP. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Además, aplicaciones como IIS o el propio Directorio Activo también están preparados para ofrecernos un diagnóstico sobre el seguimiento de eventos. En IIS por ejemplo, el controlador HTTP, Inetinfo, filtro ISAPI, peticiones CGI e incluso peticiones ASP, que proporcionan eventos de inicio y fin de solicitudes específicas nos permiten seguir el camino seguido por una solicitud GET HTTP individual en diferentes etapas de su proceso por entre dichos componentes.&lt;/p&gt;  &lt;p&gt;Seguimiento de eventos no sólo graba cuando ocurren los eventos, sino que también captura información especifica que puede usarse para identificar el propio evento y la aplicación que lo causa. Los eventos se registran en un archivo que podemos consultar. El seguimiento de eventos es una técnica que la podemos utilizar para diagnosticar problemas de rendimiento que no nos son fáciles de resolver mediante otras herramientas ya vistas.&lt;/p&gt;  &lt;p&gt;Como gran beneficio tenemos a su gran precisión. Podemos saber exactamente que ha pasado y cuando. Aunque en su contra hay inconvenientes que debemos conocer. Uno de los&amp;#160; inconvenientes es la posibilidad de que se generen cantidades de datos muy grandes y que complican su propio análisis. Otro es que un análisis manual resulta complejo, aunque Windows Server 2003 incluye una herramienta llamada &lt;strong&gt;&lt;em&gt;tracerpt.exe&lt;/em&gt;&lt;/strong&gt; que simplifica la cosa. Si deseamos conocer un contador solamente de entre muchos eventos, lo normal sería usar el monitor del sistema, si por el contrario, necesitamos entender con detalle la secuencia de eventos asociados a un problema de rendimiento, entonces usar &lt;em&gt;Seguimiento de eventos&lt;/em&gt;, que nos proporcionará una extensa variedad de eventos de sistema y aplicaciones.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8831.TRACERPT_5F00_12E76873.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="TRACERPT" border="0" alt="TRACERPT" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6378.TRACERPT_5F00_thumb_5F00_3156CABE.jpg" width="248" height="319" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Investigar datos en Windows Server 2003 se compone de recoger y reunirlos usando sesiones de registro que los graben en un archivo. Podemos crear y administrar las sesiones de seguimiento con Log manager. Contamos además con los registros de seguimiento facilitados por &lt;strong&gt;Alertas y registros de rendimiento&lt;/strong&gt; en la consola de &lt;strong&gt;&lt;em&gt;Rendimiento&lt;/em&gt;&lt;/strong&gt; que nos ofrece ciertas facilidades interactivas para definir sesiones de seguimiento de eventos, iniciarlas o detenerlas. Aunque estas facilidades interactivas no sean más que un subconjunto de opciones de definición de seguimiento de las que dispone Logman. Logman tiene además la ventaja que puede usarse junto a scripts para automatizar todos los aspectos del registro de seguimiento de eventos. Tracerpt.exe formatea los datos y proporciona varios informes integrados.&lt;/p&gt;  &lt;p&gt;En una sesión de seguimiento, nos comunicamos con los proveedores de datos de seguimiento seleccionados que son los responsables de informar siempre que ocurran los eventos. Cuando un evento ocurre, el proveedor devuelve información sobre el mismo evento a la sesión de seguimiento, normalmente el servicio de Alertas y registros de rendimiento y éste a su vez graba una entrada en el archivo de registro.&lt;/p&gt;  &lt;p&gt;Los registros de seguimiento se guardan en formato binario y con la extensión *.etl. Podemos usar archivos de seguimiento circular o secuencial. Y como con los registros de contadores podemos establecer su límite de tamaño. Cuando un archivo circular alcanza el límite establecido el registro de eventos sigue, desde el inicio del archivo y reemplazando los datos antiguos, en uno secuencial la sesión de seguimiento finaliza.&lt;/p&gt;  &lt;p&gt;Luego, para ver los archivos de una forma aceptable necesitamos una herramienta de análisis como Tracerpt.exe que procesa el archivo de registro de salida y transforma los datos binarios en CSV (separado por comas). Disponemos también de informes usando la opción –&lt;strong&gt;&lt;em&gt;report&lt;/em&gt;&lt;/strong&gt; de tracerpt.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;u&gt;Alertas y registros de rendimiento&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Cuando abrimos el monitor de rendimiento observamos en el árbol del panel izquierdo la función de Alertas y registros de rendimiento y de ella cuelgan tres componentes: &lt;em&gt;registros de contador, registros de seguimiento y alertas.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1565.registroseguimiento01_5F00_17F15835.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="registroseguimiento01" border="0" alt="registroseguimiento01" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8015.registroseguimiento01_5F00_thumb_5F00_30175341.jpg" width="403" height="312" /&gt;&lt;/a&gt; &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Podemos crear registros de seguimiento desde aquí cuando queramos, con capacidades similares a las que hay disponibles para los registros de contador, como:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Administrar múltiples sesiones de registro de seguimiento desde una única consola(Aunque podemos tener definidas muchísimas más sesiones, hay un límite de 32 activas simultáneamente). &lt;/li&gt;    &lt;li&gt;Iniciar y detener manualmente, bajo demanda, automáticamente o programando el horario de cada registro de las sesiones. &lt;/li&gt;    &lt;li&gt;Detener cada registro según el tiempo transcurrido o del tamaño actual del archivo. &lt;/li&gt;    &lt;li&gt;Especificar esquemas de nombrado automático e indicar un programa que se ejecutará cuando un registro de seguimiento se detiene. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;El proceso del servicio de Alertas y registros de rendimiento &lt;strong&gt;&lt;em&gt;Smlogsvc.exe&lt;/em&gt;&lt;/strong&gt; es el responsable de ejecutar las funciones del registro de seguimiento que hayamos definido.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;u&gt;Configurar un registro de rendimiento&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Pulsamos en Registros de seguimiento en la consola (ver imagen anterior), en el panel derecho se nos mostrarán, si las hubiesen, las ya definidas.&amp;#160; &lt;/li&gt;    &lt;li&gt;Clic derecho sobre el panel, el menú contextual nos muestras dos opciones de creación de nuevos registros:      &lt;br /&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7357.registroseguimiento02_5F00_7B0D54C1.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="registroseguimiento02" border="0" alt="registroseguimiento02" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5707.registroseguimiento02_5F00_thumb_5F00_6A2B4182.jpg" width="244" height="183" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Se nos pide un nombre para el registro:      &lt;br /&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2146.registroseguimiento03_5F00_3DA4A24D.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="registroseguimiento03" border="0" alt="registroseguimiento03" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6355.registroseguimiento03_5F00_thumb_5F00_0D112495.jpg" width="244" height="105" /&gt;&lt;/a&gt;       &lt;br /&gt;y se muestra el cuadro de configuración.       &lt;br /&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6765.registroseguimiento04_5F00_5873590A.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="registroseguimiento04" border="0" alt="registroseguimiento04" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2577.registroseguimiento04_5F00_thumb_5F00_608D1610.jpg" width="234" height="244" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Elegiremos entre los eventos del proveedor del sistema o de alguno de los proveedores de aplicación disponibles. Clic en el botón de Estado de proveedores para ver aquéllos proveedores específicos que están instalados en el equipo.      &lt;br /&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8816.registroseguimiento08_5F00_04B50151.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="registroseguimiento08" border="0" alt="registroseguimiento08" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8400.registroseguimiento08_5F00_thumb_5F00_4102E79D.jpg" width="244" height="217" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Pasaremos por el resto de pestañas: Archivos de registro, Programación y Avanzadas para establecer las diferentes opciones.      &lt;br /&gt;      &lt;table border="0" cellspacing="2" cellpadding="2" width="764"&gt;&lt;tbody&gt;         &lt;tr&gt;           &lt;td valign="top" width="154"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0412.registroseguimiento05_5F00_5039506A.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="registroseguimiento05" border="0" alt="registroseguimiento05" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2148.registroseguimiento05_5F00_thumb_5F00_3AE0BC64.jpg" width="234" height="244" /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td valign="top" width="134"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6765.registroseguimiento06_5F00_032E0234.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="registroseguimiento06" border="0" alt="registroseguimiento06" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7357.registroseguimiento06_5F00_thumb_5F00_227339B8.jpg" width="234" height="244" /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td valign="top" width="466"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0508.registroseguimiento07_5F00_5F96F53D.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="registroseguimiento07" border="0" alt="registroseguimiento07" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7345.registroseguimiento07_5F00_thumb_5F00_314290F2.jpg" width="235" height="244" /&gt;&lt;/a&gt; &lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;em&gt;&lt;u&gt;Los proveedores de eventos&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Los proveedores de eventos son los responsables del envío de información sobre un evento al servicio de alertas y registro de rendimiento en cuanto ocurre. De forma predeterminada, en la pestaña General, la opción Proveedores que no son de sistema está marcada para mantener el registro de seguimiento por encima de un mínimo. Pulsaremos en el botón Agregar para incluir datos desde estos proveedores en el registro de seguimiento. Entre los proveedores de aplicaciones están Active Directory, MMQ, IIS, y la cola de impresión.&lt;/p&gt;  &lt;p&gt;Si pulsamos en Sucesos registrados por el proveedor del sistema, se usa un proveedor compilado para eventos del kernel de Windows para monitorizar los procesos, hilos y otras actividades. Marcaremos las casillas que deseamos definir para el seguimiento.&lt;/p&gt;  &lt;p&gt;*Creación /eliminación de procesos y/o subprocesos.&lt;/p&gt;  &lt;p&gt;*E/S de disco&lt;/p&gt;  &lt;p&gt;*TCP/IP de red&lt;/p&gt;  &lt;p&gt;*Errores de página&lt;/p&gt;  &lt;p&gt;*Detalles de archivo&lt;/p&gt;  &lt;p&gt;Antes de conectar el seguimiento de una clase de suceso debemos tener claro el impacto sobre el rendimiento que causará. Si queremos hacer una prueba, con el monitor del sistema podemos seguir algunos contadores que usen sucesos que el proveedor del kernel pueda seguir durante varios minutos, comprobaremos entonces el tamaño de los archivos producidos y el sobreuso consumido por el seguimiento, que será proporcional a los sucesos ocurridos.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;\Sistema\Operaciones de lectura de archivo/s&lt;/strong&gt; (\System\File Data Operations/sec)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;\Sistema\Operaciones de control de archivo/s&lt;/strong&gt; (\System\File Control Operations/sec)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;\Memoria\Errores de página/s&lt;/strong&gt; (\Memory\Page faults/sec)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;\TCPv4\Segmentos/s&lt;/strong&gt; (\TCPv4\Segments/sec)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;u&gt;Configuración de las propiedades del registro&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Las hojas de propiedades nos permiten establecer el seguimiento automatizado. Las opciones de archivo y programación son similares a las disponibles para registro de contadores. La pestaña de archivos de registro se usa para seleccionar el tipo de archivo y las opciones de nombrado automático. En la de programación podremos escoger las opciones de inicio manual o automático, establecer la hora en la que queremos que termine la sesión, determinando una hora o especificando una duración en segundos, minutos, horas, o días; o también indicando que se detenga cuando el archivo de registro alcance su tamaño límite especificado.&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="1007"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="116"&gt;         &lt;p align="center"&gt;&lt;em&gt;Pestaña&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="374"&gt;         &lt;p align="center"&gt;&lt;em&gt;Configuración&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="507"&gt;         &lt;p align="center"&gt;&lt;em&gt;Notas&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="116"&gt;General&lt;/td&gt;        &lt;td valign="top" width="374"&gt;Selección de proveedores          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;Cuenta y contraseña.&lt;/td&gt;        &lt;td valign="top" width="507"&gt;Podemos reunir datos desde el equipo local únicamente. Configura los sucesos del proveedor del sistema.          &lt;br /&gt;          &lt;br /&gt;Podemos usar Ejecutar como (Run As) para proporcionar usuario y contraseña en caso de equipos remotos.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="116"&gt;Archivos de registro&lt;/td&gt;        &lt;td valign="top" width="374"&gt;Tipo de archivo.          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;Nombrado automático.&lt;/td&gt;        &lt;td valign="top" width="507"&gt;Los archivos de seguimiento son archivos binarios con la extensión *.etl. Podemos seleccionar o binarios circulares –cuando llegan al final comienzan de nuevo por el principio del archivo sobrescribiendo los existentes-, o binarios secuenciales. Configuración de ubicación, nombre y tamaño de archivo.          &lt;br /&gt;          &lt;br /&gt;Podemos elegir una secuencia de números a añadir o la hora y la fecha, para identificar al archivo.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="116"&gt;Programación&lt;/td&gt;        &lt;td valign="top" width="374"&gt;Métodos de inicio/detención manual o automáticos.          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;Horas de inicio/detención automáticos.           &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;Detención automática cuando el archivo alcanza su límite de tamaño.           &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;Proceso cuando el archivo se cierra.&lt;/td&gt;        &lt;td valign="top" width="507"&gt;Podemos especificar que se detenga la recogida de datos cuando el archivo esté lleno.          &lt;br /&gt;          &lt;br /&gt;Inicio y detención según la hora del día, o especificar la hora de inicio y su duración.           &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;En casos de recogida de datos continua, iniciar un archivo nuevo en cuanto el archivo se cierra. También podemos iniciar automáticamente la ejecución de un comando al cerrarse el archivo.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="116"&gt;Avanzada&lt;/td&gt;        &lt;td valign="top" width="374"&gt;Tamaño de búfer.          &lt;br /&gt;          &lt;br /&gt;Búferes mínimos y máximos.           &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;Transferencia de datos desde el búfer al archivo de registro.&lt;/td&gt;        &lt;td valign="top" width="507"&gt;         &lt;br /&gt;          &lt;br /&gt;Aumentar el número de búferes en caso de seguimiento de demasiados sucesos.           &lt;br /&gt;          &lt;br /&gt;El tiempo máximo en segundos, que las entradas de seguimiento se mantienen en memoria sin transferirse al archivo de seguimiento en el disco.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1714862" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>¿Cómo obtienen los datos las herramientas de rendimiento?</title><link>http://msmvps.com/blogs/juansa/archive/2009/08/03/191-c-243-mo-obtienen-los-datos-las-herramientas-de-rendimiento.aspx</link><pubDate>Mon, 03 Aug 2009 18:31:54 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1712533</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1712533</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/08/03/191-c-243-mo-obtienen-los-datos-las-herramientas-de-rendimiento.aspx#comments</comments><description>&lt;p&gt;Monitor del sistema, alertas y registros de rendimiento, Logman, Relog y Typeperf, todas sacan información de alguna parte: usando librerías dinámicas como intermediarias, las PDH(Performance Data Helper). Cada una de las herramientas citadas colecta contadores usando el interfaz PDH, luego es responsable ella misma de realizar los cálculos de conversión de los datos de los intervalos de contadores y de formatearlos para generar informes y archivos de salida.&lt;/p&gt;  &lt;p&gt;Las *dll de rendimiento (Perflib) proporcionan los datos para todas las medidas de los contadores en el monitor del sistema. El sistema operativo provee de un conjunto básico de librerías de rendimiento para monitorizar el comportamiento de los recursos, como la memoria, procesador, discos, adaptadores de red y protocolos. Por supuesto hay muchas otras aplicaciones y servicios dentro de Windows Server 2003 que proporcionan sus propias *dll que instalan contadores y que podemos usar para montorizar sus operaciones. Todas estas librerías instaladas en el equipo están registradas en las sub-claves de Performance bajo la clave &lt;em&gt;HKLM\SYSTEM\CurrentControlSet\Services\&lt;/em&gt;&lt;strong&gt;nombre_del_servicio&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7701.perfdelsistema_5F00_72FC068E.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="perfdelsistema" border="0" alt="perfdelsistema" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7384.perfdelsistema_5F00_thumb_5F00_68CA6C21.jpg" width="466" height="172" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5722.perfWEB_5F00_53DB7A5F.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="perfWEB" border="0" alt="perfWEB" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3187.perfWEB_5F00_thumb_5F00_5371D81B.jpg" width="473" height="199" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="843"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="142"&gt;&lt;strong&gt;Library&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="693"&gt;Archivo y ruta de la *.dll&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;&lt;strong&gt;Open&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="693"&gt;Punto de entrada para la rutina a llamar cuando se inicie una sesión.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;&lt;strong&gt;Open Timeout&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="693"&gt;El tiempo que esperará para llamar a la rutina de Open antes de caducar.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;&lt;strong&gt;Collect&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="693"&gt;Punto de entrada para llamar a cualquier intervalo de muestra para recuperar datos del contador.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;&lt;strong&gt;Collect Timeout&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="693"&gt;El tiempo de espera antes de caducar la llamada a la rutina Collect.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;&lt;strong&gt;Close&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="693"&gt;Punto de entrada para la rutina de cierre a llamar para limpieza antes de terminar.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Estos campos se usan por las rutinas PDH para cargar las *.dll, inicializarlas para su uso en la recogida de datos de rendimiento y cerrarlas cuando la sesión termina.&lt;/p&gt;  &lt;p&gt;Para ahorrar espacio en el registro, las variables REG_MULTI_SZ de texto grandes que componen nombres y texto explicativo de los contadores de rendimiento se guardan en archivos de cadenas de texto fuera del registro. Estos archivos están mapeados dentro del registro, como si fuesen claves normales para usuarios y aplicaciones. Los archivos son:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;%windir%\system32\&lt;/strong&gt;&lt;em&gt;perfc009.dat&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;%windir%\system32\&lt;/strong&gt;&lt;em&gt;perfh009.dat&lt;/em&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Al guardarlos separadamente se indica el ID del lenguaje del país: 09 = inglés, 0A=español,…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1031.perfFILES_5F00_299163E6.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="perfFILES" border="0" alt="perfFILES" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5734.perfFILES_5F00_thumb_5F00_3B708864.jpg" width="493" height="225" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;El proceso de PDH al ser requerido por una aplicación de monitorización de rendimiento sería:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;PDH accede a los archivos perfc00A.dat y perfh00A.dat (si el lenguaje es el español) que contiene el texto que define los objetos de rendimiento y los nombres de los contadores instalados en el equipo, junto con sus textos explicativos asociados. &lt;/li&gt;    &lt;li&gt;PDH realiza inventario de la clave &lt;em&gt;&lt;strong&gt;HKLM\SYSTEM\CurrentControlSet\Services\&lt;/strong&gt;nombre_del_servicio&lt;strong&gt;\&lt;/strong&gt;&lt;/em&gt; para determinar que *.dll de Perflib están disponibles en el equipo. &lt;/li&gt;    &lt;li&gt;Para cada clave hallada, PDH carga la *.dll Perflib. &lt;/li&gt;    &lt;li&gt;Después de la carga de *.dlls, PDH llama a la rutina &lt;strong&gt;Open&lt;/strong&gt;. La rutina devuelve la información que describe los objetos y contadores que la *.dll soporta. La aplicación de monitorización podrá usar esta información para montar un menú de selección de objetos y contadores como el formulario &lt;strong&gt;&lt;em&gt;Añadir contadores&lt;/em&gt;&lt;/strong&gt; del monitor del sistema.      &lt;br /&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0535.agregarcontadores_5F00_31AB20EC.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="agregarcontadores" border="0" alt="agregarcontadores" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3187.agregarcontadores_5F00_thumb_5F00_515C8B65.jpg" width="244" height="217" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;En el primer intervalo de muestra, PDH llama a la rutina &lt;strong&gt;Collects&lt;/strong&gt;&lt;em&gt; &lt;/em&gt;para reunir los contadores de rendimiento, la aplicación puede realizar llamadas PDH adicionales para formatear estos contadores para mostrarlos por pantalla. &lt;/li&gt;    &lt;li&gt;Cuando termina, PDH llama a la rutina &lt;strong&gt;Close&lt;/strong&gt; para todas las Perflibs activas hasta que finalizan su procesamiento con corrección. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;El procesamiento PDH oculta la mayoría de detalles de estos pasos en aplicaciones de monitorización, como el monitor del sistema y Log manager. La herramienta &lt;strong&gt;&lt;em&gt;Extensible Counter List&lt;/em&gt;&lt;/strong&gt; (exctrlst.exe, incluida en las &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=6ec50b78-8be1-4e81-b3be-4e7ac4f0912d&amp;amp;DisplayLang=en"&gt;Windows Support Tools de Windows Server 2003&lt;/a&gt;) ilustra el paso 2 del procesamiento. Si la iniciamos desde el símbolo del sistema (escribiendo exctrlst en una cmd) obtenemos:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5340.exctrlst_5F00_67B230AA.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="exctrlst" border="0" alt="exctrlst" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0363.exctrlst_5F00_thumb_5F00_38EF08B9.jpg" width="402" height="281" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Es decir, un completo inventario de librerías de rendimiento (DLLS) registradas en el equipo.&lt;/p&gt;  &lt;p&gt;* Si una llamada a una función Perflib falla o devuelve error, las rutinas PDH añaden un campo opcional a la sub-clave &lt;strong&gt;&lt;em&gt;Disable Performance Counters&lt;/em&gt;&lt;/strong&gt;. Se genera un mensaje de error en el registro de eventos si PDH halla un error. Si se establece un marcador en la sub-clave, las rutinas PDH no intentarán cargar, ni recoger datos desde dicha librería hasta que se resuelva el fallo y se eliminen los marcadores mediante la herramienta &lt;strong&gt;&lt;em&gt;Extensible Counter List&lt;/em&gt;&lt;/strong&gt; siempre mejor que editando el registro.&lt;/p&gt;  &lt;p&gt;* Aún así, disponemos de entradas en el registro en &lt;strong&gt;&lt;em&gt;HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Perflib&lt;/em&gt;&lt;/strong&gt; que pueden ayudarnos cuando suframos problemas dentro de las *.dll.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1712533" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>Typeperf: Desde el símbolo de comando</title><link>http://msmvps.com/blogs/juansa/archive/2009/07/31/typeperf-desde-el-s-237-mbolo-de-comando.aspx</link><pubDate>Fri, 31 Jul 2009 08:24:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1711315</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1711315</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/07/31/typeperf-desde-el-s-237-mbolo-de-comando.aspx#comments</comments><description>&lt;p&gt;Una vez conocidos los contadores de rendimiento instalados en el equipo, podemos monitorizar el rendimiento. Para ello, iniciaremos Typeperf seguido de una lista de contadores, por ejemplo:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;Typeperf&lt;/strong&gt; &amp;quot;Memoria\Bytes disponibles&amp;quot;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;*El sistema que yo uso es en español.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8015.typeperf01_5F00_729BE889.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="typeperf01" border="0" alt="typeperf01" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2664.typeperf01_5F00_thumb_5F00_4F04DB93.jpg" width="358" height="197" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Typeperf comienza de inmediato la monitorización de los bytes disponibles de memoria y los va mostrando en la ventana en tiempo real; continuará hasta que usemos la secuencia de teclas &lt;strong&gt;CRTL+C&lt;/strong&gt; para finalizar la sesión.&lt;/p&gt;  &lt;p&gt;Si queremos monitorizar más de un contador sólo tenemos que añadirlos entrecomillados siguiendo al anterior,&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;Typeperf&lt;/strong&gt; &amp;quot;Memoria\Bytes disponibles&amp;quot; &amp;quot;Memoria\Bytes de caché&amp;quot; &lt;em&gt;&amp;quot;Memoria\Páginas/s&amp;quot;&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="typeperf02" border="0" alt="typeperf02" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2161.typeperf02_5F00_thumb_5F00_00FF0CCF.jpg" width="374" height="198" /&gt;&lt;/p&gt;  &lt;p&gt;Como alternativa, podemos tener las rutas en un archivo y referenciarlo en el comando usando el parámetro –&lt;strong&gt;cf&lt;/strong&gt;, parecido a &lt;strong&gt;Relog&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Si queremos hacerlo a equipos remotos:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;Typeperf&lt;/strong&gt; &amp;quot;&lt;a&gt;&lt;em&gt;\\Equipo\Memoria\Bytes disponibles&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&amp;quot;&lt;/em&gt; o, &lt;em&gt;&lt;strong&gt;Typeperf&lt;/strong&gt; &amp;quot;Memoria\Bytes disponibles&amp;quot;&lt;/em&gt; &lt;strong&gt;–s&lt;/strong&gt; Equipo&lt;/p&gt;  &lt;p&gt;De forma predeterminada las medidas o muestras de los datos de rendimiento son de una vez por segundo hasta que se pulsa &lt;strong&gt;CRTL+C&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Nosotros no podemos hacer que el comando se ejecute durante dos horas y se detenga (al menos desde sus parámetros), pero si podemos especificar el número de muestras o medidas a tomar durante su sesión, alcanzado dicho número se cerrará. Para ello utilizaremos el parámetro –&lt;strong&gt;sc&lt;/strong&gt; seguido del número, por ejemplo si queremos 100 muestras:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;Typeperf&lt;/strong&gt; &amp;quot;Memoria\Bytes disponibles&amp;quot;&lt;/em&gt; –&lt;strong&gt;sc&lt;/strong&gt; &lt;em&gt;100&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Lo que supone 100 segundos.&lt;/p&gt;  &lt;p&gt;También podemos modificar la frecuencia de muestreo, sabemos que es una por segundo, 86400 en un día. Así que para hacerlo usaremos el parámetro –&lt;strong&gt;si&lt;/strong&gt; seguido del nuevo muestro en &lt;strong&gt;&lt;em&gt;segundos&lt;/em&gt;&lt;/strong&gt;, si lo queremos cada 5 minutos entonces 5*60=300:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;Typeperf&lt;/strong&gt; &amp;quot;Memoria\Bytes disponibles&amp;quot;&lt;/em&gt; –&lt;strong&gt;si&lt;/strong&gt; &lt;em&gt;300&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Y finalmente un par de cuestiones: dirigir la salida hacia un archivo de registro y/o cambiar el formato del mismo.&lt;/p&gt;  &lt;p&gt;Redirigir la salida puede hacerse, como siempre hemos hecho desde el propio símbolo del sistema:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;Typeperf&lt;/strong&gt; &amp;quot;Memoria\Bytes disponibles&amp;quot;&lt;/em&gt; &amp;gt; &lt;em&gt;ruta\nombre_archivo&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;o, y mejorándolo creo, usar el parámetro del comando –&lt;strong&gt;o&lt;/strong&gt; junto al –&lt;strong&gt;f&lt;/strong&gt; y así redirigir y establecer el formato del archivo de salida.&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;Typeperf&lt;/strong&gt; &amp;quot;Memoria\Bytes disponibles&amp;quot;&lt;/em&gt;&amp;#160;&lt;strong&gt;-o&lt;/strong&gt; &lt;em&gt;ruta\nombre_archivo.&lt;strong&gt;extension&lt;/strong&gt; –&lt;/em&gt;&lt;strong&gt;f &lt;em&gt;tipo_formato&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Donde &lt;strong&gt;extensión&lt;/strong&gt; irá en consonancia(*.csv, *.tsv, *.log) con el &lt;strong&gt;tipo_formato&lt;/strong&gt; (bin, csv, tsv, SQL)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1711315" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item></channel></rss>