Aprende Informatica Conmigo

  • Inicio
  • Contenido Anterior
    • VIDEOTUTORIALES
    • Windows Server 2008
    • POWERSHELL

2 junio, 2009 Por oscar 3 comentarios

Script Powershell – Apagar equipos remotamente – Ver. 2.0

Vamos a trabajar un poco mas con el script que escribimos en el articulo anterior dedicado a scripts en Powershell y vamos a añadirle una linea que nos ayudara.

Si habeis probado el script que os comento, os habra pasado que si el equipo que queriais a apagar ya estaba apagado, os mostrara un mensaje de error. Para solucionar este problema, vamos a comprobar el estado del equipo antes de lanzar el apagado.

Para ello utilizaremos la clase «win32_pingstatuscode» que nos facilita Windows a traves de WMI.

Hay varias formas de trabajar con esta funcion, pero yo he preferido utilizar la siguiente:

get-wmiobject -query «select statuscode from win32_pingstatus where address = ‘$equipo'»

Con esta line de codigo, lo que hacemos es una consulta, de esas del tipo de sql, ¿os suena algo, no?

La consulta lo que hace es recoger el valor de la propiedad «statuscode» de la clase «win32_pingstatus» del equipo en cuestion.  Como esta linea por si misma no nos va a mostrar nada, tendremos que guardarla en una variable para que podamos trabajar con el valor devuelto y, en funcion del resultado, hacer una cosa u otra.

La linea de codigo completa quedaria de la siguiente forma:

$estado = get-wmiobject -query «select statuscode from win32_pingstatus where address = ‘$equipo'»

Vale, ahora tenemos almacenado el valor del estado del equipo en la variable «$estado«.

En esta pagina nos describen la clase «win32_pingstatus» y sus miembros. Nos viene bien para saber los posibles valores que puede tomar «statuscode«.

Bueno, no esperamos mas y os pongo como quedaria el codigo:


#Script: apagarequipos.ps1
#Version: 2.0
#
#Autor: Oscar Abad Folgueira
#Web:   https://www.aprendeinformaticaconmigo.com
#Fecha: 25 de Abril de 2009
#
#Tipo: Powershell
#Funcion: Apagar equipos remotamente. Estga version comprueba el estado del equipo

#antes de lanzar el apagado.
#
#Parametros: nombre el equipo a apagar.
#Uso: apagarequipos.ps1 equipo
#
#

Param($equipo)         #parametro de entrada (Nombre del equipo a apagar).

$equipo = $_
$estado = get-wmiobject -query «select statuscode from win32_pingstatus where address = ‘$equipo'»
if ($estado.statuscode -eq 0) {
(get-wmiobject -class win32_operatingsystem -computername $equipo).win32shutdown(12)
}


Ademas de lo que hemos comentado antes, podemos ver que hemos añadido un if para evaluar el estado del equipo en cuestion. Si el equipo esta apagado, no hace nada, pero si no lo esta, lanza el apagado.

No hay mucho mas que decir, simplemente que lo probeis y me comenteis que tal os ha ido y si os es util.

En la siguiente version de este script, veremos como podemos utilizar un fichero de texto en el que hemos introducido previamente el nombre de los equipos que queremos apagar para que nos apague una serie de equipos uno detras de otro sin tener que hacer uno a uno a mano. Ademas, nos servira para crear una tarea programada para que se apaguen por la noche o el fin de semana.

Venga, a pasarlo bien!!

—–
Oscar Abad
http://www.xulak.com – Consultoría informática

oscar
oscar

Programador WordPress freelance

Publicado en: powershell, programacion, scripts powershell, sistemas, tutoriales Etiquetado como: aprendeinformaticaconmigo, powershell, script, script powershell, windows, wmi

31 mayo, 2009 Por oscar 2 comentarios

Script Powershell – Apagar equipos remotamente

Bueno, como lo prometido es deuda, hoy vamos a escribir nuestro primer script en Powershell.

En este caso vamos a utilizarlo para apagar equipos remotamente.

A continuacion muestro el codigo completo:


#Script: apagarequipos.ps1
#Version: 1.0
#
#Autor: Oscar Abad Folgueira
#Web:   https://www.aprendeinformaticaconmigo.com
#Fecha: 25 de Abril de 2009
#
#Tipo: Powershell
#Funcion: Apagar equipos remotamente.
#
#Parametros: nombre el equipo a apagar.
#Uso: apagarequipos.ps1 equipo
#
#

Param($equipo)         #parametro de entrada (Nombre del equipo a apagar).

(get-wmiobject -class win32_operatingsystem -computername $equipo).win32shutdown(12)


Ahora toca explicar un poco lo que hace el script y como lo hace.

En primer lugar debemos saber, si no lo sabemos ya o nos lo imaginamos, que todo lo que escribimos despues del caracter almoadilla (#) es un comentario. Por consiguiente, si nos fijamos, nuestro script consta de 2 lineas unicamente.

La primera linea efectiva: Param($equipo) la utilizamos para recoger en la variable $equipo el nombre del equipo que hemos tecleado despues de apagarequipos.ps1 y que se corresponde con el equipo que queremos apagar.

Por ejemplo, cuando utilicemos el script, lo haremos de la siguiente forma: apagarequipos.ps1 compras1

Esto lo que hara sera intentar apagar el equipo «compras1» si es que esta encendido, claro. Si no está encendido nos dara un mensaje de error. De todas formas, como este script es solo para que veamos como funciona esto y no nos compliquemos demasiado, no os preocupeis por que lo vamos a mejorar un poco en posteriores artiulos.

La segunda linea efectiva lo que hace es utilizar las clases WMI de Windows. En este caso utilizamos la clase «win32_operatingsystem» la cual, entre otros, dispone de un metodo llamado «win32shutdown» y admite una serie de valores.

Para saber mas sobre este metodo y sobre los valores que admite, podemos visitar esta pagina web.

Para poder probar este script, ya sabeis, y si no lo sabeis os lo comento ahora. Teneis que copiar el codigo que os he puesto arriba y guardarlo en un fichero con extension «ps1«. El resto corre de vuestra cuenta.

No estaria de mas que le echarais un vistazo al apartado de Powershell del Blog para que os aclare algunas cosillas que puede que no las tengamos claras en este momento.

Bueno, creo que con esto tenemos suficiente para empezar con los scripts en Powershell. Ya iremos viendo mas y mas poco a poco.

Venga, a pasarlo bien!!

—–
Oscar Abad
http://www.xulak.com – Consultoría informática

oscar
oscar

Programador WordPress freelance

Publicado en: programacion, scripts powershell, sistemas, tutoriales Etiquetado como: apagar equipos remotamente, aprendeinformaticaconmigo, powershell, script powershell

Hazte con el tema Divi

Divi WordPress Theme
Libro windows server 2008

Libro certificación Windows Server 2016

Libro certificación Windows Server 2016

Libro Windows Server 2016

Libro Windows Sever 2016
Web Hosting

Últimos artículos

  • PHP función var_dump(): Mostrar el contenido de una variable
  • PHP función unset(): Eliminar variables
  • MySQL LIMIT: Limitar la canidad de filas en una consulta
  • PHP función isset(): Evaluar si una variable está definida
  • PHP función empty(): Comprobar si una variable está vacía
  • MySQL SELECT DISTINCT para encontrar registros con diferente valor en el mismo campo
  • Los mejores libros en español para aprender WordPress

Mis Webs

  • Aprende Informática Conmigo
  • Dinapyme
  • MUSIKP
  • Oscar Abad Folgueira

Proyectos

  • Basabe Baserria
  • Batukada Battuere
  • Bicicletas Sin Pedales
  • Bordalan
  • C.R. Pantano del Rumblar
  • Dinapyme
  • DiverBiblio
  • Egia Ingenieros
  • Hermanos Vivas construcciones
  • Ibartxi – Suministros de Gas y Soldadura
  • LANBASE
  • LS Fotografía
  • Luke and Phil
  • Masajes Mas Sana
  • MUSIKP
  • Oh! Yeah Dev
  • Oscar Abad Folgueira
  • Participación ciudadana Basauri
  • Restaurante Bideko
  • Taldesport
  • Vicente Choya
  • WooCommerce Knowledge2K
  • Inicio
  • Contenido Anterior

Copyright © 2023 · Oscar Abad Folgueira Y DINAPYME· Acceder