Gestión de Servicios con PowerShell en Windows 7

Windows Técnico

Sindicación

Proximos HOLs

Loading...

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.

clip_image002

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.

clip_image004

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

clip_image006

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

clip_image008

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

clip_image010

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.

clip_image012

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

clip_image014

clip_image016

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"}

clip_image018

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

clip_image020

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

clip_image022

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

Comentarios

Windows Técnico escrito FALTA 1 SÓLO DÍA PARA EL LANZAMIENTO DE WINDOWS 7
en 10-21-2009 9:51

Buenas a todos, a falta de un día para el lanzamiento de Windows 7 al mercado he querido hacer un post

lucia escrito re: SERVICIOS CON POWERSHELL
en 11-05-2009 0:42

QUE PUEDO HACER ...DIGANME COMO PUEDO RECUPERAR MI CUENTA,anterior@hotmail.com para poder recuperar las carpetas de esta cuenta por favor es muy importante para mi, y se que tienen,pero no se donde dirigirme para que me manden una copia de esta cuenta robada hace ya unos meses, he escrito a muchos sitios,para ver si pueden mandarme una copia pero nada ,por favor diganme que puedo hacer, o donde dirigirme, gracias

Windows Técnico escrito Webcasts – Powershell
en 01-11-2010 13:58

‘Office Live meeting’, la tecnología de los webcasts El próximo día 21 de Enero a las 16:00 tendrá lugar

anonimous escrito re: Gestión de Servicios con PowerShell en Windows 7
en 02-21-2012 11:54

#nos conectamos al controlador de dominio: iesmvm.loc y concretamente a su unidad organizativa

$computer=[adsi]"LDAP://OU=compis,DC=iesmvm,DC=loc"

#importamos los datos del fichero csv

$datos = import-csv usuarios_ad.csv

#recorremos el fichero

foreach ($registro in $datos) {

echo $registro

$crear_usuario=$computer.Create("User","CN="+$registro.common_name)

$crear_usuario.Setinfo()

$crear_usuario.Put("sAMAccountName",$registro.inicio)

$crear_usuario.Setinfo()

$crear_usuario.Put("userPrincipalName",$registro.primer)

$crear_usuario.Put("displayName",$registro.cognom)

$crear_usuario.Put("givenName",$registro.cognom)

#desactivo el cambio de password cuando inicie sesión

$crear_usuario.Put("pwdLastSet",0)

#guardo los últimos datos introducidos

$crear_usuario.Setinfo()

$crear_usuario.SetPassword($registro.passw)

#habilito la cuenta

$crear_usuario.psbase.InvokeSet("AccountDisabled",$false)

$crear_usuario.setinfo()

}

anonimous escrito re: Gestión de Servicios con PowerShell en Windows 7
en 02-21-2012 13:02

$computer=[adsi]"LDAP://OU=compis,DC=loquesea,DC=loc"

$v2 = import-csv usuarios_ad.csv

foreach ($v3 in $v2) {

echo $v3

$v1=$computer.Create("User","CN="+$v3.common_name)

$v1.Setinfo()

$v1.Put("sAMAccountName",$v3.inicio)

$v1.Setinfo()

$v1.Put("userPrincipalName",$v3.primer)

$v1.Put("displayName",$v3.cognom)

$v1.Put("givenName",$v3.cognom)

$v1.Setinfo()

$v1.SetPassword($v3.passw)

#habilito la cuenta

$v1.psbase.InvokeSet("AccountDisabled",$false)

$v1.setinfo()

}

Añadir un comentario

(requerido)  
(opcional)
(requerido)  
Recordarme
If you can't read this number refresh your screen
Enter the numbers above: