Aprende Informatica Conmigo

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

24 agosto, 2010 Por oscar Deja un comentario

Windows Server 2008 – Mover cuentas de equipo

Es imprescindible para el trabajo diario, saber realizar una serie de tareas como mover una cuenta de equipo de una OU a otra.

En este tutorial vamos a ver cómo hacer esto de diferentes maneras.

La primera y mas sencilla es a través del «snap-in» de «Active Directory Users and Computers«.

Pongamos que queremos mover el equipo «sobremesa11» que está en la OU «informatica» de «equipos» a la OU «desarrollo«.

Abrimos «Active Directory Users and Computers» y nos posicionamos en la OU «informatica» de «equipos«.

Seleccionamos la cuenta de equipo «sobremesa11«. Pulsamos el botón derecho del ratón y seleccionamos «Move«:

movequi-01

A continuación nos mostrará el siguiente cuadro de diálogo.

Nos posicionamos en el OU destino. En este caso «desarrollo«.

Pulsamos «OK»

movequi-02

Comprobamos que el equipo «sobremesa11» ya no está en la OU «informatica«:

movequi-03

Y que está en la OU «desarrollo«:

movequi-04

Bien, ahora vamos a intentar mover equipos con otras herramientas.

Dsmove

Sintaxis:

dsmove DNEquipo [-newname nombre] [-newparent OUdestino]

Moveremos la cuenta de equipo «sobremesa10» a la OU «desarrollo«:

dsmove «CN=sobremesa10,OU=informatica,OU=equipos,DC=aic,DC=local» -newparent «OU=desarrollo,OU=equipos,DC=aic,DC=local»

movequi-05

Windows Powershell

En este caso utilizaremos el método «psbase.MoveTo» de la siguiente forma para mover el equipo «sobremesa09» a la OU «desarrollo«:

$objEquipo=[ADSI]»LDAP://CN=sobremesa09,OU=informatica,OU=equipos,DC=aic,DC=local»

