Aprende Informatica Conmigo

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

4 julio, 2010 Por oscar Deja un comentario

Windows Server 2008 – Implementando la infraestructura – Parte 1

Cómo ya comenté en en último artículo sobre Windows Server 2008, vamos a intentar crear una infraestructura para poder realizar pruebas mientras aprendemos el funcionamiento del Directorio Activo en 2008 y sus carácterísticas mas relevantes.

Para ponernos en situción, vamos a crear el entorno de trabajo en el primer dominio, que sería: «aic.local«.

Doy por sentado que habéis seguido los anteriores artículos del blog sobre Windows 2008, pero si no es así, lo podéis hacer en este enlace.

Para poder realizar o seguir los tutoriales a partir de éste, debemos tener implementado un controlador de dominio para el dominio «aic.local«. Podéis realizar las pruebas que querais con los tutoriales de 2008.

Hay que dejar claro lo que vamos a hacer en éste dominio y los objetos que crearemos.

En primer lugar, voy a crear, de momento las Unidades Organizativas para alojar las cuentas de usuario o equipo.

  • equipos
    • administracion
    • compras
    • direccion
    • informatica
    • marketing
    • ventas
  • usuarios
    • administracion
    • compras
    • direccion
    • informatica
    • marketing
    • ventas

He realizado un script para crear estas Unidades Organizativas que, si queréis podéis adaptar a vuestras necesidades:


$objDominio=[ADSI]»LDAP://DC=aic,DC=local»
$objOU=$objDominio.Create(«OrganizationalUnit»,»ou=equipos»)
$objOU.Put(«description»,»OU para almacenar ordenadores»)
$objOU.SetInfo()
$objDominio=[ADSI]»LDAP://OU=equipos,DC=aic,DC=local»
$objOU=$objDominio.Create(«OrganizationalUnit»,»ou=administracion»)
$objOU.Put(«description»,»Equipos del departamento de administracion»)
$objOU.SetInfo()
$objOU=$objDominio.Create(«OrganizationalUnit»,»ou=ventas»)
$objOU.Put(«description»,»Equipos del departamento de ventas»)
$objOU.SetInfo()
$objOU=$objDominio.Create(«OrganizationalUnit»,»ou=compras»)
$objOU.Put(«description»,»Equipos del departamento de compras»)
$objOU.SetInfo()
$objOU=$objDominio.Create(«OrganizationalUnit»,»ou=informatica»)
$objOU.Put(«description»,»Equipos del departamento de informatica»)
$objOU.SetInfo()
$objOU=$objDominio.Create(«OrganizationalUnit»,»ou=marketing»)
$objOU.Put(«description»,»Equipos del departamento de marketing»)
$objOU.SetInfo()
$objOU=$objDominio.Create(«OrganizationalUnit»,»ou=direccion»)
$objOU.Put(«description»,»Equipos del departamento de direccion»)
$objOU.SetInfo()
$objDominio=[ADSI]»LDAP://DC=aic,DC=local»
$objOU=$objDominio.Create(«OrganizationalUnit»,»ou=usuarios»)
$objOU.Put(«description»,»OU para almacenar usuarios»)
$objOU.SetInfo()
$objDominio=[ADSI]»LDAP://OU=usuarios,DC=aic,DC=local»
$objOU=$objDominio.Create(«OrganizationalUnit»,»ou=administracion»)
$objOU.Put(«description»,»Usuarios del departamento de administracion»)
$objOU.SetInfo()
$objOU=$objDominio.Create(«OrganizationalUnit»,»ou=ventas»)
$objOU.Put(«description»,»Usuarios del departamento de ventas»)
$objOU.SetInfo()
$objOU=$objDominio.Create(«OrganizationalUnit»,»ou=compras»)
$objOU.Put(«description»,»Usuarios del departamento de compras»)
$objOU.SetInfo()
$objOU=$objDominio.Create(«OrganizationalUnit»,»ou=informatica»)
$objOU.Put(«description»,»Usuarios del departamento de informatica»)
$objOU.SetInfo()
$objOU=$objDominio.Create(«OrganizationalUnit»,»ou=marketing»)
$objOU.Put(«description»,»Usuarios del departamento de marketing»)
$objOU.SetInfo()
$objOU=$objDominio.Create(«OrganizationalUnit»,»ou=direccion»)
$objOU.Put(«description»,»Usuarios del departamento de direccion»)
$objOU.SetInfo()


Después de ejutar el script anterior, nos debería quedar como en la siguiente captura de pantalla:

plainfra-01

Antes de empezar a crear usuarios, vamos a ver los que vamos a crear, los ordeno por departamento y para no complicarnos mucho con detalles sin importancia para este laborario de pruebas, voy a nombrar a los equipos y usuarios dependiendo del departamento en el que trabajen. Con esto quiero decir que las cuentas de usuario serán del tipo: «admin01, admin02…», etc..

Empezamos a definir los usuarios que crearemos en cada departamento de AIC:

Administración: admin01 y admin02

Marketing: mark01

Ventas: ventas01 y ventas02

Compras: compras01 y compras02

Directiva: director01

Informatica: infor01, infor02, infor03, infor04, infor05, infor06, infor07, infor08

Las cuentas de usuario las podemos crear a mano desde «Active Directory users and computers», pero también podemos crearlas mediante algún que otro script.

Yo voy a facilitaros este trabajo creando scripts en Powershell, de esta forma copiais el texto, lo guardais en un fichero de texto, lo llamais por ejemplo: «crearusuariosaic.ps1» y lo ejecutais desde Powershell.

A continuación teneis el código:


$objOU=[ADSI]»LDAP://OU=administracion,OU=usuarios,DC=aic,DC=local»
$objUser=$objOU.Create(«user»,»CN=admin01″)
$objUser.Put(«sAMAccountName»,»admin01″)
$objUser.Put(«userPrincipalName»,»admin01″)
$objUser.SetInfo()
dsmod user «CN=admin01,OU=administracion,OU=usuarios,DC=aic,DC=local» -disabled no

$objOU=[ADSI]»LDAP://OU=administracion,OU=usuarios,DC=aic,DC=local»
$objUser=$objOU.Create(«user»,»CN=admin02″)
$objUser.Put(«sAMAccountName»,»admin02″)
$objUser.Put(«userPrincipalName»,»admin02″)
$objUser.SetInfo()
dsmod user «CN=admin02,OU=administracion,OU=usuarios,DC=aic,DC=local» -disabled no

$objOU=[ADSI]»LDAP://OU=marketing,OU=usuarios,DC=aic,DC=local»
$objUser=$objOU.Create(«user»,»CN=mark01″)
$objUser.Put(«sAMAccountName»,»mark01″)
$objUser.Put(«userPrincipalName»,»mark01″)
$objUser.SetInfo()
dsmod user «CN=mark01,OU=marketing,OU=usuarios,DC=aic,DC=local» -disabled no

$objOU=[ADSI]»LDAP://OU=ventas,OU=usuarios,DC=aic,DC=local»
$objUser=$objOU.Create(«user»,»CN=ventas01″)
$objUser.Put(«sAMAccountName»,»ventas01″)
$objUser.Put(«userPrincipalName»,»ventas01″)
$objUser.SetInfo()
dsmod user «CN=ventas01,OU=ventas,OU=usuarios,DC=aic,DC=local» -disabled no

$objOU=[ADSI]»LDAP://OU=ventas,OU=usuarios,DC=aic,DC=local»
$objUser=$objOU.Create(«user»,»CN=ventas02″)
$objUser.Put(«sAMAccountName»,»ventas02″)
$objUser.Put(«userPrincipalName»,»ventas02″)
$objUser.SetInfo()
dsmod user «CN=ventas02,OU=ventas,OU=usuarios,DC=aic,DC=local» -disabled no

$objOU=[ADSI]»LDAP://OU=compras,OU=usuarios,DC=aic,DC=local»
$objUser=$objOU.Create(«user»,»CN=compras01″)
$objUser.Put(«sAMAccountName»,»compras01″)
$objUser.Put(«userPrincipalName»,»compras01″)
$objUser.SetInfo()
dsmod user «CN=compras01,OU=compras,OU=usuarios,DC=aic,DC=local» -disabled no

$objOU=[ADSI]»LDAP://OU=compras,OU=usuarios,DC=aic,DC=local»
$objUser=$objOU.Create(«user»,»CN=compras02″)
$objUser.Put(«sAMAccountName»,»compras02″)
$objUser.Put(«userPrincipalName»,»compras02″)
$objUser.SetInfo()
dsmod user «CN=compras02,OU=compras,OU=usuarios,DC=aic,DC=local» -disabled no

$objOU=[ADSI]»LDAP://OU=informatica,OU=usuarios,DC=aic,DC=local»
$objUser=$objOU.Create(«user»,»CN=infor01″)
$objUser.Put(«sAMAccountName»,»infor01″)
$objUser.Put(«userPrincipalName»,»infor01″)
$objUser.SetInfo()
dsmod user «CN=infor01,OU=informatica,OU=usuarios,DC=aic,DC=local» -disabled no

$objOU=[ADSI]»LDAP://OU=informatica,OU=usuarios,DC=aic,DC=local»
$objUser=$objOU.Create(«user»,»CN=infor02″)
$objUser.Put(«sAMAccountName»,»infor02″)
$objUser.Put(«userPrincipalName»,»infor02″)
$objUser.SetInfo()
dsmod user «CN=infor02,OU=informatica,OU=usuarios,DC=aic,DC=local» -disabled no

$objOU=[ADSI]»LDAP://OU=informatica,OU=usuarios,DC=aic,DC=local»
$objUser=$objOU.Create(«user»,»CN=infor03″)
$objUser.Put(«sAMAccountName»,»infor03″)
$objUser.Put(«userPrincipalName»,»infor03″)
$objUser.SetInfo()
dsmod user «CN=infor03,OU=informatica,OU=usuarios,DC=aic,DC=local» -disabled no

$objOU=[ADSI]»LDAP://OU=informatica,OU=usuarios,DC=aic,DC=local»
$objUser=$objOU.Create(«user»,»CN=infor04″)
$objUser.Put(«sAMAccountName»,»infor04″)
$objUser.Put(«userPrincipalName»,»infor04″)
$objUser.SetInfo()
dsmod user «CN=infor04,OU=informatica,OU=usuarios,DC=aic,DC=local» -disabled no

$objOU=[ADSI]»LDAP://OU=informatica,OU=usuarios,DC=aic,DC=local»
$objUser=$objOU.Create(«user»,»CN=infor05″)
$objUser.Put(«sAMAccountName»,»infor05″)
$objUser.Put(«userPrincipalName»,»infor05″)
$objUser.SetInfo()
dsmod user «CN=infor05,OU=informatica,OU=usuarios,DC=aic,DC=local» -disabled no

$objOU=[ADSI]»LDAP://OU=informatica,OU=usuarios,DC=aic,DC=local»
$objUser=$objOU.Create(«user»,»CN=infor06″)
$objUser.Put(«sAMAccountName»,»infor06″)
$objUser.Put(«userPrincipalName»,»infor06″)
$objUser.SetInfo()
dsmod user «CN=infor06,OU=informatica,OU=usuarios,DC=aic,DC=local» -disabled no

$objOU=[ADSI]»LDAP://OU=informatica,OU=usuarios,DC=aic,DC=local»
$objUser=$objOU.Create(«user»,»CN=infor07″)
$objUser.Put(«sAMAccountName»,»infor07″)
$objUser.Put(«userPrincipalName»,»infor07″)
$objUser.SetInfo()
dsmod user «CN=infor07,OU=informatica,OU=usuarios,DC=aic,DC=local» -disabled no

$objOU=[ADSI]»LDAP://OU=direccion,OU=usuarios,DC=aic,DC=local»
$objUser=$objOU.Create(«user»,»CN=director01″)
$objUser.Put(«sAMAccountName»,»director01″)
$objUser.Put(«userPrincipalName»,»director01″)
$objUser.SetInfo()
dsmod user «CN=director01,OU=direccion,OU=usuarios,DC=aic,DC=local» -disabled no


La salida en Powershell de el script anterior puede ser la siguiente:

plainfra-02

Ahora, ya tenemos lo necesario para empezar a trabajar y practicar con los grupos en Windows 2008.

Por lo que a mi entorno, ahora mismo lo tengo así:

plainfra-03

En cuanto al resto de dominios que tenemos que crear, ya los podeís ir creando y dentro de varios artículos, escribiré otro para configurarlos.

Por ahora es todo porque ya lo tenemos listo para empezar con los grupos y eso es lo que tocaremos en los próximos tutoriales sobre Windows Server 2008.

Hasta entonces.

—–

Oscar Abad

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

oscar
oscar

Programador WordPress freelance

Publicado en: powershell, scripts powershell, sistemas, tutoriales, windows server 2008 Etiquetado como: aprendeinformaticaconmigo, crear unidades organizativas, crear usuarios, directorio activo

25 junio, 2010 Por oscar Deja un comentario

Crear Unidades Organizativas con Windows Powershell

A la hora de intentar sacarle el mayor partido a Window Powershell, se me antojó que quería poder crear Unidades Organizativas con un script de Powershell.

Todavía no me he metido con Windows Powershell 2.0, pero lo haré pronto.

Este script es válido para las dos versiones.

Bueno, a lo que vamos… Para crear una Unidad Organizativa mediante Windows Powershell tenemos que realizar los pasos habituales que realizamos a la hora de crear cualquier otro objeto del Directorio Activo. Salvando las distancias, eso si.

En primer lugar guardaremos en una variable la conexión al dominio en el que crearemos la Unidad Organizativa. Os informo, por si no lo sabeis ya, que yo utilizo en dominio «aic.local».

$objDominio=[ADSI]»LDAP://DC=aic,DC=local»

A continuación guardaremos en otra variable el comando de creación de la unidad organizativa, de la siguiente forma:

$objOU=$objDominio.Create(«OrganizationalUnit»,»ou=prueba»)

Ahora, ya que estamos, incluiremos un comando para rellenar el campo «descripción» de la Unidad Organizativa.

objOU=Put(«description»,»Unidad Organizativa de prueba»)

Ahora, como siempre, ejecutamos el comando para que se apliquen los anteriores.

$objOU.SetInfo()

Ya está creada la nueva Unidad Organizativa «prueba».

En la captura siguiente podeis ver el script al completo:

creoupwsh-01

Para comprobar lo que acabamos de hacer, abrimos «Usuarios y Equipos de Active Directory»

creoupwsh-02

Hasta aquí llega este tutorial.

Nos vemos en el siguiente.

Saludos.

—–

Oscar Abad

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

oscar
oscar

Programador WordPress freelance

Publicado en: powershell, scripts powershell, sistemas Etiquetado como: aprendeinformaticaconmigo, crear ou, directorio activo, scripts

18 junio, 2010 Por oscar 2 comentarios

Conocer la version de Windows Powershell que tenemos instalada

Ya se que puede parecer una tontería, pero en alguna ocasión necesitaremos saber la versión de Windows Powershell que tenemos instalada en un equipo o servidor porque no sabemos qué versión es.

Para esto, basta con ejecutar el siguiente comando en una sesión de Windows Powershell:

get-host

El resultado debe ser parecido al que podemos ver en la siguiente captura de pantalla:

converpow-01

Sin nos fijamos, entre otros datos nos muestra el apartado Version a continuación la versión del Powershell que estamos ejecutando. En mi caso, como podéis observar, tengo la 2.0.

En las versiones de Windows Server 2008 R2 viene instalada por defecto esta versión. Ya veremos mas adelante cómo sacarle partido a esta versión.

Saludos.

—–

Oscar Abad

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

oscar
oscar

Programador WordPress freelance

Publicado en: powershell, sistemas Etiquetado como: aprendeinformaticaconmigo, cmdlets, get-host, windows powershell

26 abril, 2010 Por oscar Deja un comentario

Windows Server 2008 – Crear usuarios con Windows Powershell

En este artículo vamos a crear un usuario mediante Windows Powershell y para ello tendremos que seguir una serie de pasos que resumo a continuación:

1-. Conectar al contenedor, es decir a la OU donde crearemos el usuario (objeto).

2-. Ejecutar el comando «Create» del contenedor que hemos creado en el paso 1.

3-. Rellenar el objeto con los atributos que necesitemos utilizando el método «Put«.

4-. Hacer que se ejecuten los cambios en el Directory Activo con el método «SetInfo()» del objeto.

El usuario que vamos a crear será «Alberto Gutierrez» y lo crearemos en la OU «gente».

Ahora vamos a ir realizando cada uno de los pasos que he definido al comienzo.

1-. Conectar con la OU «gente».

Para ello, guardaremos la conexión en una variable que en este caso llamaremos: $objOU.

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

Del comando anterior entendemos que Windows Powershell utiliza el tipo de adaptador «Active Directory Services Interface» (ADSI) para comunicarse con los objetos del Directorio Activo.

También utiliza una consulta LDAP para conectar con el objeto del Directorio Activo.

En cuanto al resto del comando, creo que está bastante claro.

Bien, ahora tenemos una variable ($objOU) que contiene la conexión a la OU gente, es decir, $objOU es una referencia al objeto «gente».

2-. Ejecutar el comando «Create».

Una vez que tenemos la referencia a la OU deseada, utilizaremos el comando Create del contenedor.

El comando Create requiere dos parámetros pasados como argumentos. La clase del objeto y el RDN del mismo.

Recordar que el RDN en este caso sería: «CN=Alberto Gutierrez».

Por supuesto, la clase del objeto que queremos crear es «user».

Por consiguiente, construimos el comando:

$objUser=$objOU.Create(«user»,»CN=Alberto Gutierrez»)

Ya vemos que volvemos a guardarlo en otra variable, en este caso «$objUser».

Hasta aquí, podemos observar que todavía no hemos realizado ninguna modificación en el Directorio Activo porque por el momento estamos guardando los comandos o consultas en variables.

Siguiente paso…

3-. Rellenar el objeto con el método Put.

Ya sabremos que hay atributos que son obligatorios a la hora de crear un objeto de usuario. Bien, pues si no lo sabemos os lo digo yo ahora. El atributo requerido es el «pre-Windows 2000 logon name».

El nombre LDAP para este atributo es: «sAMAccoutName». Quedaros bien con el porque lo tendremos que utilizar siempre que vayamos a crear usuarios mediante Powershell.

A parte de éste atributo requerido, existen muchos otros, algunos de ellos son:

userPrincipalName

displayName

givenName

sn

description

company

department

title

mail

Ya os digo que hay muchos mas y si os interesan podéis indagar un poco en la ayuda o documentación de Windows Server 2008 para conocerlos.

Nosotros vamos a rellenar unas pocas propiedades.

$objUser.Put(«sAMAccountName», «agutierrez»)

$objUser.Put(«userPrincipalName», «agutierrez»)

$objUser.Put(«email», «agutierrez@aic.com»)

Con esto tenemos suficiente para empezar, pero si queremos conocer todas las propiedades que podemos utilizar, lo podemos hacer desde la propiedades de un usuario del Directorio Activo. Pestaña «Attribute Editor«.

