<?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 : Scripting</title><link>http://msmvps.com/blogs/juansa/archive/tags/Scripting/default.aspx</link><description>Tags: Scripting</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Administrar registros de rendimiento: Relog</title><link>http://msmvps.com/blogs/juansa/archive/2009/07/08/administrar-registros-de-rendimiento-relog.aspx</link><pubDate>Wed, 08 Jul 2009 09:01:38 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1698700</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=1698700</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/07/08/administrar-registros-de-rendimiento-relog.aspx#comments</comments><description>&lt;h5&gt;Unión de registros de contador con Relog&lt;/h5&gt;  &lt;p&gt;Podemos utilizar Relog para unir datos de múltiples registros de rendimiento en un único archivo. Se especifica la ruta y los nombres de archivos de los diversos registros de rendimiento como parte del parámetro inicial:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;&lt;em&gt;relog c:\registros\registro1.blg c:\registros\registro2.blg c:\registros\registro3.blg –o c:\misRegistros\RegistroDestino.blg –a&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Usamos el parámetro –&lt;strong&gt;a&lt;/strong&gt; para indicarle a Relog que debe añadir la salida de cualesquiera datos al archivo de salida cuando se unen datos de múltiples registros.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Los registros almacenados en equipos remotos también pueden unirse mediante el uso de la ruta UNC en lugar de la ruta local.&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;a&gt;&lt;strong&gt;&lt;em&gt;relog &lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;a&gt;\\servidor01\registros\reg1.blg&lt;/a&gt;&lt;/a&gt; &lt;a&gt;\\servidor02\registros\reg2.blg&lt;/a&gt; &lt;a&gt;\\servidor03\registros\reg3.blg&lt;/a&gt; –o c\misRegistros\RegDestino.blg –a –f blg&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Las rutas individuales no deben superar los 1024 caracteres.&lt;/em&gt;&lt;/p&gt;  &lt;h5&gt;&lt;/h5&gt;  &lt;h5&gt;Formato del archivo de salida de Relog&lt;/h5&gt;  &lt;p&gt;Relog es compatible con los mismos formatos de archivos de entrada y salida como Logman a excepción del binario circular y de establecer tamaños límite de archivo. Si se crea un nuevo archivo de salida éste tendrá el formato binario de forma predeterminada. Relog sólo puede añadir datos sobre archivos existentes, y los archivos de entrada y salida están en formato binario.&lt;/p&gt;  &lt;p&gt;Cuando creamos un nuevo archivo de salida podemos usar el parámetro –&lt;strong&gt;f&lt;/strong&gt; para especificar uno de los formatos: bin (formato binario, predeterminado), csv (valores separados por comas), tsv (Valores separados por tabulación) o SQL (formato SQL).&lt;/p&gt;  &lt;h5&gt;Filtrar archivos de registro con Relog&lt;/h5&gt;  &lt;p&gt;Relog tiene capacidad de filtrado, que puede usarse para la extracción de datos de rendimiento desde un registro de contador de entrada basado en los siguientes criterios:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Una lista de contadores, especificados con sus rutas. &lt;/li&gt;    &lt;li&gt;Un rango especificado de fecha y hora. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Sólo los contadores que cumplan los criterios especificados se escribirán en el archivo de salida que Reglog cree.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Filtrado por contador&lt;/em&gt;&lt;/strong&gt;&amp;#160;&amp;#160; Se basa en una lista de contadores, especificados en la la línea de comandos o en un archivo de configuración. Relog grabará en el archivo designado de salida sólo aquéllos valores de los contadores especificados.&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;relog&lt;/strong&gt;&lt;em&gt; c:\registros\reg01.txt –&lt;/em&gt;&lt;strong&gt;o &lt;/strong&gt;&lt;em&gt;c:\registros\nuevoreg.txt –&lt;/em&gt;&lt;strong&gt;f &lt;/strong&gt;&lt;em&gt;csv –&lt;/em&gt;&lt;strong&gt;c&lt;/strong&gt; &amp;quot;&lt;em&gt;\Memory\Available Bytes&amp;quot;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Para la extracción de datos de más de un contador, se incluye cara ruta del contador como parte del parámetro –&lt;strong&gt;c&lt;/strong&gt;.&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;relog&lt;/strong&gt;&lt;em&gt; c:\registros\reg01.txt –&lt;/em&gt;&lt;strong&gt;o &lt;/strong&gt;&lt;em&gt;c:\registros\nuevoreg.txt –&lt;/em&gt;&lt;strong&gt;f &lt;/strong&gt;&lt;em&gt;csv –&lt;/em&gt;&lt;strong&gt;c&lt;/strong&gt; &amp;quot;&lt;em&gt;\Memory\Available Bytes&amp;quot;&lt;/em&gt; &amp;quot;\Memory\Pages/sec&amp;quot; &amp;quot;\Memory\Cache Bytes&amp;quot;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="10" width="950"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="948"&gt;&lt;em&gt;&lt;strong&gt;Nota:&lt;/strong&gt; Relog no realiza monitorización por sí mismo; todo lo que hace es recoger datos desde registros de rendimiento existentes. Si especificamos un contador que no se encuentra en ninguno de los archivos de entrada, el contador no aparecerá en el archivo de salida.&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Si nuestro registro de entrada contiene datos de múltiples equipos, se incluye el nombre del equipo como parte de la ruta del contador.&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;relog&lt;/strong&gt;&lt;em&gt; c:\registros\reg01.txt –&lt;/em&gt;&lt;strong&gt;o &lt;/strong&gt;&lt;em&gt;c:\registros\nuevoreg.txt –&lt;/em&gt;&lt;strong&gt;f &lt;/strong&gt;&lt;em&gt;csv –&lt;/em&gt;&lt;strong&gt;c&lt;/strong&gt; &amp;quot;&lt;em&gt;&lt;strong&gt;\\EQUIPO&lt;/strong&gt;\Memory\Available Bytes&amp;quot;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;En lugar de escribir una gran cantidad de contadores de rendimiento como parte del comando, podemos usar un archivo de configuración, un simple archivo de texto conteniendo las rutas de cada contador en una fila.&lt;/p&gt;  &lt;p&gt;Para filtrar los archivos de entrada que sólo tengan aquéllos contadores que estén en el de salida, usar el parámetro –&lt;strong&gt;cf&lt;/strong&gt; seguido de la ruta del archivo de configuración.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Filtrado por fecha&amp;#160;&amp;#160; &lt;/strong&gt;Relog proporciona la habilidad de extraer subconjuntos de datos basados en fecha y hora. Para ello se especifica la hora de comienzo (parámetro –&lt;strong&gt;b&lt;/strong&gt;) y la hora final (parámetro –&lt;strong&gt;e&lt;/strong&gt;) como parte de nuestro comando. Tanto uno como otro parámetros expresan fechas y horas usando el formado mm-dd-yyyy hh:mm:ss, més día año, hora, minuto y segundos, la hora se expresa en formato 24 horas.&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;relog &lt;/strong&gt;c:\registros\reg01.txt –&lt;strong&gt;f &lt;/strong&gt;csv –&lt;strong&gt;o&lt;/strong&gt; c:\registros\Nuevoreg.txt –&lt;strong&gt;b &lt;/strong&gt;07-07-2009 09:30:00 –&lt;strong&gt;e&lt;/strong&gt; 07-08-2009 11:00:00&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Si sólo indicamos las horas, se asume la fecha del día actual.&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;relog &lt;/strong&gt;c:\registros\reg01.txt –&lt;strong&gt;o&lt;/strong&gt; c:\registros\Nuevoreg.txt –&lt;strong&gt;b &lt;/strong&gt;09:30:00 –&lt;strong&gt;e&lt;/strong&gt; 11:00:00&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1698700" 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/Scripting/default.aspx">Scripting</category></item><item><title>Siguiendo con Logman</title><link>http://msmvps.com/blogs/juansa/archive/2009/07/01/siguiendo-con-logman.aspx</link><pubDate>Wed, 01 Jul 2009 10:06:34 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1697448</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=1697448</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/07/01/siguiendo-con-logman.aspx#comments</comments><description>&lt;p&gt;Con Logman podemos programar opciones que nos permitan la programación de la recogida de datos en horas específicas durante el día. Mediante intervalos de muestra diferentes podemos tener también a Logman recogiendo datos en intervalos regulares. Lo que no podemos hacer es programar la recogida de datos de en horarios irregulares. Por ejemplo: los 10 primeros minutos de cada hora.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Podemos con Typeperf hacerlo. Creamos un archivo de lotes que configure Typeperf&lt;/em&gt;&amp;#160; para tomar muestras sólo 10 minutos y luego programamos que el archivo de lotes se ejecute una vez cada hora con el Administrador de tareas.&lt;/p&gt;  &lt;p&gt;Sin embargo, ya que Logman es scriptable, podemos combinar WSH y Logman para programar la recogida de datos usando intervalos irregulares. Un script:&lt;/p&gt;  &lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; WshShell = WScript.CreateObject(&lt;span style="color:#006080;"&gt;&amp;quot;WScript.Shell&amp;quot;&lt;/span&gt;)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Do&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;     WshShell.Run &lt;span style="color:#006080;"&gt;&amp;quot;%COMPSEC% /c logman -start dns_log&amp;quot;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;     Script.Sleep 300000&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt;     WshShell.Run &lt;span style="color:#006080;"&gt;&amp;quot;%COMPSEC% /c logman -stop dns_log&amp;quot;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt;     WScript.Sleep 3300000&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Loop&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Inicia Logman y se para por cinco minutos, tiempo que Logman recoge datos, luego lo detiene y permanece 55 minutos inactiva hasta volver a activar el Ciclo(Loop).&lt;/p&gt;

