Windows 7, Windows Server 2008 y SQL 2088 incluye la nueva consola Powershell, una consola de línea de comandos asociada con el leguaje script y que supera en potencia a nuestra habitual línea de comandos MS-DOS. Aunque en apariencia tal y como vemos en la imagen de abaja no haya más cambio que la interface. Powershell esta orientada al personal de TI, para poder automatizar de forma más sencilla procesos tediosos como por ejemplo crear cuentas en el Active Directory. Powershell no solo es compatible con Windows 7, sino que podemos descargarla e instalarla en Windows XP, Server 2003 y Windows Vista usando el link siguiente. http://www.microsoft.com/powershell . Es posible que sea necesario instalar .net framework 2 o superior para hacerlo funcionar debido a las librerías que este aporta. http://www.microsoft.com/downloads/details.aspx?familyid=0856eacb-4362-4b0d-8edd-aab15c5e04f5&displaylang=en.

A continuación veremos cómo usar Powershell para obtener informes detallas y según ciertos criterios usando la nueva línea de comandos.
Para ello vamos a inicio y escribimos Powershell.

Una vez abierta la consola de Powershell introducimos el siguiente comando: get-service , el cual nos listara todos los servicios mostrándonos su estado.

Hasta ahora bien, y pensareis que es lo mismo que acceder a los servicios dentro de las herramientas adminitrativas o escribiendo servicios en el menú ejecutar, bueno pues vamos a rizar un poco más el rizo, vamos a exportarlo a un documento html que nos liste por columnas el nombre y estado del servicio escribiendo get-service |convertto-html -Property name,status >servicestatus.html

Tras ello obtenemos lo siguiente, un documento html con el listado de los servicios como vemos a continuación.

La ubicación sobre la que Powershell exporta los documentos en la carpeta del usuario que inicia sesión, en mi caso C:\Users\Fernando.

Bueno ya tenemos nuestro documento con los servicios que estan activos y parados, pero esto nos queda muy soso si lo tenemos que incorporar a algun informe. Para ello vamos a seguir usando la linea de comandos de Powershell para darle un poco de color.
Para ello introduccidos get-service |convertto-html -Property name,status |foreach{if($_ -like"*<td>Running</td>*"){$_ -replace "<tr>","<tr bgcolor=yellow>"} else{$_ -replace "<tr>","<tr bgcolor=blue>"}}> .\get-service.html


Ahora veremos como objener solo los servicios que estan parados, los cuales muchas veces son los unicos que nos interesan ver para ver resolver incidencias. Para ello escribimos get-service | where-object .{$_.status -eq"stopped"}

Y hacemos lo mismo que anteriormente para sacarlos sobre un Html añadiendo a la linea anterio |convertto-html >stoppedservice.html quedando la linea entera asi get-service |where-object{$_.status -eq "stopped"}|convertto-html >stoppedservice.html

Y asi obtenemos otra vez nuestro Html con los servicios parados y detallados.

Podemos encontrar mas información sobre Powershell e incluso scripts ya hecho en los siguientes enlaces.
http://www.microsoft.com/technet/scriptcenter/topics/winpsh/manual/default.mspx
http://www.microsoft.com/technet/scriptcenter/default.mspx
Esperos os haya gustado y os sirva de ayuda.
Un saludo y hasta el proximo.
Si quieres aprender mucho más sobre los secretos de lo sistemas Microsoft Windows, te recomendamos leer el libro de Sergio de los Santos "Máxima Seguridad en Windows: Secretos Técnicos" y, por último, te recordamos que si te ha gustado el artículo puedes suscribirte al Canal RSS de Windows Técnico para estar al día de las novedades e información técnica de interés.
Enviado
mar 13 2009, 08:34
por
Fernando Villarreal