creuspower01

Podemos ver en la captura anterior que en la columna de la izquierda aparecen los nombres de las propiedades y en la de la derecha el valor que tienen si es que tienen.

4-. Hacer que los cambios tengan efecto.

Para hacer esto, sólo tenemos que lanzar el comando SetInfo() del objeto, como el siguiente:

$objUser.SetInfo()

Este comando no tiene ningún secreto.

5-. Resumen.

A modo de resumen, a continuación tenéis todos los comando ejecutados durante el tutorial:

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

$objUser=$objOU.Create(«user»,»CN=Alberto Gutierrez»)

$objUser.Put(«sAMAccountName», «agutierrez»)

$objUser.Put(«userPrincipalName», «agutierrez»)

$objUser.Put(«email», «agutierrez@aic.com»)

$objUser.SetInfo()

creuspower03

creuspower04

Tened en cuenta que no recibiréis ningún tipo de mensaje cuando ejecutéis estos comandos.

creuspower02

Eso es todo. Os animo a que probéis con algunas de las propiedades que no hemos visto aquí.

En el siguiente tutorial explicaré resumidamente como realizar un script con estos comandos para que nos sea mas sencillo y mas rápido.

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: aprendeinformaticaconmigo, comandos, crear usuarios, directorio activo

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

19 noviembre, 2009 Por oscar 1 comentario

Guia de conversion de VBScript a Powershell

Investigando un poco por la web, me he encontrado con una «Guia de conversion de VBScript a Powershell«.

Esta en ingles, pero no es muy dificil entenderla para cualquiera de nosotros que ya controlamos el segundo, tercer o cuarto idioma (como es mi caso) a la perfeccion (esto ultimo es broma).

Bien, el caso es que todavia no he podido leerla toda, pero si que le he echado un vistazo y considero que puede ser de gran ayuda para todos aquellos que ya conocen y/o trabajan con VBScript y quieren hacerlo ahora con Windows Powershell. El caso es que si no sabemos como hacer un… por ejemplo… Select Case en Powershell pero si lo sabemos hacer con VBScript, esta es la guia que necesitamos.

Enlace para la descarga de «The VBScript-to-Windows PowerShell Conversion Guide».

Saludos.

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

oscar
oscar

Programador WordPress freelance

Publicado en: powershell, programacion, sistemas Etiquetado como: aprendeinformaticaconmigo, guia conversion, visual basic script, windows powershell

16 junio, 2009 Por oscar 1 comentario

Script Powershell: Informacion sobre la instalacion de un programa en un equipo remoto

Continuando con el ultimo script que nos habiamos currado en el que recibiamos la lista de software instalado en un equipo remoto en un fichero de texto, en esta ocasion vamos a hacer algo parecido pero diferente.

Lo que me hace falta a mi ahora es saber si un equipo tiene instalado el «ultravnc», por ejemplo. Nosotros vamos a hacer el ejemplo con el «ultravnc«.

Os pongo el script completo y luego explico lo que vea necesario:

#script: instaladoultravnc.ps1
#version: 1.0
#
#Autor: Oscar Abad
#Web: https://www.aprendeinformaticaconmigo.com
#Fecha: 7 de Abril de 2009
#
#Tipo: Powershell
#Funcion: Obtener en un fichero de texto el software instalado en un equipo remoto que
#coincida con «ultravnc».
#Parametros: Necesita un nombre de equipo como parametro de entrada.
#Uso: ./instaladoultravnc.ps1
#
Param($equipo) #parametro de entrada
$equipo > instaladoultravnc.txt
«—————-» >> instaladoultravnc.txt
$softinstalado = Get-WmiObject -class win32_product -computername $equipo | Where-Object {$_.Name -like «ultravnc*»}
$softinstalado >> instaladoultravnc.txt

————————————————-