&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; WshShell = WScript.CreateObjetc(&lt;span style="color:#006080;"&gt;&amp;quot;WScript.Shell&amp;quot;&lt;/span&gt;)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;For&lt;/span&gt; i = 1 &lt;span style="color:#0000ff;"&gt;to&lt;/span&gt; 24&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;     WshShell.Run &lt;span style="color:#006080;"&gt;&amp;quot;%COMPSEC /c logman -start dns_log&amp;quot;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;     WScript.Sleep 300000&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt;     WshShell.Run &lt;span style="color:#006080;"&gt;&amp;quot;%COMPSEC /c logman -stop dns_log&amp;quot;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt;     WScript.Sleep 3300000&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Next&lt;/span&gt; i&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt;   8:&lt;/span&gt; WScript.Quit&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Este hace lo mismo pero se ejecuta 24 veces, una vez cada hora.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1697448" 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/Scripting/default.aspx">Scripting</category></item><item><title>Queremos el resultado de un script por email</title><link>http://msmvps.com/blogs/juansa/archive/2008/12/03/queremos-el-resultado-de-un-script-por-email.aspx</link><pubDate>Wed, 03 Dec 2008 15:57:35 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1655652</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=1655652</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2008/12/03/queremos-el-resultado-de-un-script-por-email.aspx#comments</comments><description>&lt;p&gt;Bien, pues aquí tenemos un script que podemos lanzar para que nos informe del estado de los servicios por email diariamente.&lt;/p&gt; &lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;"&gt; &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;Este script sirve para comprobar cambios de estado de los servicios&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39; usando event log y enviar después un aviso por email&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;(c) Juansa 03-12-2008&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;leer el archivo&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Function&lt;/span&gt; leearchivo (nombreArchivo)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;Const&lt;/span&gt; ForReading = 1, ForWriting = 2&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   8:&lt;/span&gt;        &lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt; fso, f&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   9:&lt;/span&gt;        &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; fso = CreateObject(&lt;span style="color:#006080;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  10:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; f = fso.OpenTextFile(nombreArchivo, ForReading)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  11:&lt;/span&gt;     leearchivo = f.ReadAll&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  12:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Function&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  13:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;existe el archivo&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  14:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Function&lt;/span&gt; Existe(archivo)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  15:&lt;/span&gt;    &lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt; fso&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  16:&lt;/span&gt;    &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; fso = CreateObject(&lt;span style="color:#006080;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  17:&lt;/span&gt;    &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt; (fso.FileExists(archivo)) &lt;span style="color:#0000ff;"&gt;Then&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  18:&lt;/span&gt;     Existe = &lt;span style="color:#0000ff;"&gt;True&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  19:&lt;/span&gt;    &lt;span style="color:#0000ff;"&gt;Else&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  20:&lt;/span&gt;       Existe = &lt;span style="color:#0000ff;"&gt;False&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  21:&lt;/span&gt;    &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  22:&lt;/span&gt;    &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  23:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Function&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  24:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;cuerpo script&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  25:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;Creamos constantes y variables&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  26:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Const&lt;/span&gt; ForReading = 1, ForWriting = 2&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  27:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt; TabStop, NewLine, filename, strDate, dia, mes, ano&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  28:&lt;/span&gt; TabStop = Chr(9)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  29:&lt;/span&gt; NewLine = Chr(10)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  30:&lt;/span&gt; dia = left(&lt;span style="color:#0000ff;"&gt;Date&lt;/span&gt;, 2)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  31:&lt;/span&gt; ano = right(&lt;span style="color:#0000ff;"&gt;Date&lt;/span&gt;, 4)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  32:&lt;/span&gt; mes = mid(&lt;span style="color:#0000ff;"&gt;Date&lt;/span&gt;, 4,2)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  33:&lt;/span&gt; strDate = dia &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;-&amp;quot;&lt;/span&gt; &amp;amp; mes &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;-&amp;quot;&lt;/span&gt; &amp;amp; ano&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  34:&lt;/span&gt; filename = &lt;span style="color:#006080;"&gt;&amp;quot;c:\scripts\InformeServicios_&amp;quot;&lt;/span&gt; &amp;amp; strDate &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;.txt&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  35:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  36:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;comprobaremos que el informe no exista ya&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  37:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; Existe(filename) = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;then&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  38:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;no se ejecutará nada&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  39:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  40:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt; fso, miarchivo&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  41:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; fso = CreateObject(&lt;span style="color:#006080;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  42:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; miarchivo = fso.CreateTextFile(filename, &lt;span style="color:#0000ff;"&gt;True&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  43:&lt;/span&gt; miarchivo.close&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  44:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; objFSO = CreateObject(&lt;span style="color:#006080;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  45:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; objFile = objFSO.OpenTextFile(filename, ForWriting, &lt;span style="color:#0000ff;"&gt;True&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  46:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  47:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; dtmConvertedDate = CreateObject(&lt;span style="color:#006080;"&gt;&amp;quot;wbemScripting.SwbemDateTime&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  48:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  49:&lt;/span&gt; StrComputer = &lt;span style="color:#006080;"&gt;&amp;quot;.&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  50:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; objWMIService = GetObject(&lt;span style="color:#006080;"&gt;&amp;quot;winmgmts:&amp;quot;&lt;/span&gt; &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;{impersonationLevel=Impersonate}!\\&amp;quot;&lt;/span&gt; &amp;amp; strComputer &amp;amp;  &lt;span style="color:#006080;"&gt;&amp;quot;\root\cimv2&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  51:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  52:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; ColServiceEvents = objWMIService.ExecQuery (&lt;span style="color:#006080;"&gt;&amp;quot;SELECT * FROM Win32_NTLogEvent WHERE LogFile =  &amp;#39;System&amp;#39; AND &amp;quot;&lt;/span&gt; &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;EventCode = &amp;#39;7036&amp;#39;&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  53:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  54:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;For&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Each&lt;/span&gt; strEvent &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; ColServiceEvents&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  55:&lt;/span&gt;     dtmConvertedDate.Value = strEvent.TimeWritten&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  56:&lt;/span&gt;     objFile.WriteLine dtmConvertedDate.GetVarDate&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  57:&lt;/span&gt;     objFile.WriteLine strEvent.Message&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  58:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Next&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  59:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  60:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  61:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;el archivo se ha creado ya&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  62:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;vamos a enviar el email&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  63:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;OJO CON LOS DATOS A RELLENAR&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  64:&lt;/span&gt; esquema = &lt;span style="color:#006080;"&gt;&amp;quot;http://schemas.microsoft.com/cdo/configuration/&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  65:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; cdoConfig = CreateObject(&lt;span style="color:#006080;"&gt;&amp;quot;CDO.Configuration&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  66:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;With&lt;/span&gt; cdoConfig.Fields &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  67:&lt;/span&gt;         .Item(esquema &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;sendusing&amp;quot;&lt;/span&gt;) = 2 &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  68:&lt;/span&gt;         .Item(esquema &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;smtpserver&amp;quot;&lt;/span&gt;) = &lt;span style="color:#006080;"&gt;&amp;quot;tuservidorSMTP&amp;quot;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  69:&lt;/span&gt;         .Item(esquema &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;smtpauthenticate&amp;quot;&lt;/span&gt;) = 1 &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  70:&lt;/span&gt;         .Item(esquema &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;sendusername&amp;quot;&lt;/span&gt;) = &lt;span style="color:#006080;"&gt;&amp;quot;TuUsuario&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  71:&lt;/span&gt;         .Item(esquema &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;sendpassword&amp;quot;&lt;/span&gt;) = &lt;span style="color:#006080;"&gt;&amp;quot;Tuclave&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  72:&lt;/span&gt;         .Item(esquema &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;smtpserverport&amp;quot;&lt;/span&gt;) = 25 &lt;span style="color:#008000;"&gt;&amp;#39;si se usa otro&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  73:&lt;/span&gt;         .Item(esquema &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;smtpusessl&amp;quot;&lt;/span&gt;) = &lt;span style="color:#0000ff;"&gt;False&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;si se usa ssl True&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  74:&lt;/span&gt;         .Item(esquema &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;smtpconnectiontimeout&amp;quot;&lt;/span&gt;) = 60&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  75:&lt;/span&gt;         .update&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  76:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;With&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  77:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; cdoMessage = CreateObject(&lt;span style="color:#006080;"&gt;&amp;quot;CDO.Message&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  78:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;With&lt;/span&gt; cdoMessage&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  79:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; .Configuration = cdoConfig&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  80:&lt;/span&gt;         .From = &lt;span style="color:#006080;"&gt;&amp;quot;tucuenta@tudominio&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  81:&lt;/span&gt;         .&lt;span style="color:#0000ff;"&gt;To&lt;/span&gt; = &lt;span style="color:#006080;"&gt;&amp;quot;tucuenta@tudominio&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  82:&lt;/span&gt;         .Subject = &lt;span style="color:#006080;"&gt;&amp;quot;prueba de envío&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  83:&lt;/span&gt;         .TextBody = &lt;span style="color:#006080;"&gt;&amp;quot;El equipo ha tenido un error, revisa el registro&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  84:&lt;/span&gt;         .Send&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  85:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;With&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  86:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; cdoMessage = &lt;span style="color:#0000ff;"&gt;Nothing&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  87:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; cdoConfig = &lt;span style="color:#0000ff;"&gt;Nothing&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  88:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;end&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  89:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39; wscript.Echo &amp;quot;FINAL&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Cualquier otro script puede montarse de la misma manera, así como asignar el envío de un correo a un eventtrigger por ejemplo.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1655652" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Scripting/default.aspx">Scripting</category></item><item><title>Monitorizar los Servicios, y 4</title><link>http://msmvps.com/blogs/juansa/archive/2008/12/01/monitorizar-los-servicios-y-4.aspx</link><pubDate>Mon, 01 Dec 2008 10:18:14 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1655472</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=1655472</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2008/12/01/monitorizar-los-servicios-y-4.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;Monitorizar el rendimiento del servicio&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Hemos monitorizado los servicios en cuanto a su disponibilidad y su fiabilidad, pero nos falta algo, ¿podemos llevar a cabo alguna monitorización que nos ayude a impedir los fallos?.&lt;/p&gt; &lt;p&gt;Una estrategia de monitorización que nos ayude a hacer lo siguiente:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Determinar porqué se ha detenido el servicio. &lt;/strong&gt;¿Se queda sin memoria?, ¿Demasiados usuarios accediendo? ¿Algún cuello de botella en los discos o la red?  &lt;li&gt;&lt;strong&gt;Predecir los fallos con antelación. &lt;/strong&gt;Con ciertos servicios puede que seamos capaces de predecir su fallo si el servicio excede de un umbral específico. Aquí podemos servirnos de un script que monitorice las operaciones por segundo que realiza el servicio. Cuando el valor se aproxime al umbral específico, el script puede o limitar el número de conexiones simultáneas o encaminar a los usuarios hacia otros servicios iguales en otros equipos.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;¿Cómo podríamos monitorizar el rendimiento?&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Monitorizar el proceso del servicio. &lt;/strong&gt;Cada servicio tiene un proceso responsable del mismo. Si lo monitorizamos podemos asegurarnos que utiliza la memoria y otros recursos adecuadamente. Sin embargo no podemos saber si el servicio está llevando a cabo su función eficientemente. El servicio podría tener un montón de memoria disponible, simplemente porque ya no responde solicitudes de los usuarios.  &lt;li&gt;&lt;strong&gt;Llevar a cabo un test estándar. &lt;/strong&gt;Para algunos servicios, podemos realizar un test y entonces medir el tiempo de respuesta del servicio. Comparando el tiempo de respuesta con el tiempo que tenemos como base podemos hacernos una idea sobre si el servicio está dentro del los límites esperados.  &lt;li&gt;&lt;strong&gt;Monitorizar el rendimiento mediante el uso de contadores. &lt;/strong&gt;Los contadores representan la mejor forma de monitorizar el rendimiento actual de un servicio.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Los contadores de rendimiento están incluidos para muchos servicios en Windows Server 2003 y Windows XP Professional, como DHCP, DNS, WINS y IIS. Sin embargo, muchos de los servicios, especialmente los que no vienen con el propio sistema operativo, no incluyen contadores de rendimiento. Esto significa que no seremos capaces de usar contadores de rendimientos para monitorización de todos los servicios en nuestra red.&lt;/p&gt; &lt;p&gt;Para realizar la monitorización podemos utilizar scripts de Shell (&lt;a href="http://technet2.microsoft.com/windowsserver/es/library/45b6fbfc-9fcd-4e58-b070-1ace9ca93f2e3082.mspx?mfr=true"&gt;TypePerf.exe&lt;/a&gt; y &lt;a href="http://technet2.microsoft.com/windowsserver/es/library/25d92f21-ffad-45c7-824e-b8c291559ebd3082.mspx?mfr=true"&gt;Logman.exe&lt;/a&gt;) o de WMI (&lt;a href="http://msdn.microsoft.com/en-us/library/aa394253(VS.85).aspx"&gt;Win32_PerfFormattedData&lt;/a&gt;), pero aún así, los contadores pueden usarse desde el monitor de rendimiento, tanto en tiempo real como ir guardando los datos en un archivo.&lt;/p&gt; &lt;p&gt;Un Script para el servicio Web:&lt;/p&gt; &lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;"&gt; &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt; StrComputer = &lt;span style="color:#006080;"&gt;&amp;quot;.&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; objWMIService = GetObject(&lt;span style="color:#006080;"&gt;&amp;quot;winmgmts:&amp;quot;&lt;/span&gt; &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;{impersonationLevel=Impersonate}!\\&amp;quot;&lt;/span&gt; &amp;amp; strComputer &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;\root\cimv2&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; objRefresher = CreateObject(&lt;span style="color:#006080;"&gt;&amp;quot;wbemscripting.SWbemRefresher&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; ColW3SVC = objRefresher.AddEnum (objWMIService, &lt;span style="color:#006080;"&gt;&amp;quot;win32_PerfFormattedData_W3SVC_WebService&amp;quot;&lt;/span&gt;).ObjectSet&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt; objRefresher.Refresh&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;For&lt;/span&gt; i = 1 &lt;span style="color:#0000ff;"&gt;to&lt;/span&gt; 60&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   8:&lt;/span&gt;   &lt;span style="color:#0000ff;"&gt;For&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;each&lt;/span&gt; objW3SVC &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; ColW3SVC&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   9:&lt;/span&gt;     Wscript.Echo &lt;span style="color:#006080;"&gt;&amp;quot;Conexiones  en  este momento: &amp;quot;&lt;/span&gt; &amp;amp; objW3SVC.CurrentConnections &amp;amp; _&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  10:&lt;/span&gt;     VbCrLf &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;Usuarios anónimos    por segundo: &amp;quot;&lt;/span&gt; &amp;amp; objW3SVC.AnonymousUsersPerSec &amp;amp; _&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  11:&lt;/span&gt;     VbCrLf &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;Intentos de conexión por segundo: &amp;quot;&lt;/span&gt; &amp;amp; objW3SVC.ConnectionAttemptsPerSec &amp;amp; _&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  12:&lt;/span&gt;     VbCrLf &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;Usuarios anónimos     conectados: &amp;quot;&lt;/span&gt; &amp;amp; objW3SVC.CurrentAnonymousUsers &amp;amp; _&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  13:&lt;/span&gt;     VbCrLf &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;Archivos servidos    por segundo: &amp;quot;&lt;/span&gt; &amp;amp; objW3SVC.FilesPerSec &amp;amp; _&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  14:&lt;/span&gt;     VbCrLf &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;Conexiones  máximas simultáneas : &amp;quot;&lt;/span&gt; &amp;amp; objW3SVC.MaximumConnections&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  15:&lt;/span&gt;   &lt;span style="color:#0000ff;"&gt;Next&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  16:&lt;/span&gt; wscript.Sleep 1000&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  17:&lt;/span&gt; objRefresher.Refresh&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  18:&lt;/span&gt; Next&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Como hago lo mismo con el monitor de rendimiento:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abro el complemento Rendimiento.&lt;br /&gt;&lt;a href="http://geeks.ms/photos/juansa/images/122719/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="183" alt="monitorizaci&amp;oacute;nrendimiento01" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServiciosy4_5F00_BF30/monitorizaci_F300_nrendimiento01_5F00_3.jpg" width="244" border="0" /&gt;&lt;/a&gt;&amp;nbsp; &lt;li&gt;Quito los contadores por defecto.&lt;br /&gt;&lt;a href="http://geeks.ms/photos/juansa/images/122720/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="182" alt="monitorizaci&amp;oacute;nrendimiento02" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServiciosy4_5F00_BF30/monitorizaci_F300_nrendimiento02_5F00_5.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;a href="http://geeks.ms/photos/juansa/images/122721/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="182" alt="monitorizaci&amp;oacute;nrendimiento03" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServiciosy4_5F00_BF30/monitorizaci_F300_nrendimiento03_5F00_3.jpg" width="244" border="0" /&gt;&lt;/a&gt; 
&lt;li&gt;Añado los que quiero y del servicio que quiero, en este caso Web Service.&lt;br /&gt;&lt;a href="http://geeks.ms/photos/juansa/images/122722/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="67" alt="monitorizaci&amp;oacute;nrendimiento04" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServiciosy4_5F00_BF30/monitorizaci_F300_nrendimiento04_5F00_3.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;a href="http://geeks.ms/photos/juansa/images/122723/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="217" alt="monitorizaci&amp;oacute;nrendimiento05" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServiciosy4_5F00_BF30/monitorizaci_F300_nrendimiento05_5F00_3.jpg" width="244" border="0" /&gt;&lt;/a&gt; 
&lt;li&gt;El monitor muestra información. En concreto, una línea indica el máximo de conexiones permitidas (le he indicado al servicio web sólo 2) y los usuarios anónimos conectados, he conectado desde otro equipo dos ventanas de IE al mismo servicio(2) y es lo que indica.&lt;br /&gt;&lt;a href="http://geeks.ms/photos/juansa/images/122724/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="182" alt="monitorizaci&amp;oacute;nrendimiento06" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServiciosy4_5F00_BF30/monitorizaci_F300_nrendimiento06_5F00_3.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1655472" 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/Scripting/default.aspx">Scripting</category></item><item><title>Monitorizar los Servicios 3</title><link>http://msmvps.com/blogs/juansa/archive/2008/12/01/monitorizar-los-servicios-3.aspx</link><pubDate>Mon, 01 Dec 2008 08:38:44 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1655468</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=1655468</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2008/12/01/monitorizar-los-servicios-3.aspx#comments</comments><description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Monitorizar los cambios en el estado de los servicios mediante Registro de Sucesos&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Los cambios en el estado de los servicios no se registraban en en el registro de sistema en versiones de Windows anteriores a Windows Server 2003 y Windows XP. En su lugar, un evento relacionado con un servicio sólo se registraba cuando el servicio fallaba. Esto no ayuda a monitorizar los servicios y su rendimiento en toda la red. Aunque una herramienta de monitorización puede descubrir si un servicio ha sido detenido, no podemos saber quién lo hizo, cuando ni porqué. Por ello, desconocemos si otro administrador o usuario avanzado ha detenido el servicio intencionadamente, o si se ha detenido por un problema de hardware o software.&lt;/p&gt; &lt;p&gt;En Windows Server 2003 y Windows XP professional, sin embargo, los sucesos se registran automáticamente en el registro de sistema siempre que se produzca un cambio en el estado del servicio, o siempre que un código de control se le envió al servicio. Por ejemplo, cuando un servicio cambia de estado, un suceso 7036 se registra:&lt;/p&gt; &lt;p&gt;&lt;a href="http://geeks.ms/photos/juansa/images/122224/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="219" alt="evento7036" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServicios3_5F00_B36F/evento7036_5F00_3.jpg" width="310" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Este es el evento provocado por la detención del servicio BITS que realicé manualmente para que el script del &lt;a href="http://msmvps.com/blogs/juansa/archive/2008/11/29/monitorizar-los-servicios-2.aspx"&gt;artículo anterior&lt;/a&gt; detectase y guardase en un archivo el cambio de estado de un servicio.&lt;/p&gt; &lt;p&gt;Asimismo, un evento 7035 se grabará cada vez que un código de control sea enviado al servicio.&lt;/p&gt; &lt;p&gt;Ya que podemos usar WMI para recuperar eventos seleccionados desde el registro de sucesos, podemos seguir la fiabilidad del servicio periódicamente consultando al registro de sucesos y anotando las fechas y horas en que los servicios se detienen o inician.&lt;/p&gt; &lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;"&gt; &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;Este script sirve para comprobar cambios de estado de los servicios&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39; usando event log y anotándolo en un archivo de texto&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;(c) Juansa 29-11-2008&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   8:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Const&lt;/span&gt; ForReading = 1, ForWriting = 2&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   9:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt; TabStop, NewLine&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  10:&lt;/span&gt; TabStop = Chr(9)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  11:&lt;/span&gt; NewLine = Chr(10)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  12:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; objFSO = CreateObject(&lt;span style="color:#006080;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  13:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; objFile = objFSO.OpenTextFile(&lt;span style="color:#006080;"&gt;&amp;quot;C:\scripts\Servicios_cambios.txt&amp;quot;&lt;/span&gt;, ForWriting, &lt;span style="color:#0000ff;"&gt;True&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  14:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  15:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; dtmConvertedDate = CreateObject(&lt;span style="color:#006080;"&gt;&amp;quot;wbemScripting.SwbemDateTime&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  16:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  17:&lt;/span&gt; StrComputer = &lt;span style="color:#006080;"&gt;&amp;quot;.&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  18:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; objWMIService = GetObject(&lt;span style="color:#006080;"&gt;&amp;quot;winmgmts:&amp;quot;&lt;/span&gt; &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;{impersonationLevel=Impersonate}!\\&amp;quot;&lt;/span&gt; &amp;amp; strComputer &amp;amp;  &lt;span style="color:#006080;"&gt;&amp;quot;\root\cimv2&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  19:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  20:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; ColServiceEvents = objWMIService.ExecQuery (&lt;span style="color:#006080;"&gt;&amp;quot;SELECT * FROM Win32_NTLogEvent WHERE LogFile =  &amp;#39;System&amp;#39; AND &amp;quot;&lt;/span&gt; &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;EventCode = &amp;#39;7036&amp;#39;&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  21:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  22:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;For&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Each&lt;/span&gt; strEvent &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; ColServiceEvents&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  23:&lt;/span&gt;     dtmConvertedDate.Value = strEvent.TimeWritten&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  24:&lt;/span&gt;     objFile.WriteLine dtmConvertedDate.GetVarDate&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  25:&lt;/span&gt;     objFile.WriteLine strEvent.Message&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  26:&lt;/span&gt; Next&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Cuyo resultado nos da:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/photos/juansa/images/122230/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="112" alt="eventQuery" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServicios3_5F00_B36F/eventQuery_5F00_3.jpg" width="336" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1655468" 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/Scripting/default.aspx">Scripting</category></item><item><title>Monitorizar los Servicios 2</title><link>http://msmvps.com/blogs/juansa/archive/2008/11/29/monitorizar-los-servicios-2.aspx</link><pubDate>Sat, 29 Nov 2008 09:51:13 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1655359</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=1655359</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2008/11/29/monitorizar-los-servicios-2.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;Monitorizar la fiabilidad de los servicios&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Monitorizar la fiabilidad de los servicios nos ayudará en su seguimiento y en la medición del tiempo medio existente entre fallos. Este tiempo medio nos indica el tiempo de espera desde que falla un servicio hasta que vuelve a estar operativo. Conociéndolo, tal vez seamos capaces de impedir que ocurran problemas antes de producirse.&amp;nbsp; Por ejemplo, si sabemos que un servicio falla cada 10 días, más que esperar a que falle (momento que podría ser inconveniente para los usuarios) podemos programarlo para que se detenga y reinicie periódicamente; además podemos seguirlo para ver si la solución nos sirve (a veces hay que echar mano de lo que sea).&lt;/p&gt; &lt;p&gt;Este seguimiento también nos puede indicar el tiempo que tarda un servicio en recuperarse del fallo.&lt;/p&gt; &lt;p&gt;Los métodos para seguir la fiabilidad:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Suscripción a sucesos. &lt;/strong&gt;Podemos crear una suscripción a un suceso que notifique cada x tiempo si un servicio cambia de estado. Si además guarda la información en una BD o archivo que podamos contrastar, podremos realizar un cálculo del tiempo medio entre los fallos y el tiempo necesario para restaurar su funcionalidad completamente.  &lt;li&gt;&lt;strong&gt;Registro de sucesos &lt;/strong&gt;&lt;em&gt;(Event Log)&lt;/em&gt;&lt;strong&gt;. &lt;/strong&gt;En Windows Server 203 los cambios en el estado de un servicio se guardan en el Registro del Sistema &lt;em&gt;(System Log visible con el Event viewer).&lt;/em&gt; Extrayendo periódicamente estos eventos, también podemos calcular la fiabilidad de nuestros servicios.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Si lo hacemos mediante script podemos usar: Shell script (&lt;a href="http://technet.microsoft.com/en-us/library/bb490900.aspx"&gt;EventQuery.vbs&lt;/a&gt; (&lt;a href="http://technet2.microsoft.com/windowsserver/es/library/68672494-7700-4cbf-8392-4b6ef87b87493082.mspx?mfr=true"&gt;es&lt;/a&gt;), &lt;a href="http://technet.microsoft.com/en-us/library/bb490901.aspx"&gt;EventTriggers.exe&lt;/a&gt;(&lt;a href="http://technet2.microsoft.com/windowsserver/es/library/e33bcf4c-dece-4b47-9bb7-31ecfcbc76d53082.mspx?mfr=true"&gt;es&lt;/a&gt;), &lt;a href="http://msdn.microsoft.com/en-us/library/aa394572(VS.85).aspx"&gt;WMI&lt;/a&gt; (Colecciones &lt;a href="http://msdn.microsoft.com/en-us/library/aa394418(VS.85).aspx"&gt;Win32_Service&lt;/a&gt; y &lt;a href="http://msdn.microsoft.com/en-us/library/aa394226(VS.85).aspx"&gt;Win32_NTLogEvent&lt;/a&gt;).&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Usando una suscripción de sucesos temporal o permanente.  &lt;li&gt;Usando el registro de sucesos.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;u&gt;Monitorizar los cambios en el estado de un servicio con una suscripción de suceso temporal&lt;/u&gt;&lt;/p&gt; &lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;"&gt; &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;Este script sirve para comprobar cambios de estado de los servicios&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39; usando una suscripción temporal a event log y volcado en un archivo de texto&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;(c) Juansa 29-11-2008&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   8:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Const&lt;/span&gt; ForReading = 1, ForWriting = 2&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   9:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt; TabStop, NewLine&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  10:&lt;/span&gt; TabStop = Chr(9)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  11:&lt;/span&gt; NewLine = Chr(10)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  12:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; objFSO = CreateObject(&lt;span style="color:#006080;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  13:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; objFile = objFSO.OpenTextFile(&lt;span style="color:#006080;"&gt;&amp;quot;C:\scripts\Cambio_Servicios.txt&amp;quot;&lt;/span&gt;, ForWriting, &lt;span style="color:#0000ff;"&gt;True&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  14:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  15:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  16:&lt;/span&gt; StrComputer = &lt;span style="color:#006080;"&gt;&amp;quot;.&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  17:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; objWMIService = GetObject(&lt;span style="color:#006080;"&gt;&amp;quot;winmgmts:&amp;quot;&lt;/span&gt; &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;{impersonationLevel=Impersonate}!\\&amp;quot;&lt;/span&gt; &amp;amp; strComputer &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;\root\cimv2&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  18:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; objwmiEventSource = objWMIService.ExecNotificationQuery (&lt;span style="color:#006080;"&gt;&amp;quot;SELECT * FROM __InstanceModificationEvent &amp;quot;&lt;/span&gt; &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;WITHIN 3 WHERE TargetInstance  ISA &amp;#39;Win32_Service&amp;#39;&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  19:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  20:&lt;/span&gt;   &lt;span style="color:#0000ff;"&gt;Do&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  21:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; objService = objwmiEventSource.NextEvent&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  22:&lt;/span&gt;       &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt; objService.TargetInstance.State &amp;lt;&amp;gt; objService.PreviousInstance.State &lt;span style="color:#0000ff;"&gt;Then&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  23:&lt;/span&gt;         objFile.WriteLine &lt;span style="color:#0000ff;"&gt;Date&lt;/span&gt; &amp;amp; TabStop &amp;amp; objService.TargetInstance.DisplayName &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot; está &amp;quot;&lt;/span&gt; &amp;amp; objService.TargetInstance.State &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;. Anteriormente  estaba &amp;quot;&lt;/span&gt; &amp;amp; objService.PreviousInstance.State &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;.&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  24:&lt;/span&gt;       &lt;span style="color:#0000ff;"&gt;end&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  25:&lt;/span&gt;   &lt;span style="color:#0000ff;"&gt;Loop&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  26:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Este script se ejecuta de continuo, para detenerlo hay que abrir el Administrador de Tareas y matar el proceso wscript.exe que se crea al ejecutarlo.&lt;/p&gt;
&lt;p&gt;Se ejecuta y no escribe nada en el archivo, pero yo hago una prueba manual: abro services.msc desde inicio-&amp;gt;ejecutar y detengo el servicio (el que sea) Background Intelligent Transfer Service(BITS) y luego lo vuelvo a iniciar. Al echar un vistazo al archivo donde le he dicho que me guarde los cambios, veo:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/photos/juansa/images/122191/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="130" alt="cambio_servicios" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServicios2_5F00_11CFC/cambio_5F00_servicios_5F00_3.jpg" width="379" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;em&gt;¿Qué hace el script?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Su cuerpo, ya conocemos la creación y preparación del archivo donde guardará la info, Creamos la variable para el equipo local (&lt;strong&gt;StrComputer&lt;/strong&gt;), Usamos &lt;strong&gt;GetObject&lt;/strong&gt; y conectamos con el espacio de nombres &lt;strong&gt;\root\cimv2&lt;/strong&gt; con nivel &lt;strong&gt;impersonate&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Usamos el método &lt;strong&gt;ExecNotificationQuery&lt;/strong&gt; para registrar la notificación de cada vez que una instancia se modifica. Como sólo queremos los cambios en los servicios, usamos una cláusula &lt;strong&gt;WHERE&lt;/strong&gt; para limitar la monitorización de los datos que nos devuelve la clase &lt;strong&gt;Win32_Service&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Creamos un bucle que ejecutará el script indefinidamente (podemos detenerlo como he indicado arriba, o con Taskkill.exe, Cerrando la sesión también se detiene).&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Usamos el método &lt;strong&gt;NextEvent&lt;/strong&gt; para recuperar el suceso cuando ocurre.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Así, cada vez que un servicio se modifica de alguna forma, el script comprueba el estado actual con el estado anterior, si no ha cambiado sigue a la espera, si es diferente lo graba en el archivo Cambios_servicios.txt.&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1655359" 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/Scripting/default.aspx">Scripting</category></item><item><title>Monitorizar los Servicios 1</title><link>http://msmvps.com/blogs/juansa/archive/2008/11/28/monitorizar-los-servicios-1.aspx</link><pubDate>Fri, 28 Nov 2008 12:34:12 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1655311</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=1655311</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2008/11/28/monitorizar-los-servicios-1.aspx#comments</comments><description>&lt;p&gt;Muchas de las operaciones que hace un equipo (especialmente un servidor) es ejecutar servicios. Esto hace que debamos ser cuidadosos con monitorizar los servicios que se ejecutan en los equipos de nuestra red. Una de las maneras más prácticas de monitorización es el uso de scripts.&lt;/p&gt; &lt;p&gt;Muchos de los servicios (DNS, DHCP,...) son críticos y un error en un único servidor puede tener un impacto en cientos, incluso miles, de usuarios, impidiéndoles iniciar sesión o acceder a los recursos de la red.&lt;/p&gt; &lt;p&gt;Como normas más generales de monitorización:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Monitorizar la disponibilidad del servicio: Medir el porcentaje de tiempo que un servicio está disponible.&lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;La definición exacta de disponibilidad depende de lo que se espera de cada servicio. Si un recurso debe estar disponible todos los días de 22:00 a 06:00 horas y éste fallase un domingo a las 8:00 de la mañana, no se consideraría fallo de disponibilidad.&lt;/p&gt;&lt;/blockquote&gt; &lt;ul&gt; &lt;li&gt;Monitorizar la fiabilidad del servicio: Medir la frecuencia de fallos de un servicio y el tiempo necesario para restaurarlo a su funcionalidad.&lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;La fiabilidad se calcula mediante la división del tiempo que el servicio está en funcionamiento por el número total de días en un año. Por ejemplo,un servicio que ha sufrido paradas en 6 días durante un año tendría una fiabilidad de 98,3% ((359 días disponible)/365 días en un año)&lt;/p&gt;&lt;/blockquote&gt; &lt;ul&gt; &lt;li&gt;Monitorizar el rendimiento del servicio: Medir si el servicio cumple su tarea en la forma esperada.&lt;/li&gt;&lt;/ul&gt; &lt;h5&gt;Monitorizar la disponibilidad del servicio&lt;/h5&gt; &lt;p&gt;Cuando monitorizamos la disponibilidad de un servicio, comprobamos sólo que el servicio se esté ejecutando. Si necesitamos saber si el servicio se ejecuta con máxima eficiencia, necesitamos usar otro tipo de monitorización (el rendimiento). Aunque relativamente es simple, la monitorización de disponibilidad es muy importante; otras cuestiones, como si el servicio se comporta en el nivel esperado, no tienen sentido si no se está ejecutando.&lt;/p&gt; &lt;p&gt;Esta monitorización comprende normalmente una prueba que nos devolverá el estado del servicio. Guardando el resultado de cada prueba en una BD podemos calcular la disponibilidad de un servicio. Si realizamos 100 pruebas y el servicio responde 97 veces, someramente, está disponible un 97%.&lt;/p&gt; &lt;p&gt;La disponibilidad frecuentemente se expresa con la media de tiempo que durante un año el servicio no ha estado disponible.&lt;/p&gt; &lt;p&gt;Para incrementar la disponibilidad de un servicio podemos intentar:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Aumentar el tiempo medio entre fallos: Desafortunadamente, un fallo de servicio es causado frecuentemente por un error del propio servicio o del sistema operativo. A menos que seamos los autores del código, poco podremos cambiar para solucionar el error y así aumentar el tiempo entre fallos.  &lt;li&gt;Disminuir el tiempo necesario para reiniciar el servicio: Si hemos de reiniciar el servicio manualmente cada vez que falle, el servicio no será funcional a menos que lo reiniciemos. Para aumentar la disponibilidad, podemos escribir un script que compruebe su estado y reinicie, en su caso, el servicio automáticamente, periódicamente.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Podemos usar scripts de Shell (&lt;a href="http://msdn.microsoft.com/en-us/library/ms810435.aspx"&gt;sc.exe&lt;/a&gt; y &lt;a href="http://technet.microsoft.com/en-us/library/bb490949.aspx"&gt;net.exe&lt;/a&gt;), &lt;a href="http://www.microsoft.com/technet/scriptcenter/guide/sas_wsh_qlcc.mspx?mfr=true"&gt;WSH&lt;/a&gt;, &lt;a href="http://www.microsoft.com/technet/scriptcenter/guide/sas_wmi_dieu.mspx?mfr=true"&gt;WMI&lt;/a&gt; (&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=9ef05cbd-c1c5-41e7-9da8-212c414a7ab0&amp;amp;displaylang=en"&gt;Scriptomatic utility&lt;/a&gt;) y &lt;a href="http://www.microsoft.com/technet/scriptcenter/tools/admatic.mspx"&gt;ADSI&lt;/a&gt; (&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=39044e17-2490-487d-9a92-ce5dcd311228&amp;amp;displaylang=en"&gt;ADSI Scriptomatic&lt;/a&gt;).&lt;/p&gt; &lt;p&gt;Informar sobre la disponibilidad de los servicios puede hacerse mediante:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Informar sobre el estado del servicio.  &lt;li&gt;Informar de los servicios que se encuentran en un estado específico (e.g. en ejecución o detenidos)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;Informar del estado de todos los servicios.&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt; &lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;"&gt; &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;Este script sirve para comprobar el estado de todos los servicios&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;en un archivo de texto&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;(c) Juansa 28-11-2008&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Const&lt;/span&gt; ForReading = 1, ForWriting = 2&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt; TabStop, NewLine&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   8:&lt;/span&gt; TabStop = Chr(9)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   9:&lt;/span&gt; NewLine = Chr(10)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  10:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; objFSO = CreateObject(&lt;span style="color:#006080;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  11:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; objFile = objFSO.OpenTextFile(&lt;span style="color:#006080;"&gt;&amp;quot;C:\scripts\Estado_Servicios.txt&amp;quot;&lt;/span&gt;, ForWriting, &lt;span style="color:#0000ff;"&gt;True&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  12:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  13:&lt;/span&gt; StrComputer = &lt;span style="color:#006080;"&gt;&amp;quot;.&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  14:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; objWMIService = GetObject(&lt;span style="color:#006080;"&gt;&amp;quot;winmgmts:&amp;quot;&lt;/span&gt; &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;{impersonationLevel=Impersonate}!\\&amp;quot;&lt;/span&gt; &amp;amp; strComputer &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;\root\cimv2&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  15:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; colServices = objWMIService.ExecQuery(&lt;span style="color:#006080;"&gt;&amp;quot;SELECT * FROM Win32_Service&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  16:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;For&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;each&lt;/span&gt; objService &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; colServices&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  17:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;escribimos el nombre y el estado del servicio&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  18:&lt;/span&gt; objFile.WriteLine &lt;span style="color:#0000ff;"&gt;Date&lt;/span&gt; &amp;amp; TabStop &amp;amp; objService.DisplayName &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  19:&lt;/span&gt; objFile.WriteLine objService.State&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  20:&lt;/span&gt;  &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  21:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Next&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  22:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  23:&lt;/span&gt; Wscript.Echo  &lt;span style="color:#006080;"&gt;&amp;quot;FINALIZADO&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;pre class="csharpcode"&gt;El resultado:&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/photos/juansa/images/121821/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="360" alt="estadodelosservicios" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServicios_5F00_97CF/estadodelosservicios_5F00_3.jpg" width="297" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;* &lt;em&gt;Podemos incluirlo en una tarea programada y realizar la comprobación diaria o a horas determinadas. Se puede incluir además de la fecha, la hora en la que se realiza la comprobación en el script.&lt;/em&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;em&gt;Creamos una constante de lectura y escritura&lt;/em&gt; 
&lt;li&gt;&lt;em&gt;creamos las variables de Tab y Nueva linea&lt;/em&gt; 
&lt;li&gt;&lt;em&gt;Asignamos los valores de Tab y NewLine&lt;/em&gt; 
&lt;li&gt;&lt;em&gt;Creamos el objeto del archivo&lt;/em&gt; 
&lt;li&gt;&lt;em&gt;Abrimos el archivo, indicando su ruta y nombre, para escritura.&lt;/em&gt; 
&lt;li&gt;&lt;em&gt;variable del equipo, el punto indica equipo local.&lt;/em&gt; 
&lt;li&gt;&lt;em&gt;conectamos con el espacio de nombres WMI &lt;strong&gt;\root\cimv2&lt;/strong&gt; con GetObject, estableciendo el nivel de impersonation en &lt;strong&gt;impersonate&lt;/strong&gt;.&lt;/em&gt; 
&lt;li&gt;&lt;em&gt;Usamos el método &lt;strong&gt;ExecQuery &lt;/strong&gt;para conectar con la clase &lt;strong&gt;Win32_Service&lt;/strong&gt;, lo que nos devolverá una colección que consiste en todos los servicios instalados en el equipo.&lt;/em&gt; 
&lt;li&gt;&lt;em&gt;Para cada servicio devuelto en la colección, se escribe una nueva línea para la fecha actual y el nombre del servicio y una nueva línea para su estado, en el archivo abierto.&lt;/em&gt; 
&lt;li&gt;&lt;em&gt;Lanzamos un mensaje al acabar. -Podemos eliminarlo si el script no requiere de nuestra presencia.&lt;/em&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Informar sólo de aquéllos servicios que no están en ejecución&lt;/strong&gt;&lt;/p&gt;
&lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;"&gt;
&lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;Este script sirve para listar los servicios en estado detenido en un archivo de texto&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;(c) Juansa 28-11-2008&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Const&lt;/span&gt; ForReading = 1, ForWriting = 2&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt; TabStop, NewLine&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt; TabStop = Chr(9)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   8:&lt;/span&gt; NewLine = Chr(10)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   9:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; objFSO = CreateObject(&lt;span style="color:#006080;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  10:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; objFile = objFSO.OpenTextFile(&lt;span style="color:#006080;"&gt;&amp;quot;C:\scripts\Servicios_detenidos.txt&amp;quot;&lt;/span&gt;, ForWriting, &lt;span style="color:#0000ff;"&gt;True&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  11:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  12:&lt;/span&gt; StrComputer = &lt;span style="color:#006080;"&gt;&amp;quot;.&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  13:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; objWMIService = GetObject(&lt;span style="color:#006080;"&gt;&amp;quot;winmgmts:&amp;quot;&lt;/span&gt; &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;{impersonationLevel=Impersonate}!\\&amp;quot;&lt;/span&gt; &amp;amp; strComputer &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;\root\cimv2&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  14:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; colserviciosdetenidos = objWMIService.ExecQuery(&lt;span style="color:#006080;"&gt;&amp;quot;SELECT DisplayName, State FROM Win32_Service WHERE State &amp;lt;&amp;gt; &amp;#39;Running&amp;#39;&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  15:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;escribimos el título en el archivo&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  16:&lt;/span&gt; objFile.WriteLine &lt;span style="color:#006080;"&gt;&amp;quot;LISTADO DE SERVICIOS QUE NO SE ESTÁN EJECUTANDO EN FECHA: &amp;quot;&lt;/span&gt; &amp;amp; &lt;span style="color:#0000ff;"&gt;Date&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  17:&lt;/span&gt; objFile.WriteLine&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  18:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;For&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;each&lt;/span&gt; objService &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; colserviciosdetenidos&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  19:&lt;/span&gt; &lt;span style="color:#008000;"&gt;&amp;#39;escribimos el nombre y el estado del servicio&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  20:&lt;/span&gt; objFile.WriteLine objService.DisplayName &amp;amp; &lt;span style="color:#006080;"&gt;&amp;quot;: &amp;quot;&lt;/span&gt; &amp;amp; objService.State&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  21:&lt;/span&gt;  &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  22:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Next&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  23:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  24:&lt;/span&gt; Wscript.Echo  &lt;span style="color:#006080;"&gt;&amp;quot;FINALIZADO&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;* &lt;/strong&gt;&lt;em&gt;El cambio es evidente, hemos modificado la consulta (SELECT) para que sólo devuelva los servicios que no tengan un estado Running.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;&lt;a href="http://geeks.ms/photos/juansa/images/121822/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="309" alt="estado_detenidos" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServicios_5F00_97CF/estado_5F00_detenidos_5F00_3.jpg" width="338" border="0" /&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Crear una tarea en Windows para que se ejecute el script diariamente&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Desde Inicio, todos los programas, accesorios, herramientas del sistema, programador de tareas.&lt;br /&gt;&lt;a href="http://geeks.ms/photos/juansa/images/121841/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="153" alt="tarea01" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServicios_5F00_97CF/tarea01_5F00_3.jpg" width="244" border="0" /&gt;&lt;/a&gt; 
&lt;li&gt;Desde la ventana del programador, doble clic en Agregar tarea programada y seguiremos el asistente, primer paso, pulsar siguiente.&lt;br /&gt;&lt;a href="http://geeks.ms/photos/juansa/images/121842/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="205" alt="tarea02" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServicios_5F00_97CF/tarea02_5F00_3.jpg" width="244" border="0" /&gt;&lt;/a&gt; 
&lt;li&gt;Siguiente ventana, pulsaremos en Examinar para ir donde tenemos nuestro script, lo elegiremos y pulsaremos en Abrir del correspondiente cuadro de diálogo.&lt;br /&gt;&lt;a href="http://geeks.ms/photos/juansa/images/121844/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="108" alt="tarea03" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServicios_5F00_97CF/tarea03_5F00_3.jpg" width="244" border="0" /&gt;&lt;/a&gt; 
&lt;li&gt;Elegimos un nombre descriptivo para la tarea, y marcamos la secuencia deseada, en este caso diariamente.&lt;br /&gt;&lt;a href="http://geeks.ms/photos/juansa/images/121845/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="165" alt="tarea04" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServicios_5F00_97CF/tarea04_5F00_3.jpg" width="244" border="0" /&gt;&lt;/a&gt; 
&lt;li&gt;Hora de inicio, frecuencia de días y día de inicio, siguiente.&lt;br /&gt;&lt;a href="http://geeks.ms/photos/juansa/images/121846/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="166" alt="tarea05" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServicios_5F00_97CF/tarea05_5F00_3.jpg" width="244" border="0" /&gt;&lt;/a&gt; 
&lt;li&gt;Datos de la cuenta con la que se ejecutará la tarea. Ojo, si la cuenta no tiene suficientes privilegios no ejecutará la tarea o incluso el script.&lt;br /&gt;&lt;a href="http://geeks.ms/photos/juansa/images/121847/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="166" alt="tarea06" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServicios_5F00_97CF/tarea06_5F00_3.jpg" width="244" border="0" /&gt;&lt;/a&gt; 
&lt;li&gt;Si deseamos configurar alguna opción avanzada o sólo comprobarlas, marcaremos la casilla de verificación y pulsamos en Finalizar.&lt;br /&gt;&lt;a href="http://geeks.ms/photos/juansa/images/121848/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="166" alt="tarea07" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServicios_5F00_97CF/tarea07_5F00_3.jpg" width="244" border="0" /&gt;&lt;/a&gt; 
&lt;li&gt;Avanzadas, ventanas Tarea, Programación, Configuración y Seguridad.&lt;br /&gt;&lt;a href="http://geeks.ms/photos/juansa/images/121849/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="183" alt="tarea08" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServicios_5F00_97CF/tarea08_5F00_3.jpg" width="187" border="0" /&gt;&lt;/a&gt; &lt;a href="http://geeks.ms/photos/juansa/images/121850/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="185" alt="tarea09" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServicios_5F00_97CF/tarea09_5F00_3.jpg" width="190" border="0" /&gt;&lt;/a&gt; &lt;a href="http://geeks.ms/photos/juansa/images/121851/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="184" alt="tarea10" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServicios_5F00_97CF/tarea10_5F00_3.jpg" width="189" border="0" /&gt;&lt;/a&gt; &lt;a href="http://geeks.ms/photos/juansa/images/121852/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="186" alt="tarea11" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServicios_5F00_97CF/tarea11_5F00_3.jpg" width="190" border="0" /&gt;&lt;/a&gt; 
&lt;li&gt;La tarea se ha añadido al programador de tareas.&lt;br /&gt;&lt;a href="http://geeks.ms/photos/juansa/images/121853/original.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="65" alt="tarea12" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.MonitorizarlosServicios_5F00_97CF/tarea12_5F00_3.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1655311" 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/Scripting/default.aspx">Scripting</category></item><item><title>Script Apagado equipos remotos</title><link>http://msmvps.com/blogs/juansa/archive/2008/10/11/script-apagado-equipos-remotos.aspx</link><pubDate>Sat, 11 Oct 2008 17:06:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1650611</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=1650611</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2008/10/11/script-apagado-equipos-remotos.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;span class="rem"&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;&amp;#39;Este script sirve para apagar una lista de equipos remotos&lt;/span&gt;
&lt;span class="rem"&gt;&amp;#39;listados en un archivo de texto en grupos de dos lineas&lt;/span&gt;
&lt;span class="rem"&gt;&amp;#39;primera linea el nombre del equipo&lt;/span&gt;
&lt;span class="rem"&gt;&amp;#39;segunda linea la ip del equipo&lt;/span&gt;

&lt;span class="rem"&gt;&amp;#39;(c) Juansa 9-10-2008&lt;/span&gt;


&lt;span class="kwrd"&gt;Function&lt;/span&gt; fl_responde_al_ping (StrEquipo)

&lt;span class="rem"&gt;&amp;#39;aquí intentaremos comprobar que el equipo está conectado&lt;/span&gt;
&lt;span class="rem"&gt;&amp;#39;mediante un ping a su IP.&lt;/span&gt;

strComputer = &lt;span class="str"&gt;&amp;quot;.&amp;quot;&lt;/span&gt;
&lt;span class="kwrd"&gt;Set&lt;/span&gt; objWMIService = GetObject(&lt;span class="str"&gt;&amp;quot;winmgmts:&amp;quot;&lt;/span&gt; _
    &amp;amp; &lt;span class="str"&gt;&amp;quot;{impersonationLevel=impersonate}!\\&amp;quot;&lt;/span&gt; &amp;amp; strComputer &amp;amp; &lt;span class="str"&gt;&amp;quot;\root\cimv2&amp;quot;&lt;/span&gt;)
&lt;span class="kwrd"&gt;Set&lt;/span&gt; colPingedComputers = objWMIService.ExecQuery _
    (&lt;span class="str"&gt;&amp;quot;Select * from Win32_PingStatus Where Address = &amp;#39;&amp;quot;&lt;/span&gt; &amp;amp; StrEquipo &amp;amp; &lt;span class="str"&gt;&amp;quot;&amp;#39;&amp;quot;&lt;/span&gt;)

&lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; objComputer &lt;span class="kwrd"&gt;in&lt;/span&gt; colPingedComputers
    &lt;span class="kwrd"&gt;If&lt;/span&gt; objComputer.StatusCode = 0 &lt;span class="kwrd"&gt;Then&lt;/span&gt;
        
    fl_responde_al_ping = &lt;span class="kwrd"&gt;True&lt;/span&gt;
    &lt;span class="kwrd"&gt;Else&lt;/span&gt;
        
    fl_responde_al_ping = &lt;span class="kwrd"&gt;false&lt;/span&gt;
   &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
&lt;span class="kwrd"&gt;Next&lt;/span&gt;

&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;

&lt;span class="rem"&gt;&amp;#39;cuerpo del script&lt;/span&gt;

&lt;span class="kwrd"&gt;Const&lt;/span&gt; ForReading = 1, ForWriting = 2
&lt;span class="kwrd"&gt;Dim&lt;/span&gt; TabStop, NewLine
TabStop = Chr(9)
NewLine = Chr(10)


&lt;span class="kwrd"&gt;Set&lt;/span&gt; objFSO = CreateObject(&lt;span class="str"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;)
&lt;span class="kwrd"&gt;Set&lt;/span&gt; objFSO2 = CreateObject(&lt;span class="str"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;)
&lt;span class="kwrd"&gt;Set&lt;/span&gt; objFile = objFSO.OpenTextFile(&lt;span class="str"&gt;&amp;quot;C:\scripts\juansa.txt&amp;quot;&lt;/span&gt;, ForReading)
&lt;span class="kwrd"&gt;Set&lt;/span&gt; objFile2 = objFSO2.OpenTextFile(&lt;span class="str"&gt;&amp;quot;C:\scripts\LogApagados.txt&amp;quot;&lt;/span&gt;, ForWriting, &lt;span class="kwrd"&gt;True&lt;/span&gt;)
&lt;span class="kwrd"&gt;Do&lt;/span&gt; &lt;span class="kwrd"&gt;Until&lt;/span&gt; objFile.AtEndOfStream
StrEquipo = objFile.ReadLine
StrIP = objFile.ReadLine

&lt;span class="kwrd"&gt;If&lt;/span&gt; fl_responde_al_ping(StrIP) &lt;span class="kwrd"&gt;then&lt;/span&gt;
    Wscript.Echo StrEquipo &amp;amp; &lt;span class="str"&gt;&amp;quot; responde. Se intentará realizar el apagado.&amp;quot;&lt;/span&gt;
    objFile2.WriteLine &lt;span class="kwrd"&gt;Date&lt;/span&gt; &amp;amp; TabStop &amp;amp; StrIP &amp;amp; TabStop &amp;amp; StrEquipo &amp;amp; TabStop &amp;amp; &lt;span class="str"&gt;&amp;quot;APAGADO&amp;quot;&lt;/span&gt;

    &lt;span class="rem"&gt;&amp;#39;establecemos control de errores&lt;/span&gt;
    &lt;span class="kwrd"&gt;On&lt;/span&gt; &lt;span class="kwrd"&gt;Error&lt;/span&gt; &lt;span class="kwrd"&gt;Resume&lt;/span&gt; &lt;span class="kwrd"&gt;Next&lt;/span&gt;

     &lt;span class="kwrd"&gt;Set&lt;/span&gt; objWMIService = GetObject(&lt;span class="str"&gt;&amp;quot;winmgmts:&amp;quot;&lt;/span&gt; _
&amp;amp; &lt;span class="str"&gt;&amp;quot;{impersonationLevel=impersonate,(Shutdown)}!\\&amp;quot;&lt;/span&gt; &amp;amp; StrEquipo &amp;amp; &lt;span class="str"&gt;&amp;quot;\root\cimv2&amp;quot;&lt;/span&gt;)
    &lt;span class="kwrd"&gt;Set&lt;/span&gt; colOperatingSystems = objWMIService.ExecQuery _
(&lt;span class="str"&gt;&amp;quot;Select * from Win32_OperatingSystem&amp;quot;&lt;/span&gt;)
    &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; objOperatingSystem &lt;span class="kwrd"&gt;in&lt;/span&gt; colOperatingSystems
        ObjOperatingSystem.Win32Shutdown(1)
    &lt;span class="kwrd"&gt;Next&lt;/span&gt;
    &lt;span class="kwrd"&gt;if&lt;/span&gt; Err.Number &amp;lt;&amp;gt; 0 &lt;span class="kwrd"&gt;Then&lt;/span&gt;

    &lt;span class="rem"&gt;&amp;#39;mostramos el error o lo guardamos en el log&lt;/span&gt;
    WScript.Echo vbCrLf &amp;amp; vbCrLf &amp;amp; _
                     Err.Number &amp;amp; &lt;span class="str"&gt;&amp;quot;: &amp;quot;&lt;/span&gt; &amp;amp; Err.Description
    objFile2.WriteLine &lt;span class="kwrd"&gt;Date&lt;/span&gt; &amp;amp; TabStop &amp;amp; StrIP &amp;amp; StrEquipo &amp;amp; TabStop &amp;amp; &lt;span class="str"&gt;&amp;quot;Hay un Error!&amp;quot;&lt;/span&gt; &amp;amp; Err.Number &amp;amp; &lt;span class="str"&gt;&amp;quot;: &amp;quot;&lt;/span&gt; &amp;amp; Err.Description

    &lt;span class="rem"&gt;&amp;#39;vacíamos el objeto Err&lt;/span&gt;
    Err.Clear&lt;/pre&gt;&lt;pre class="csharpcode"&gt;    &lt;span class="kwrd"&gt;end&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; 

&lt;span class="kwrd"&gt;else&lt;/span&gt;
    Wscript.Echo StrEquipo &amp;amp; &lt;span class="str"&gt;&amp;quot; NO responde. Se saltará éste equipo del apagado.&amp;quot;&lt;/span&gt;
    objFile2.WriteLine &lt;span class="kwrd"&gt;Date&lt;/span&gt; &amp;amp; TabStop &amp;amp; StrIP &amp;amp; TabStop &amp;amp; StrEquipo &amp;amp; TabStop &amp;amp; &lt;span class="str"&gt;&amp;quot; NO APAGADO&amp;quot;&lt;/span&gt;
&lt;span class="kwrd"&gt;end&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt;
&lt;span class="kwrd"&gt;Loop&lt;/span&gt;
objFile2.Close
objFile.Close
Wscript.Echo &lt;span class="str"&gt;&amp;quot;Puedes comprobar el Log en C:\scripts\LogApagados.txt&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="csharpcode"&gt;&lt;span class="str"&gt;----------------&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Lo que tienen los archivos: &lt;/p&gt;
&lt;p&gt;C:\scripts\juansa.txt &lt;/p&gt;
&lt;p&gt;juansa&lt;br /&gt;192.168.0.10&lt;br /&gt;ONO&lt;br /&gt;192.168.0.1&lt;br /&gt;Noexiste&lt;br /&gt;192.168.0.11 &lt;/p&gt;
&lt;p&gt;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;C:\scripts\LogApagados &lt;/p&gt;
&lt;p&gt;09/10/2008&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.0.10&amp;nbsp;&amp;nbsp;&amp;nbsp; juansa&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APAGADO&lt;br /&gt;09/10/2008&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.0.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ONO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APAGADO&lt;br /&gt;09/10/2008&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.0.11&amp;nbsp;&amp;nbsp;&amp;nbsp; Noexiste&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NO APAGADO&lt;/p&gt;
&lt;p&gt;Este script funciona si el que lo lanza es administrador, de hecho está pensado para lanzarlo un administrador, pero mi amigo Fernando dice que puede usarse &lt;a title="http://urpiano.wordpress.com/2007/04/26/vbscript-como-conectar-a-wmi-con-credenciales-alternativas/" href="http://urpiano.wordpress.com/2007/04/26/vbscript-como-conectar-a-wmi-con-credenciales-alternativas/"&gt;http://urpiano.wordpress.com/2007/04/26/vbscript-como-conectar-a-wmi-con-credenciales-alternativas/&lt;/a&gt; para redondearlo.&lt;/p&gt;
&lt;p&gt;Por supuesto es mejorable, pero lo publico por sí sirve de ejemplo y ayuda.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1650611" width="1" height="1"&gt;</description><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/Scripting/default.aspx">Scripting</category></item><item><title>Unos scripts...</title><link>http://msmvps.com/blogs/juansa/archive/2007/03/01/unos-scripts.aspx</link><pubDate>Thu, 01 Mar 2007 10:32:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:628946</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=628946</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2007/03/01/unos-scripts.aspx#comments</comments><description>&lt;P&gt;Logoff.vbs&lt;/P&gt;
&lt;P class=CodeBlock&gt;set WshShell = CreateObject("WScript.Shell")&lt;BR&gt;WshShell.SendKeys "^{ESC}ul{ENTER}"&lt;/P&gt;
&lt;P&gt;Restart.vbs&lt;/P&gt;
&lt;P class=CodeBlock&gt;set WshShell = CreateObject("WScript.Shell")&lt;BR&gt;WshShell.SendKeys "^{ESC}ur{ENTER}"&lt;/P&gt;
&lt;P&gt;Shutdown.vbs&lt;/P&gt;
&lt;P class=CodeBlock&gt;set WshShell = CreateObject("WScript.Shell")&lt;BR&gt;WshShell.SendKeys "^{ESC}uls{ENTER}"&lt;/P&gt;
&lt;P&gt;Standby.vbs&lt;/P&gt;
&lt;P class=CodeBlock&gt;set WshShell = CreateObject("WScript.Shell")&lt;BR&gt;WshShell.SendKeys "^{ESC}ulss{ENTER}"&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=628946" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Scripting/default.aspx">Scripting</category></item><item><title>Listar las impresoras a un archivo</title><link>http://msmvps.com/blogs/juansa/archive/2006/11/02/Listar-las-impresoras-a-un-archivo.aspx</link><pubDate>Thu, 02 Nov 2006 18:47:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:239663</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=239663</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2006/11/02/Listar-las-impresoras-a-un-archivo.aspx#comments</comments><description>&lt;p&gt;&amp;#39;Filename:&amp;nbsp;listprinters.vbs&lt;br /&gt;&amp;#39;Revisi&amp;oacute;n:&amp;nbsp;v1.0&lt;br /&gt;&amp;#39;Author:&amp;nbsp;Juansa&lt;br /&gt;&amp;#39;&lt;br /&gt;&amp;#39;Fecha:&amp;nbsp;&amp;nbsp;02/11/2006&lt;br /&gt;&amp;#39;Revisado:&amp;nbsp;&lt;br /&gt;&amp;#39;Sintaxis:&amp;nbsp;listprinters.vbs pathtolist&lt;/p&gt;&lt;p&gt;&amp;#39;pathtolist = ruta y archivo donde ir&amp;aacute;n los datos&lt;/p&gt;&lt;p&gt;On error Resume Next&lt;/p&gt;&lt;p&gt;Const ForAppending = 8&lt;/p&gt;&lt;p&gt;&amp;#39;***Comprobamos argumentos***&lt;br /&gt;If WScript.Arguments.count &amp;gt; 0 Then&lt;br /&gt;&amp;nbsp;ArchivoSalida = WScript.Arguments.item(0)&lt;br /&gt;&amp;nbsp;&amp;nbsp; Else&lt;br /&gt;&amp;nbsp;ArchivoSalida = InputBox(&amp;quot;Se necesita un nombre de archivo para la lista a generar&amp;quot;, &amp;quot;Listado de impresoras&amp;quot;)&lt;br /&gt;End If&lt;/p&gt;&lt;p&gt;&amp;#39;***Crear el archivo***&lt;/p&gt;&lt;p&gt;Set objFSO = CreateObject(&amp;quot;Scripting.FileSystemObject&amp;quot;)&lt;br /&gt;Set objTextFile = objFSO.OpenTextFile (ArchivoSalida, ForAppending, True)&lt;/p&gt;&lt;p&gt;&amp;#39;******&lt;/p&gt;&lt;p&gt;strComputer = &amp;quot;.&amp;quot;&lt;br /&gt;Set objWMIService = GetObject(&amp;quot;winmgmts:&amp;quot; _&lt;br /&gt;&amp;amp; &amp;quot;{impersonationLevel=impersonate}!\\&amp;quot; &amp;amp; strComputer &amp;amp; &amp;quot;\root\cimv2&amp;quot;)&lt;br /&gt;Set colInstalledPrinters = objWMIService.ExecQuery _&lt;br /&gt;(&amp;quot;Select * from Win32_PrinterDriver&amp;quot;)&lt;br /&gt;For each objPrinter in colInstalledPrinters&lt;br /&gt;objTextFile.WriteLine(&amp;quot;Archivo de configuraci&amp;oacute;n: &amp;quot; &amp;amp; objPrinter.ConfigFile)&lt;br /&gt;objTextFile.WriteLine(&amp;quot;Fecha del archivo: &amp;quot; &amp;amp; objPrinter.DataFile)&lt;br /&gt;objTextFile.WriteLine(&amp;quot;Descripci&amp;oacute;n: &amp;quot; &amp;amp; objPrinter.Description)&lt;br /&gt;objTextFile.WriteLine(&amp;quot;Ruta del controlador: &amp;quot; &amp;amp; objPrinter.DriverPath)&lt;br /&gt;objTextFile.WriteLine(&amp;quot;Ruta del archivo: &amp;quot; &amp;amp; objPrinter.FilePath)&lt;br /&gt;objTextFile.WriteLine(&amp;quot;ARchivo de ayuda: &amp;quot; &amp;amp; objPrinter.HelpFile)&lt;br /&gt;objTextFile.WriteLine(&amp;quot;Nombre INF: &amp;quot; &amp;amp; objPrinter.InfName)&lt;br /&gt;objTextFile.WriteLine(&amp;quot;Nombre del monitor: &amp;quot; &amp;amp; objPrinter.MonitorName)&lt;br /&gt;objTextFile.WriteLine(&amp;quot;Nombre: &amp;quot; &amp;amp; objPrinter.Name)&lt;br /&gt;objTextFile.WriteLine(&amp;quot;OEMUrl: &amp;quot; &amp;amp; objPrinter.OEMUrl)&lt;br /&gt;objTextFile.WriteLine(&amp;quot;Plataforma compatible: &amp;quot; &amp;amp; objPrinter.SupportedPlatform)&lt;br /&gt;objTextFile.WriteLine(&amp;quot;Versi&amp;oacute;n: &amp;quot; &amp;amp; objPrinter.Version)&lt;br /&gt;objTextFile.WriteLine(&amp;quot;&amp;quot;)&lt;br /&gt;Next&lt;br /&gt;objTextFile.Close &lt;br /&gt;set ObjTextFile = Nothing &lt;br /&gt;wscript.Echo &amp;quot;Hecho!!!&amp;quot;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=239663" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Scripting/default.aspx">Scripting</category></item><item><title>Como asignar los scripts con directivas</title><link>http://msmvps.com/blogs/juansa/archive/2006/08/25/109614.aspx</link><pubDate>Fri, 25 Aug 2006 18:19:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:109614</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=109614</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2006/08/25/109614.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Arial&gt;Para implementar un script, mediante una directiva y añadirlo al&amp;nbsp;elemento apropiado de la plantilla de la propia directiva. Esto es, para que el script se ejecute durante el inicio, apagado, inicio de sesión o cierre de sesión:&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;Editamos la directiva&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;Desde el editor, navegamos por el árbol de la consola a la &lt;STRONG&gt;Configuración de usuario/configuración de windows/secuencia de comandos(inicio de sesión/cierre de sesión)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;En el panel de detalles, doble-clic en Inicio de sesión&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;En el cuadro de diálogo de las propiedades de inicio de sesión, clic &lt;STRONG&gt;Agregar&lt;/STRONG&gt;.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;En el cuadro de diálogo de Agregar, configuraremos los valores que queremos usar y pulsamos &lt;STRONG&gt;Aceptar: &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;&lt;STRONG&gt;Nombre del script&lt;/STRONG&gt;: Escribiremos la ruta al archivo de comandos o pulsaremos en &lt;STRONG&gt;examinar&lt;/STRONG&gt; para ubicarlo en el recurso compartido &lt;STRONG&gt;NETLOGON&lt;/STRONG&gt; del &lt;STRONG&gt;controlador de dominio&lt;/STRONG&gt;.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;&lt;STRONG&gt;Parámetros del script&lt;/STRONG&gt;: Escribiremos cualquier parámetro que deseamos utilizar de la misma forma que los escribiríamos desde la línea de comandos.&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;Desde las &lt;STRONG&gt;propiedades&lt;/STRONG&gt; de Inicio de sesión (clic derecho) podemos configurar:&lt;/FONT&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;Se nos muestra una caja con una lista de todos los scripts que están actualmente asignados en la directiva seleccionada. Si asignamos múltiples scripts, se procesan en el orden que se especificamos. Para mover un script en la lista, usaremos los botones &lt;STRONG&gt;Arriba&lt;/STRONG&gt; y &lt;STRONG&gt;Abajo&lt;/STRONG&gt;.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;&lt;STRONG&gt;Agregar&lt;/STRONG&gt;: pulsaremos agregar para especificar scripts adicionales que deseamos utilizar.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;&lt;STRONG&gt;Modificar&lt;/STRONG&gt;: pulsaremos editar para modificar la información del script, nombre o parámetros, NO el contenido del script.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;&lt;STRONG&gt;Quitar&lt;/STRONG&gt;: Este botón es para eliminar los scripts seleccionados de la Lista.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;&lt;STRONG&gt;Mostrar archivos&lt;/STRONG&gt;: Se nos mostrará los scripts que están almacenados en la directiva seleccionada.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/OL&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;STRONG&gt;Nota&lt;/STRONG&gt;: Los archivos de comandos (scripts) se ejecutan en un contexto de cuenta de usuario y no en el de cuenta de administrador.&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=109614" width="1" height="1"&gt;</description><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/Scripting/default.aspx">Scripting</category></item><item><title>Asignar scripts con directivas de grupo</title><link>http://msmvps.com/blogs/juansa/archive/2006/08/24/109302.aspx</link><pubDate>Thu, 24 Aug 2006 14:45:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:109302</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=109302</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2006/08/24/109302.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Arial&gt;Podemos utilizar las directivas para implantar scripts a los usuarios y equipos. Un script es un archivo de lotes o un vbs (Visual Basic Script) que puede ejecutar código o llevar a cabo tareas de administración. Podemos usar los valores de script de las directivas para automatizar el proceso de ejecución de scripts.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;Hay valores de script bajo ambas configuraciones, de equipo y de usuario, de la directiva. Podemos usar una directiva para ejecutar un script cuando se inicia o&amp;nbsp;apaga un equipo y cuando un usuario inicia o cierra sesión. Como con todos los valores de directiva podemos configurar el script en la directiva una vez y Windows Server 2003 aplicarlo e implementarlo continuamente por toda tu red.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;¿Cuales son los valores de script de directiva?&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;Estos valores podemos usarlos para centralizar la configuración de los scripts y ejecutarlos en las situaciones mencionadas. Podemos especificar cualquier script que funcione en Windows Server 2003, archivo de lotes, ejecutables y cualesquiera script compatible por Windows Script Host (WSH).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;Para ayudarnos a administrar y configurar el entorno de los usuarios, podemos:&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;Ejecutar scripts que lleven a cabo tareas que no podemos hacer por medio de otros valores de directiva. Por ejemplo, entorno de usuario con conexiones de red, conexiones de impresoras, accesos directos a aplicaciones y documentos corporativos.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;Limpiar los escritorios cuando los usuarios cierran sesión o apagan el equipo. Podemos quitar conexiones que se hayan añadido con otros scripts de inicio y dejar el equipo en el mismo estado antes de que iniciase sesión el usuario.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;Ejecutar scripts ya existentes para gestión del entorno de usuarios hasta que configuremos otros valores de directiva que los replacen.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;STRONG&gt;Nota:&lt;/STRONG&gt; Desde &lt;STRONG&gt;usuarios y equipos de Active Directory&lt;/STRONG&gt;, podemos asignar scripts de inicio de sesión individualmente a cuentas de usuario en el cuadro de diálogo de propiedades para cada cuenta. Sin embargo, implantarlos con directivas es preferible para la ejecución de scripts, porque podemos administrarlos de forma centralizada, junto al inicio, apagado, y cierre de sesión.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;Centro de Scripts de Microsoft &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/technet/scriptcenter/default.mspx"&gt;&lt;FONT face=Arial&gt;http://www.microsoft.com/technet/scriptcenter/default.mspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=109302" width="1" height="1"&gt;</description><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/Scripting/default.aspx">Scripting</category></item><item><title>Mapear unidades de red según la pertenencia a grupo del usuario</title><link>http://msmvps.com/blogs/juansa/archive/2006/02/23/84606.aspx</link><pubDate>Thu, 23 Feb 2006 12:09:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:84606</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=84606</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2006/02/23/84606.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Arial&gt;Function fl_Es_Miembro(str_Grupo) &lt;BR&gt;'**************************************************************************&amp;shy;************************ &lt;BR&gt;' &lt;BR&gt;'Autor: Fernando Reyes &lt;BR&gt;' &lt;BR&gt;'Esta función tiene por finalidad encontrar la pertenencia a un determinado &lt;B&gt;grupo&lt;/B&gt; (que se recibe &lt;BR&gt;'como parámetro) de el usuario que lanza el &lt;B&gt;script&lt;/B&gt;. La devolución es booleana: en caso de que el &lt;BR&gt;'usuario pertenezca al &lt;B&gt;grupo&lt;/B&gt; devuelve True; en caso de no pertenencia devuelve False. &lt;BR&gt;' &lt;BR&gt;'**************************************************************************&amp;shy;************************ &lt;BR&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&amp;nbsp;Dim str_ADs_Path 'Cadena utilizada para generar la ruta ADSI del usuario &lt;BR&gt;&amp;nbsp;Dim obj_Usuario &amp;nbsp;'Objeto que se cargará con la información del usuario &lt;BR&gt;&amp;nbsp;Dim obj_Grupo &amp;nbsp; &amp;nbsp;'Objeto para cada cargar la información de un &lt;B&gt;grupo&lt;/B&gt; &lt;BR&gt;&amp;nbsp;Dim obj_Net &amp;nbsp; &amp;nbsp; &amp;nbsp;'Objeto Network del que partimos para obtener el objeto usuario &lt;BR&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&amp;nbsp;'Creamos el objeto Network &lt;BR&gt;&amp;nbsp;Set obj_Net = CreateObject("Wscript.Network") &lt;BR&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&amp;nbsp;'Montamos la ruta ADSI del usuario y creamos el objeto de usuario &lt;BR&gt;&amp;nbsp;str_ADs_Path = obj_Net.UserDomain &amp;amp; "/" &amp;amp; obj_Net.UserName &lt;BR&gt;&amp;nbsp;Set obj_User = GetObject("WinNT://" &amp;amp; str_ADs_Path &amp;amp; ",user") &lt;BR&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&amp;nbsp;'En este bucle vamos recorriendo uno a uno los grupos a los que pertenece el usuario &lt;BR&gt;&amp;nbsp;For Each obj_Grupo In obj_User.Groups &lt;BR&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&amp;nbsp; 'Si el &lt;B&gt;grupo&lt;/B&gt; coincide con el recibido como parámetro salimos de la función &lt;BR&gt;&amp;nbsp; 'devolviendo True &lt;BR&gt;&amp;nbsp; If StrComp(str_Grupo, obj_Grupo.Name, vbTextCompare) = 0 Then &lt;BR&gt;&amp;nbsp; &amp;nbsp;fl_Es_Miembro =True &lt;BR&gt;&amp;nbsp; &amp;nbsp;Exit Function &lt;BR&gt;&amp;nbsp; End If &lt;BR&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&amp;nbsp;Next &lt;BR&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&amp;nbsp;'Si hemos terminado el bucle, es porque no se ha encontrado el &lt;B&gt;grupo&lt;/B&gt; recibido entre &lt;BR&gt;&amp;nbsp;'aquellos a los que pertenece el usuario, por tanto la devolución de esta función &lt;BR&gt;&amp;nbsp;'será False &lt;BR&gt;&amp;nbsp;fl_Es_Miembro = False &lt;BR&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;End Function &lt;BR&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;'Ejemplo de cómo se utilizaría la función para montar una unidad "S: "a los usuarios del &lt;B&gt;grupo&lt;/B&gt; "Esclavos de Tercera" &lt;BR&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&amp;nbsp;If fl_Es_Miembro("Esclavos de Tercera")=True Then &lt;BR&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&amp;nbsp; 'creamos el objeto NetWork que utilizaremos para montar la unidad &lt;BR&gt;&amp;nbsp; Set obj_Net = CreateObject("Wscript.Network") &lt;BR&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&amp;nbsp; 'Mapeamos la unidad &lt;BR&gt;&amp;nbsp; obj_Net.MapNetworkDrive "s:", "\\servidor\carpeta_de_los_esclavos_de_tercera" &lt;BR&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&amp;nbsp;EnD If &lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=84606" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Scripting/default.aspx">Scripting</category></item><item><title>Listar Usuarios y grupos locales</title><link>http://msmvps.com/blogs/juansa/archive/2005/12/20/79528.aspx</link><pubDate>Tue, 20 Dec 2005 14:47:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:79528</guid><dc:creator>juansa</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=79528</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2005/12/20/79528.aspx#comments</comments><description>&lt;P&gt;&lt;STRONG&gt;&lt;FONT face=Arial&gt;Listar Usuarios y grupos locales&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;'Este script enumera los usuarios que pertenecen a cada &lt;BR&gt;'uno de los grupos locales de un equipo &lt;BR&gt;'© Fernando Reyes [MS MVP] - Abril de 2005 &lt;BR&gt;'Modified: Juansa [MS MVP Windows Server]&lt;BR&gt;'&lt;BR&gt;'Date: 11/04/2005&lt;BR&gt;'Revised: 15/12/2005&lt;BR&gt;'Sintaxis: UserGroupsLocal.vbs ficheroSalida&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;'Exigimos la declaración de variables &lt;BR&gt;&amp;nbsp;Option Explicit &lt;/FONT&gt;&lt;/P&gt;&lt;FONT face=Arial&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;Dim obj_Nombre_Usuario &lt;BR&gt;&amp;nbsp;Dim obj_Nombre_Grupo &lt;BR&gt;&amp;nbsp;Dim obj_Equipo &lt;BR&gt;&amp;nbsp;Dim obj_Grupo &lt;BR&gt;&amp;nbsp;Dim obj_Shell &lt;BR&gt;&amp;nbsp;Dim str_Equipo &lt;BR&gt;&amp;nbsp;Dim str_Nombre &lt;BR&gt;&amp;nbsp;Const ForReading = 1, ForWriting = 2, ForAppending = 8&lt;/P&gt;
&lt;P&gt;'Argumentos&lt;BR&gt;&amp;nbsp;If WScript.Arguments.count &amp;gt; 0 Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FicheroSalida = WScript.Arguments.item(0)&lt;BR&gt;&amp;nbsp;Else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FicheroSalida = InputBox("Nombre del fichero a crear", "Gestion de usuarios")&lt;BR&gt;&amp;nbsp;End If&lt;/P&gt;
&lt;P&gt;'Creación fichero salida&lt;BR&gt;&amp;nbsp;Set objFSO = CreateObject("Scripting.FileSystemObject")&lt;BR&gt;&amp;nbsp;Set objTextFile = objFSO.OpenTextFile (FicheroSalida, ForWriting, True)&lt;/P&gt;
&lt;P&gt;'Equipo local &lt;BR&gt;&amp;nbsp;str_Equipo = "." &lt;BR&gt;&amp;nbsp;Set obj_Shell = CreateObject("WScript.Shell") &lt;BR&gt;&amp;nbsp;str_Nombre = obj_Shell.ExpandEnvironmentStrings("%COMPUTERNAME%") &lt;/P&gt;
&lt;P&gt;'Creamos un objeto que contiene el equipo local &lt;BR&gt;&amp;nbsp;Set obj_Equipo = GetObject("WinNT://" &amp;amp; str_Equipo &amp;amp; ",Computer") &lt;/P&gt;
&lt;P&gt;'Mostramos el nombre del equipo &lt;BR&gt;&amp;nbsp;WScript.Echo "Equipo: " &amp;amp; str_Nombre &amp;amp; VBCrLf&lt;/P&gt;
&lt;P&gt;'Filtramos los objetos del equipo para obtener los grupos &lt;BR&gt;&amp;nbsp;obj_Equipo.Filter = Array("Group") &lt;/P&gt;
&lt;P&gt;'Recorremos cada grupo uno a uno &lt;BR&gt;&amp;nbsp;For Each obj_Nombre_Grupo In obj_Equipo &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Creamos un objeto que contiene al grupo actual &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set obj_Grupo = GetObject("WinNT://" &amp;amp; str_Equipo &amp;amp; "/" &amp;amp; obj_Nombre_Grupo.Name &amp;amp; ",Group") &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objTextFile.WriteLine("Nombre del grupo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : " &amp;amp; obj_Nombre_Grupo.Name) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objTextFile.WriteLine("&amp;nbsp; Descripción del grupo: " &amp;amp; obj_Nombre_Grupo.Name)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Filtramos los objetos del grupo para obtener los &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'usuarios miembros &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj_Grupo.members.Filter = Array("User") &lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Recorremos los usuarios de uno en uno &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each obj_Nombre_Usuario In obj_Grupo.members&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set M = obj_Nombre_Usuario &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objTextFile.WriteLine("&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " &amp;amp; obj_Nombre_Usuario.Name)&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next &lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;Next &lt;/P&gt;
&lt;P&gt;&amp;nbsp;WScript.Echo "Finalizado, vea el archivo creado!"&lt;BR&gt;'Terminamos el script limpiándonos el culito &lt;BR&gt;&amp;nbsp;Set obj_Nombre_Usuario = Nothing &lt;BR&gt;&amp;nbsp;Set obj_Nombre_Grupo = Nothing &lt;BR&gt;&amp;nbsp;Set obj_Equipo = Nothing &lt;BR&gt;&amp;nbsp;Set obj_Shell = Nothing&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=79528" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Scripting/default.aspx">Scripting</category></item><item><title>Obtener log con las sesiones contra Terminal Server </title><link>http://msmvps.com/blogs/juansa/archive/2005/12/20/79526.aspx</link><pubDate>Tue, 20 Dec 2005 14:46:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:79526</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=79526</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2005/12/20/79526.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Arial&gt;' Tomas Hidalgo (c) Abril 2005&lt;BR&gt;' Script para almacenar los accesos al Terminal Server.&lt;BR&gt;' Los datos se almacenan entre comillas y separados por comas en un fichero de texto.&lt;BR&gt;&amp;nbsp;Const ForAppending = 8&lt;BR&gt;&amp;nbsp;Set oShell = CreateObject("WScript.Shell")&lt;BR&gt;&amp;nbsp;Set objFSO = CreateObject("Scripting.FileSystemObject")&lt;BR&gt;'****************************************************************************&lt;BR&gt;'Comprobamos si existe el fichero de log&lt;BR&gt;&amp;nbsp;If objFSO.FileExists("C:\acceso.log") Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'No hacemos nada&lt;BR&gt;&amp;nbsp;Else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'El fichero no existe y lo creamos con la cabecera de datos&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objArchivo = objFSO.CreateTextFile("c:\acceso.log", true)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objArchivo.Write chr(34) &amp;amp; "Fecha" &amp;amp; chr(34) &amp;amp; ","&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objArchivo.Write chr(34) &amp;amp; "Hora" &amp;amp; chr(34) &amp;amp; ","&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objArchivo.Write chr(34) &amp;amp; "Equipo" &amp;amp; chr(34) &amp;amp; ","&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objArchivo.Write chr(34) &amp;amp; "Usuario" &amp;amp; chr(34) &amp;amp; ","&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objArchivo.Write chr(34) &amp;amp; "Tipo_Conexion" &amp;amp; chr(34) &amp;amp; ","&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objArchivo.Writeline&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objArchivo.close&lt;BR&gt;&amp;nbsp;End If&lt;BR&gt;'****************************************************************************&lt;BR&gt;'Para obtener la fecha del sistema&lt;BR&gt;&amp;nbsp;strComputer = "."&lt;BR&gt;&amp;nbsp;Set objWMIService = GetObject("winmgmts:" &amp;amp; "{impersonationLevel=impersonate}!\\" &amp;amp; strComputer &amp;amp; "\root\cimv2")&lt;BR&gt;&amp;nbsp;Set colItems = objWMIService.ExecQuery("Select * from Win32_UTCTime")&lt;BR&gt;&amp;nbsp;For Each objItem in colItems&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dia&amp;nbsp; = objItem.Day&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mes&amp;nbsp; = objItem.Month&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Anno = objItem.Year&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hora = objItem.Hour&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Minu = objItem.Minute&lt;BR&gt;&amp;nbsp;Next&lt;BR&gt;&amp;nbsp;strFecha = Anno &amp;amp; "/" &amp;amp; Mes &amp;amp; "/" &amp;amp; Dia&lt;BR&gt;&amp;nbsp;strReloj = Hora &amp;amp; ":" &amp;amp; Minu&lt;BR&gt;'****************************************************************************&lt;BR&gt;'Leemos los datos del cliente TS&lt;BR&gt;&amp;nbsp;strSesion&amp;nbsp; = oShell.ExpandEnvironmentStrings("%SESSIONNAME%")&lt;BR&gt;&amp;nbsp;strUsuario = oShell.ExpandEnvironmentStrings("%USERNAME%")&lt;BR&gt;&amp;nbsp;strMaquina = oShell.ExpandEnvironmentStrings("%CLIENTNAME%")&lt;BR&gt;'Comprobamos el tipo de conexion&lt;BR&gt;&amp;nbsp;If strSesion = "" Or LCase(strSesion) = "console" Then&lt;BR&gt;&amp;nbsp; strSesion = "Acceso por consola"&lt;BR&gt;&amp;nbsp;End If&lt;BR&gt;&amp;nbsp;If Left(strSesion,8) = "RDP-Tcp#" Then&lt;BR&gt;&amp;nbsp; strSesion = "Acceso por TS"&lt;BR&gt;&amp;nbsp;End If&lt;BR&gt;'Agregamos los datos al fichero&lt;BR&gt;&amp;nbsp;Set objArchivo = objFSO.OpenTextFile("c:\acceso.log", ForAppending, False)&lt;BR&gt;&amp;nbsp;objArchivo.Write chr(34) &amp;amp; strFecha&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp; chr(34) &amp;amp; ","&lt;BR&gt;&amp;nbsp;objArchivo.Write chr(34) &amp;amp; strReloj&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp; chr(34) &amp;amp; ","&lt;BR&gt;&amp;nbsp;objArchivo.Write chr(34) &amp;amp; strMaquina &amp;amp; chr(34) &amp;amp; ","&lt;BR&gt;&amp;nbsp;objArchivo.Write chr(34) &amp;amp; strUsuario&amp;nbsp; &amp;amp; chr(34) &amp;amp; ","&lt;BR&gt;&amp;nbsp;objArchivo.Write chr(34) &amp;amp; strSesion&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp; chr(34)&lt;BR&gt;&amp;nbsp;objArchivo.Writeline&lt;BR&gt;&amp;nbsp;objArchivo.close&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=79526" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Scripting/default.aspx">Scripting</category></item><item><title>Mapear unidades de usuario</title><link>http://msmvps.com/blogs/juansa/archive/2005/12/20/79527.aspx</link><pubDate>Tue, 20 Dec 2005 14:46:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:79527</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=79527</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2005/12/20/79527.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Arial&gt;'**********************************************&lt;BR&gt;Option Explicit&lt;BR&gt;Dim oNet, sUser, startTime&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;On Error Resume Next&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;'Objeto Red&lt;BR&gt;Set oNet = CreateObject("WScript.Network")&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;'Obtenemos el login de usuario. En Windows 9x, el usuario puede no estar todavía autentificado&lt;BR&gt;'cuando el script comienza a ejecutarse; En ese caso reitera cada 1/2 segundo&lt;BR&gt;&amp;nbsp;sUser = oNet.UserName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'En minúsculas&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&amp;nbsp;startTime = Now&lt;BR&gt;&amp;nbsp;Do While sUser = ""&lt;BR&gt;&amp;nbsp;&amp;nbsp; If DateDiff("s", startTime, Now) &amp;gt; 600 Then Wscript.Quit&lt;BR&gt;&amp;nbsp;&amp;nbsp; Wscript.Sleep 500&lt;BR&gt;&amp;nbsp;&amp;nbsp; sUser = oNet.UserName&lt;BR&gt;&amp;nbsp;Loop&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;'Mapeado de la unidad F particular de cada usuario&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&amp;nbsp;oNet.RemoveNetworkDrive "U:"&lt;BR&gt;&amp;nbsp;oNet.MapNetworkDrive "U:", "&lt;/FONT&gt;&lt;A&gt;&lt;FONT face=Arial&gt;\\servidor\usuarios\&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial&gt;" &amp;amp; sUser&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&amp;nbsp;oNet.RemoveNetworkDrive "X:"&lt;BR&gt;&amp;nbsp;oNet.MapNetworkDrive "X:", "&lt;/FONT&gt;&lt;A&gt;&lt;FONT face=Arial&gt;\\servidor\comunes\&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial&gt;" &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;'**********************************************&lt;BR&gt;&amp;nbsp;Toda la explicación en:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&amp;nbsp;&lt;/FONT&gt;&lt;a href="http://msmvps.com/quilez/archive/2005/02/04/34940.aspx"&gt;&lt;FONT face=Arial&gt;http://msmvps.com/quilez/archive/2005/02/04/34940.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=79527" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Scripting/default.aspx">Scripting</category></item></channel></rss>