$objEquipo.psbase.MoveTo(«LDAP://OU=desarrollo,OU=equipos,DC=aic,DC=local»)

movequi-06

De momento, esto va bien.

Seguimos:

Visual Basic Script

El método a utilizar mediante Visual Basic Script es «MoveHere» del objeto equipo.

Set objOU = GetObject(«LDAP://OU=informatica,OU=equipos,DC=aic,DC=local»)
objOU.MoveHere «LDAP://CN=sobremesa08,OU=desarrollo,OU=equipos,DC=aic,DC=local», vbNullString

Bueno, como ya sabemos, creamos un fichero de texto y metemos las dos líneas anteriores:

movequi-07

Lo ejecutamos:

movequi-08

Bueno, pues ya hemos visto varias formas de mover un objeto equipo entre OUs.

Esto lo podemos aplicar, como he comentado antes, con otros objetos del Directorio Activo.

Hemos movido 4 equipos de la OU «informatica» a la OU «desarrollo«. Vamos a comprobarlo:

movequi-09

movequi-10

Ya veis que si, que los movimientos se han hecho bien.

Bueno, aqui finalizamos este tutorial.

Saludos.

—–

Oscar Abad

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

oscar
oscar

Programador WordPress freelance

Publicado en: sistemas, tutoriales, windows server 2008 Etiquetado como: active directory, aprendienformaticaconmigo, dsmove, mover equipos, powershell, vbscript

22 agosto, 2010 Por oscar Deja un comentario

Windows Server 2008 – Configurar atributos de equipo con Powershell y VBScript

Para modificar o configurar uno o varios atributos de las cuentas de equipo mediantte Powershell o Visual Basic Script, debemos seguir tres pasos:

1-. Conectar a la cuenta de equipo de la forma: «LDAP://DNEquipo».

2-. Utilizar el método «Put» del equipo para modificar un atributo.

3-. Utilizar el comando SetInfo() para que se lleven a cabo las modificaciones.

Vamos a verlo ahora por separado:

Windows Powershell

Los comandos que debemos utilizar son:

$objEquipo = [ADSI]»LDAP://DNEqupio»
$objEquipo.Put(«propiedad», valor)
$objEquipo.SetInfo()

Bien, ahora vamos a realizar un ejemplo. Vamos a modificar la propiedad «description» del equipo «sobremesa08«.

Para ello, ejecutaremos los siguientes comandos:

$objEquipo = [ADSI]»LDAP://CN=sobremesa08,OU=informatica,OU=equipos,DC=aic,DC=local»
$objEquipo.Put(«description», «Equipo de sobremesa número 8»)
$objEquipo.SetInfo()

confatrequpowvbs-01

Comprobamos el cambio que hemos realizado:

confatrequpowvbs-02

Bien.

Ahora vamos a hacerlo con Visual Basic Script.

Visual Basic Script

Los comandos a utilizar en este caso seguiran el siguiente patrón:

Set objEquipo = GetObject(«LDAP://DNEquipo»)
objEquipo.Put(«propiedad», valor)
objEqupio.SetInfo

Ya veis que es muy parecido a Powershell.

Vamos a cambiar la propiedad «description» del equipo «sobremesa09«:

Set objEquipo = GetObject(«LDAP://CN=sobremesa09,OU=informatica,OU=equipos,DC=aic,DC=local»)
objEquipo.Put(«description», «Equipo de sobremesa número 9»)
objEquipo.SetInfo

Ahora, escribimos estas últimas líneas en un fichero con extensión .vbs (c:\vbscript\modifatrequipo.vbs).

confatrequpowvbs-03

Ejecutamos el script:

confatrequpowvbs-04

Y lo comprobamos:

confatrequpowvbs-05

Perfecto.

Podemos modificar una cantidad tremenda de atributos mediante Windows Powershell o Visual Basic Script. Y no sólo de los objetos del tipo «computer«, sino de muchos otros, como «usuarios«, «grupos«, etc..

Por ejemplo, para conocer las propiedades disponibles y sus nombres en las cuentas de equipo, podemos echarle un vistazo a las propiedades de un equipo  y posicionarnos en la pestaña «Atibute Editor«.

confatrequpowvbs-06

Como se puede observar en la captura anterior, hay un montón de atributos que podemos modificar.

Bueno, hasta aquí llega este tutorial.

Saludos.

—–

Oscar Abad

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

oscar
oscar

Programador WordPress freelance

Publicado en: sistemas, tutoriales, windows server 2008 Etiquetado como: active directory, atributos, equipos, powershell, vbscript

17 agosto, 2010 Por oscar 1 comentario

Windows Server 2008 – Crear cuentas de equipo con Powershell y VBScript

Llega el momento de utilizar a nuestro querido amigo «Windows Powershell«.

Si nos acordamos, el los tutoriales sobre grupos, comentaba los tres pasos que hay que seguir para poder crear un objeto con Widnows Powershell y Visual Basic Script.

A continuación indico los pasos a seguir en el caso de crer cuentas de equipo:

  1. Conectar con el contenedor (OU) donde vamos a crear el equipo: [ADSI]»LDAP://<DN del la OU>«.
  2. Utilizar el comando «create» de la OU para crear el equipo.
  3. Rellenar los diferentes atributos que queramos.
  4. Hacer efectivos los cambios.

Vamos a empezar con Powershell:

Windows Powershell

1-. Conectar con la unidad organizativa «informatica» de «equipos«:

$objOU = [ADSI]»LDAP://OU=informatica,OU=equipos,DC=aic,DC=local»

2-. Utilizar el comando «create» de la OU:

$objEquipo = $objOU.Create(«computer», «CN=sobremesa10»)

3-. Rellenar las propiedades que queramos. En este caso las necesarias:

$objEquipo.Put(«sAMAccountName», «sobremesa10$»)

$objEquipo.Put(«userAccountControl», 4096)

4-. Hacer efectivos los cambios:

$objEquipo.SetInfo()

Con estos comandos podemos hacer un script.

Incluímos las líneas en un fichero de texto con extensión «ps1». Por ejemplo: «c:\power\scripts\crearequipo.ps1» y lo ejecutamos.

creqpowvbs-02

creqpowvbs-01

Lo comprobamos:

creqpowvbs-03

Perfecto, ha funcionado.

Ahora vamos hacerlo con Visual Basic Script:

Visual Basic Script

Al igual que con Windows Powershell, vamos a intentar seguir los pasos:

1-. Conectar con la unidad organizativa «informatica» de «equipos«:

Set objOU = GetObject(«LDAP://OU=informatica,OU=equipos,DC=aic,DC=local»)

2-. Utilizar el comando «create» de la OU:

Set objEquipo = objOU.Create(«computer», «CN=sobremesa11»)

3-. Rellenar las propiedades que queramos. En este caso las necesarias:

objEquipo.Put «sAMAccountName», «sobremesa11$»

objEquipo.Put «userAccountControl», 4096

4-. Hacer efectivos los cambios:

objEquipo.SetInfo()

Ahora recopilamos los comandos en un fichero de texto con la extensión .vbs. Por ejemplo: «c:\vbscript\crearequipo.vbs«.

creqpowvbs-04

Ejecutamos el script:

creqpowvbs-05

Y comprobamos:

creqpowvbs-06

Nos ha salido todo muy bien.

De momento lo dejamos aqui por hoy.

Saludos.

—–

Oscar Abad

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

oscar
oscar

Programador WordPress freelance

Publicado en: sistemas, tutoriales, windows server 2008 Etiquetado como: active directory, aprendeinformaticaconmigo, cuentas equipo, powershell, vbscript

27 julio, 2010 Por oscar Deja un comentario

Windows Server 2008 – Gestionar miembros de grupos con Powershell y VBScript

Cuando en el título indico «gestionar«, me refieros a eliminar o añadir miembros a los grupos.

Para realizar un script que elimine o añada un miembro a un grupo, en cualquiera de los dos lenguajes de scripting, tendremos que seguir unos pasos que, además nos servirán para entender mejor el funcionamiento.

Los pasos a seguir son tres:

  1. Determinar la ruta DS al miembro. Estas rutas son del tipo: LDAP://<DN del miembro>.
  2. Conectamos con el grupo con el que vamos a trabajar.
  3. Utilizar el método Add (añadir) o Remove (eliminar) del objeto grupo, especificando la ruta DS al miembro.

WINDOWS POWERSHELL

Para añadir un usuario como miembro de un grupo con Windows Powershell realizaremos los pasos anteriores.

Pongamos el ejemplo de que necesitamos añadir al usuario «desarrollo01» como miembro del grupo «ACL_informatica_modificar«.

En primer lugar, guardamos en una variable el DN del usuario (u otro tipo de objeto) que queremos añadir.

$MiembroADSruta = «LDAP://CN=desarrollo01,OU=desarrollo,OU=usuarios,DC=aic,DC=local»

Ahora guardamos en otra varible la conexión con el grupo «ACL_informatica_modificar«, que es el grupo al que le vamos a añadir un miembro.

$objGrupo = [ADSI]»LDAP://CN=ACL_informatica_modificar,OU=grupos,DC=aic,DC=local»

En este momento sólo nos queda invocar al grupo «Add» del objeto «objGrupo» con el parámetro del objeto que queremos añadir. Veámoslo:

$objGrupo.Add ($MiembroADSruta)

Con hemos añadido el usuario «desarrollo01» como miembro del grupo «ACL_informatica_modificar«.

Vemos lo que hemos hecho:

gestgrppowvbs-01

Lo comprobamos en la pestaña «Members» del grupo «ACL_informatica_modificar»:

gestgrppowvbs-02

En efecto, ahí está en usuario «desarrollo01».

Visual Basic Script

Ahora, para realizar un ejemplo con un script de VBScript, vamos a intentar eliminar el usuario «desarrollo01» como miembro del grupo «ACL_informatica_modificar«. Es decir, deshacer el cambio que realizamos antes con Powershell.

Por supuesto, en esta ocasión utilizaremos el método «remove» en lugar de «add«.

El primer paso, como antes, es guardar en una variable el camino al objeto usuario que queremos quitar del grupo.

MiembroADSruta = «LDAP://CN=desarrollo01,OU=desarrollo,OU=usuarios,DC=aic,DC=local»

Ahora, guardamos en otra variable la conexión con el grupo «ACL_informatica_modificar«, pero en esta ocasión utilizaremos el método o función GetObject().

Set objGrupo = GetObject(«LDAP://CN=ACL_informatica_modificar,OU=grupos,DC=aic,DC=local»)

Y por último, ejecutamos el método «Remove» de la varible que contiene la conexión al grupo.

objGrupo.Remove MiembroADSruta

Creamos un fichero de texto con extensión .vbs y guardamos estas tres líneas de código en el.

gestgrppowvbs-03

Comprobamos:

gestgrppowvbs-04

Ya no está el usuario «desarrollo01» como miembro de este grupo.

En este tutorial sólo he realizado unos ejemplos sencillos pero que nos pueden dar una idea de las posibilidades de estas dos herramientas.

Lo dejamos por hoy.

Saludos.

—–

Oscar Abad

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

oscar
oscar

Programador WordPress freelance

Publicado en: sistemas, tutoriales, windows server 2008 Etiquetado como: aprendeinformaticaconmigo, gestionar grupos, powershell, vbscript

23 junio, 2010 Por oscar 1 comentario

Windows Server 2008 – Manejar atributos de usuario mediante comandos DS

Ahora, en lugar de modificar atributos desde «Usuarios y Equipos de Active Directory«, vamos a ver cómo hacerlo desde una consola de comandos o desde Windows Powershell.

Ciertamente es muy sencillo, sólo es necesario conocer los comandos DS que necesitamos y los nombres de los atributos que queremos modificar.

Yo lo voy a ejecutar desde Windows Powershell.

El comando o comandos que vamos a utilizar son:

dsquery user -name «sara *» | dsmod user -office «Alicante» -disabled yes

El la primera parte del comando, utilizamos «dsquery» para buscar todos los usuarios cuyo nombre (-name) sea «sara *«, es decir, que comience por sara y tenga un espacio. A partir de ahí, cualquier caracter.

En la seguna parte del comando lo que hacemos es utilizar el comando «dsmod» para modificar los atributos «office» y «disabled» de los objetos usuario que antes hemos consultado con el comando dsquery.

Por lo tanto, con la primera parte del comando conseguimos localizar todos los usuarios cuyo atributo «name» comiencen por «sara» y con la segunda parte modificamos el atributo «office» a Aliante y el atributo «disabled» a yes.

En la siguiente captura de pantalla observamos el resultado de ejecuta el comando.

Ya veis que hay dos usuarios a los que hemos modificado los atributos.

matrds-01

También podéis comprobarlo desde el entorno gráfico:

matrds-02

matrds-03

Ahora vamos a realizar otra prueba.

Nos ponemos en la situación de que queremos conocer los atibutos «samid» (pre-windows 2000 logon name) y «upn» (user principal name» de los usuarios cuyo nombre comience por «sara «.

La primera parte del comando es la misma que en el primer ejemplo que hemos realizado en este tutorial, es decir, para que nos devuelva los usuarios cuyo nombre comience por «sara «.

En la segunda parte del comando utilizamos el comando «dsget» para que nos muestre las propiedades «samid» y «upn» de esos objetos de usuario.

La respuesta a esto la podeis ver en la siguiente captura de pantalla:

matrds-04

Ahora, vamos con el último ejemplo de ete tutorial.

Para ponernos en situación, bloqueamos las dos cuentas de usuario cuyo nombre comienza por «sara «.

matrds-05

Bien, ahora lo que haremos es ejecutar uno a uno los siguientes comandos:

matrds-06

Lo que hacemos es establecer una conexión con LDAP con los datos del usuario que vamos a desblobquear.

A continuación utilizamos el método «InvokeSet» para establecer la propiedad «AccountDisbled» a «false«. De esta forma habilitamos o desbloqueamos la cuenta de usuario.

Para que estos comando tengan efecto, es necesario ejecutar el método «SetInfo()«.

matrds-07

Comprobamos que lo hemos hecho bien:

matrds-08

Ahora, desde el entorno gráfico, vamos a habilitar la otra cuenta de usuario perteneciente a «sara gomez«.

Lo único que hay que hacer es acceder a las propiedades del usuario…

matrds-09

En la pestaña «Account«, vemos que está activado el check «Account is disabled«.

matrds-10

Quitamos el check y pulsamos «ok«.

matrds-11

Ya lo tenemos y lo comprobamos:

matrds-12

Hasta aquí llega este tutorial.

Hasta el siguiente.

—–

Oscar Abad

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

oscar
oscar

Programador WordPress freelance

Publicado en: sistemas, windows server 2008 Etiquetado como: aprendeinformaticaconmigo, atributos, cuentas de usuario, dsget, dsmod, dsquery, habilitar, powershell

22 abril, 2010 Por oscar 1 comentario

Windows Server 2008 – Instalar Windows Powershell

Muchos de vosotros ya conoceréis la magnífica herramienta que es Windows Powershell, pero para aquellos que no la conozcais, os invito a revisar los diferentes artículos que a modo de curso están publicados en este blog en el apartado POWERSHELL.

No quiero volver a incidir en algo que ya está suficientemente explicado en el apartado de Powershell. Me refiero a qué es y como funciona.

En este y otros artículos utilizaremos Windows Powershell para realizar tareas que tienen que ver con el Directorio Activo como crear usuarios…

Una vez hecha la introducción, procedemos a instalar Windows Powershell en nuestro Windows Server 2008. No lo instalaremos como en un Windows XP porque en el caso de 2008 ya viene como una característica del sistema operativo. Entonces ejecutaremos el «Server Manager» como puede verse en la captura siguiente:

instwpowsh01

En la siguiente pantalla hacemos click sobre «Add Features«.

instwpowsh02

Podemos ver una lista de las características disponibles, pero nosotros vamos a activar el check correspondiente a Windows Powershell.

instwpowsh03

Al pulsar en el botón «Next» aparece la siguiente pantalla informando de lo que se va a instalar. Si estamos de acuerdo con esto y es que si, pulsamos en el botón «Install«.

instwpowsh04

Proceso de instalación.

instwpowsh05

Una vez finalizada la instalación nos lo indica con la pantalla siguiente:

instwpowsh06

Ahora podemos ejecutar Windows Powershell desde el menú inicio como se puede ver en la captura siguiente.

Podemos sacar un acceso al menú inicio o incluso al escritorio, para tenerlo mas a mano.

Para crear un acceso en el menú inicio, pulsamos botón derecho sobre «Windows Powershell» y seleccionamos la opción «Pin to Start Menu«.

instwpowsh07

En la siguiente captura vemos el aspecto que tiene el icono que acabamos de crear en el menú inicio.

instwpowsh08

Y para terminar, ejecutamos Windows Powershell y veremos algo similar a la ultima captura de pantalla.

instwpowsh09

Ya tenemos Windows Powershell instalado en nuestro equipo. En próximos tutoriales veremos como utilizarlo para trabajar con el Directorio Activo.

De todas formas, como he comentado al principio, podéis aprender algo mas sobre esta herramienta en el apartado POWERSHELL de este blog.

Saludos y hasta la próxima.

—–

Oscar Abad

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

oscar
oscar

Programador WordPress freelance

Publicado en: powershell, sistemas, tutoriales, windows server 2008 Etiquetado como: active directory, aprendeinformaticaconmigo, powershell, servidores

8 junio, 2009 Por oscar 2 comentarios

Iniciativa Vizioncore Virtualization Ecoshell

vesi

El objetivo de la iniciativa «Vizioncore Virtualizacion Ecoshell» es ofrecer una apliacion de escritorio gratuita para los Adminstradores de TI, desde principiantes a expertos en scripts de Windows Powershell a traves de sus entornos virtuales multi-plataforma.

No me voy a enrollar mas, y os dejo el enlace para que le echeis un vistazo.

Podeis descargaros la ultima version beta desde aqui.

Venga, a pasarlo bien!!

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

oscar
oscar

Programador WordPress freelance

Publicado en: informacion tecnologica, Noticias, powershell, programacion, sistemas, software gratuito Etiquetado como: aprendeinformaticaconmigo, gui, powershell, software gratuito, virtualizacion, vizioncore

6 junio, 2009 Por oscar 4 comentarios

Script Powershell – Apagar equipos remotamente – Ver. 3.0

Esto parece que va funcionando, ¿no?

A mi por lo menos si que me es util este script y espero que a vosotros tambien.

Bueno, como os comente en el articulo de la version 2.0 de este script, ahora vamos  a ver como podemos utilizar un fichero de texto en el que previamente hemos introducido los nombres de los equpios que queremos apagar para que los vaya comprobando uno a uno y apagando si es el caso.

En primer lugar creamos un fichero de texto que yo le voy a llamar «equiposapagar.txt» y en el introducimos los equipos que queramos apagar. Como ejemplo podemos poner:

fabrica1

fabrica2

compras3

Podemos poner todos los equipos que queramos. Ojo con incluir servidores o equipos que no deberian apagarse, eh!

Lo primero a tener en cuenta es que en este script no necesitamos ningun dato de entrada, es decir, que al ejecutar el script unicamente escribiremos el nombre del fichero: apagarequipos.ps1

Una vez que tenemos claro esto, nos ponemos manos a la obra con la novedad de esta version: el famoso fichero de texto del cual deberemos cargar su contenido. La linea en custion es la siguiente:

$equiposapagar = get-content -path «c:\power\scripts\equiposapagar.txt»

Interpretamos que, mediante el cmdlet «get-content«, guardamos la informacion del fichero «c:\power\scripts\equiposapagar.txt» en la variable $equiposapagar.

Esto nos queda claro, ¿no?

Otra de las novedades de este script es que utilizaremos la orden «foreach-object» para recorrer todos y cada uno de los equipos que ahora tenemos guardados en la variable $equiposapagar.

A continuacion tenemos el codigo:


#Script: apagarequipos.ps1
#Version: 3.0
#
#Autor: Oscar Abad Folgueira
#Web:   https://www.aprendeinformaticaconmigo.com
#Fecha: 25 de Abril de 2009
#
#Tipo: Powershell
#Funcion: Recorre un fichero de texto con nombres de equipo y los va apando uno a uno.
#
#Parametros: No necesita parametros de entrada.
#Uso: apagarequipos.ps1
#
#
#obtener la lista de equipos que se pueden apagar y guardarla en la variable»$equiposapagar»
$equiposapagar = get-content -path «c:\power\scripts\equiposapagar.txt»
#
#Bucle «foreah-object» que recorre todos los equipos del fichero para ver si estan apagados y si es asi
#los apaga
#
$equiposapagar | foreach-object {
$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)
}
}


Creo que no es nada dificil entender el fucnionamiento.

Probad tambien este script si podeis. Yo personalmente lo he puesto en varias fabricas para revisar los equipos que se quedan encendidos por las noches y si estan encendidos, apagarlos.

Yo he añadido unas lineas para crear un log de los equipos que estan encendidos por que siempre esta bien saber cuantos equipos apagamos y, de este modo, si el trabajo merece la pena por el ahorro de consumo.

Venga, espero que me comenteis que tal os ha funcionado.

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: apagar equipos remotamente, aprendeinformaticaconmigo, powershell, scripts

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

  • 1
  • 2
  • Página siguiente »

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