Bueno, bueno… aqui tenemos un poco mas de faena.
Nos queda claro del script anterior que la linea de Param la utilizamos para pedir un parametro de entrada, un nombre de equipo.
La segunda linea:
$equipo > instaladoultravnc.txt
Lo que hace es crear un fichero de texto y si esta creado lo machaca. Escribe en este fichero el nombre del equipo del que hacemos la peticion.

La tercera linea no hace otra cosa que añadir mediante «>>» una serie de guiones al fichero, actua como separador. Es una chorrada, pero bueno…

La cuarta linea es la que tiene el contenido que nos interesa. Hacemos una consulta a la clase win32_product del equipo remoto, pero en este caso le decimos que nos guarde el la variable $softinstalado solo las entradas que coincidan con «ultravnc*«.

Se entiende ¿no?

Y en la ultima linea le decimos que guarde la infomacion de la variable en el fichero de texto.

Pues no tiene mas, asi es y asi se lo hemos contado.

Para cualquier duda, ya sabeis: comentario al canto.

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 Etiquetado como: aprendeinformaticaconmigo, remoto, scripts, software instalado, windows powershell

12 junio, 2009 Por oscar 11 comentarios

Script Powershell: software instalado en equipos remotos

Bueno, vamos a darle un poco mas de vidilla al tema de Powershell, que lo tenemos un poco parado.

En este caso, vamos a crear un script que nos va a generar un fichero de texto con la lista del software instalado en un equipo remoto. ¿a que mola?

Os pongo el script completo como lo tengo yo y luego explico un par de cosas.

#Script: Softinstaladoequipo.ps1
#Version: 1.0
#
#Autor: Oscar Abad Folgueira
#Web: https://www.aprendeinformaticaconmigo.com
#
#Tipo: Powershell
#Funcion: Obtener una lista en un fichero de texto de todo el software instalado en un equipo.
#Parametros: Necesita un nombre de equipo como parametro de entrada.
#Uso: ./softinstaladoequipo.ps1
#
#
Param($equipo) #parametro de entrada
$softinstalado = Get-WmiObject -class win32_Product -computername ‘$equipo’
$softinstalado > softwareinstalado.txt

———————————————————
Ya se que no es necesario decirlo, pero por si acaso os comento que todo lo que va detras del caracter almoadilla (#), es un comentario.

Por consiguiente, solo tenemos 3 lineas de codigo en el script.
La primera:
Param($equipo)
Ya sabreis del script anterior que esto nos sirve para indicar que nos hace falta un parametro para ejecutar el script. En este caso un nombre de equipo valido.

La seguna linea efectiva del script:

$softinstalado = Get-WmiObject -class win32_Product -computername ‘$equipo’

Gracias a Get-WmiObject, y a la clase win32_product, lo que hacemos es decirle que guarde en la variable $softinstalado, la informacion del software instalado en el equipo remoto «$equipo«.

Y la ultima linea:

$softinstalado > softwareinstalado.txt

Vuelca esa informacion en un fichero de texto para que podamos revisarlo con mas detenimiento.

Creo que es bastante sencillo pero de mucha utilidad.

La pega que parece tener este script, es que solo nos devuelve el software instalado en el equipo con MSI, pero no me hagais mucho caso. Podeis probar a sacar un listado del equipo local y posteriormente compararlo con la lista en «Agregar o quitar programas» del panel de control de Windows y vereis que hay diferencia.

Aun asi, a mi me hace un gran servicio.

Esto no va a quedar aqui ni mucho menos, en posteriores scripts,veremos como obtener la informacion de un programa en concreto y no toda la lista. Y si teneis paciencia, mas adelante desinstalaremos software remotamente. Como mola esto ¿que no?

Venga, de momento es todo por hoy. Lo probais y me comentais si os ha funcionado correctamente u os ha dado algun tipo de error.

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, remoto, scripts, software instalado, windows powershell

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

  • 1
  • 2
  • 3
  • 4
  • 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