Suele pasar que, como hace tiempo que lo instalamos, ya no nos acordemos si la versión de Ubuntu que instalamos en nuestro ordenador o maquina virtual es 32 bits o 64 bits.

Pues bien, una manera sencilla de saberlo es ejecutar el siguiente comando en una terminal:

uname -m

Como respuestas a este comando tenemos las opciones:

i686 –> Quiere decir que tenemos instalada la version de 32 bits.

x86_64 –>  Tenemos instalada la version de 64 bits.

En la captura anterior podeis comprobar que yo tengo instalada la version de 64 bits.

Algo sencillo pero bastante util en ciertas ocasiones.

Saludos.

—–

Oscar Abad

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

octubre 22nd, 2010

Publicado el: Linux

Etiquetas: , , , , ,

5 Comments

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

abril 26th, 2010

Publicado el: powershell, sistemas, tutoriales, windows server 2008

Etiquetas: , , ,

Deja un comentario

Normalmente creamos los usuario, grupos, OUs, etc… mediante la interfaz gráfica que pone a nuestra disposición Windows Server 2008 pero no está de mas conocer otras maneras o técnicas para trabajar con el Directorio Activo mediante comandos escritos en la consola.

A modo de resumen os indico unos pocos y dejo el resto para que los mireis por vuestra cuenta.

  • dsadd –>  Crea un objeto en el directorio.
  • dsrm –>  Elimina un objeto, todos los objetos bajo un subarbol o ambos.
  • dsget –>  Devuelve los atributos especificados de un objeto.
  • dsmod –>  Modifica los atributos especificados de un objeto.
  • dsmove –> Mueve un objeto a otro contenedor u OU.
  • dsquery –>  Lleva a cabo una consulta basada en los parámetros que le indiquemos.

Después de este breve resumen, vamos a ver como utilizar el comando dsadd para añadir un usuario nuevo.

Crear usuarios con Dsadd

Como ya he comentado antes, el comando para crear objetos en el directorio es dsadd.

En este caso vamos a ver un ejemplo de cómo crear un usuario.

La forma común de este comando es:   dsadd user “User DN” parámetros.

Podéis probar el siguiente comando:

dsadd user “cn=Roberto Ruiz, ou=gente, dc=aic, dc=local” -samid roberto.ruiz -pwd * mustchpw yes -hmdir \\servidor01\perfiles\$username$\documentos

cmdsadp1-01

Si os fijais, nos pide que introduzcamos la contraseña 2 veces.

Ahora lo podemos comprobar en la interfaz gráfica, para estar seguros de que ha creado el usuario.

cmdsadp1-02

Y podemos ver algunas de las propiedades que hemos agregado con el comando:

cmdsadp1-03

El el comando que hemos utilizado, podemos observar varias propiedades:

-pwd * –>  con esto le decimos que nos pida la contraseña.

-mustchpwd yes –>  El usuario tendrá que cambiar la contraseña la primera vez que inicie sesión.

-hmdir –>  indicamos el directorio del usuario.

El comando dsadd user así como el resto de variantes como dsadd ou… podemos consultarlos mediante la ayuda de windows.

Os aconsejo que le echeis un vistazo a la ayuda porque estos comandos tienen mucho que ofrecernos.

Hasta aquí llega este tutorial, en el próximo veremos como eliminar un usuario mediante comandos.

Saludos.

—–

Oscar Abad

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

abril 16th, 2010

Publicado el: sistemas, tutoriales, windows server 2008

Etiquetas: , , ,

Un Comentario

En alguna ocasion puede sernos de utilidad el apagar una maquina virtual de un host ESX mediante comandos, por los motivos que sean.

desde la service console, el comando para apagar una maquina virtual es:

> vmware-cmd /vmfs/volumes/mv/mv.vmx  stop

y en el caso de que queramos reiniciarla:

>vmware-cmd /vmfs/volumes/mv/mv.vmx  reset

Venga, espero que os sirva en un momento dado.

A pasarlo bien!!

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

julio 28th, 2009

Publicado el: virtualizacion, vmware

Etiquetas: , , , , , ,

4 Comments

5.1- Tuberias o canalizacion.

Esto seguro que os suena a todos los que tengais algun conocimiento de linux, ¿que no?

Al igual que linux, Powershell permite combinar dos o mas comandos en uno solo. Tuberia o canalizacion, cualquiera de ellos nos sirve para entendernos.

Cuando se combinan comandos en una canalizacion, se pasan datos entre si en forma de objetos. El primer comando devuelve uno o mas objetos a traves de la canalizacion al segundo comando. El segundo comando procesa estos objetos y a continuacion pasa objetos nuevos o revisados al tercer comando. Este proceso continua hasta que se hayan ejecutado todos los comandos de la canalizacion.

Para encadenar comandos en una canalizacion, tenemos que especificar cada comando en el orden que tiene que ejecutarse. Los comandos los separamos entre si con el simbolo (“|” barra vertical). Los comandos se ejecutaran de izquierda a derecha.

Ejemplo 1:
>get-help * | get-help -detailed

El primer comando nos mostraria toda la ayuda, pero le pasamos el resultado al segundo comando y al final nos mostrara toda la ayuda, pero detallada. Ya se que no es un buen ejemplo pero como todavia no hemos visto otros cmdlets… No os preocupes que esto lo vamos a utilizar mucho a partir de ahora.

Ejemplo 2:

>get-command -verb set | get-help -examples

Si pensamos un poco con detenimiento vemos que el primer comando nos mostraria los comandos cuyo verbo fuese “set“. Vale, ahora le pasamos esta lista al segundo comando que hace que nos muestre la ayuda, pero solo el apartado “examples” de cada una.

Si juntamos todo esto tenemos que finalmente nos mostrara por pantalla el apartado “examples” de la ayuda solo de aquellos cmdlets cuyo verbo sea “set“.

5.2- Redireccion:

Redireccion de la salida desde Windows Powershell a archivos de texto.

De manera predeterminada, Powershell dirige la salida de comandos a la pantalla de Powershell. De todas formas, podemos modificar este comportamiento dirigiendo la salida a un archivo de texto.

Para hacer esto, tenemos que utilizar el simbolo “mayor que” (>) y el nombre del archivo al final.

Ejemplo 1:

>get-help -detailed get-command > c:\power\docs\get-command.txt

Esto comando crea un fichero de texto en la ruta especificada cuyo contenido es la ayuda del cmdlet get-command de Powershell.

Ahora podemos revisar el fichero todas las veces que queramos e incluso imprimirlo si es nuestro deseo.

Ejemplo 2:

>get-command -verb get > c:\power\listadoget.txt

Crea un fichero de texto cuyo contenido es el listado de todos los cmdlets de powershell cuyo verbo coincida con “get“.

5.3- Anexar:

Al redireccionar la salida a un fichero de texto, si este fichero ya existe, se eliminara lo que habia en el para introducir el nuevo texto que le enviamos.

Si no queremos hacer esto y lo que queremos es añadir nuevos datos al fichero, utilizaremos el simbolo “>>“. con esto la salida que le enviamos se añadira al final del fichero.

Ejemplo 1:

> get-command *file > c:\power\listadofile.txt

Con esto creamos un fichero de texto que contiene:

Ahora vamos a añadir a este fichero, otro listado:

>get-command *item >> c:\power\listadofile.txt

Y vemos el resultado en el fichero de texto:

Se nota el añadido, ¿no?

Bueno, pues por hoy ya hemos tenido bastante, otro dia mas…

A pasarlo bien!!

Otros articulos sobre Powershell:

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

marzo 29th, 2009

Publicado el: formacion, powershell, sistemas

Etiquetas: , , , , ,

Deja un comentario

La ayuda es muy importante en el mundo en el que nos movemos y Windows Powershell tiene un buen sistema de ayuda a la vez que sencillo.

Vamos a ver como obtener ayuda en este entorno.

3.1- El cmdlet get-help

El commmandlet que Powershell pone a nuestra disposicion para obtener ayuda es: “get-help“.

Si introducimos “get-help” en la consola de Powershell, nos mostrara un resumen de la utilizacion de este cmdlet.

Podemos probarlo:

Esto es un resumen del commandlet “get-help“, si queremos que la ayuda este un poco mas detallada utilizaremos el parametro “-detailed” de la siguiente forma:

> get-help -detailed

o

> get-help -detailed get-help

En el commandlet anterior podemos identificar tres partes. Primero el commandlet “get-help” que es el comando en si. Despues el parametro “-detailed” que lo que hace es modificar la salida de “get-help” y en este caso lo que hace es darnos una version de la ayuda mas detallada con informacion adicional. Añadiendo este parametro podemos obtener un resultado mas amplio que si no lo utilizamos.

Y despues de “-detailed” escribimos el argumento, que es de lo que queremos obtener ayuda. En este caso queremos obtener ayuda del cmdlet “get-help“. Si no lo ponemos nos dará ayuda de la ayuda, que es lo mismo.

Para comparar el resultado de “get-help” con y sin el parametro “-detailed” podemos hacer la prueba. Antes lo hemos hecho sin detailed, pues ahora lo vamos a hacer con el:

Observamos que en este ultimo caso, la ayuda es bastante mas completa. You suelo utilizar siempre el parametro “-detailed“.

Como ultima parte del commandlet “get-help” debemos añadir el cmdlet o concepto del que queremos ayuda. En el ejemplo que hemos visto antes, le hemos indicado que queriamos ayuda precisamente del comando “get-help” (get-help -detailed get-help“).

No, no me he equivocado. Ademas de poder obtener ayuda de los diferentes commandlets de Windows Powershell, tambien podemos hacerlo con conceptos diferentes a comandos. Por ejemplo, para obtener ayuda sobre los operadores aritmeticos en Windows Powershell  pondremos:

> Get-help about_arithmetic_operators

3.2- Parametros de Get-help.

Tenemos disponibles varios parametros para usar junto con el cmdlet “get-help”. Los mas insteresantes pueden ser:

-name <String>

Muestra ayuda sobre un tema conceptual o cmdlet que le especifiquemos. <String> representa el nombre de un cmdlet o un concepto. Se premite el uso de caracteres comodin. Este parametro es opcional, Esto quiere decir que si queremos indicarlo lo haremos y sino, pues no.

ejemplo:  get-help -name get-command (muestra ayuda del cmdlet “get-command

-detailed <SwitchParameter>

Este ya lo hemos visto antes. Muestra informacion adicional.

-examples <SwithcParameter>

Muestra unicamente el apartado de ejemplos de la ayuda de un cmdlet o concepto. Este apartado de la ayuda de Powershell es muy interesante a la vez que util.

ejemplo: get-help -examples get-help (muestra los ejemplos de la ayuda del cmdlet “get-help“)

-full <SwitchParameter>

Muestra la ayuda completa de un cmdlet.

Hay varios parametros mas diponibles pero para hacernos una idea nos vale de momento con estos. De todas formas, como ya he comentado antes, podemos obtener informacion sobre el comando “get-help” de la siguiente forma:  get-help -detailed get-help.

3.3- Otras formas de obtener ayuda.

En este apartado, solo comentar las funciones: help y man. Ya veremos mas adelante lo que son las funciones y los Alias, pero por ahora nos quedamos con que existen y si queremos podemos probarlas:

> man

> help

Tambien disponemos de ayuda en forma de ficheros de texto en el directorio en el que esta instalado Windows Powershell que normalmente es: %windir%\system32\windows powershell\1.0\

Ahora deberiamos tener un poco mas claro el tema de como obtener ayuda en Windows Powershell.

De todas formas, ya sabeis, si teneis alguna duda sobre este u otro tema que se trata en este blog, pedeis enviarme un e-mail a: oscar(arroba)aprendeinformaticaconmigo.com

Venga, a pasarlo bien y nos vemos en el proximo articulo.

Otros articulos sobre Powershell:

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

marzo 27th, 2009

Publicado el: formacion, powershell, sistemas, tutoriales

Etiquetas: , , ,

Deja un comentario

2.1 Esto me recuerda a algo…

A primera vista es inevitable pensar que “esto es igual que el CMD“…

En algunos aspectos esto es cierto. Podemos utilizar comando tipicos del “CMD” como por ejemplo “cd” para cambiar de directorio o “mkdir” para crear un directorio de la misma forma en que lo haríamos en el ya clasico “CMD“.

Ademas tenemos tambien disponibles utilidades mas “modernas” como “fsutil“.

Hay que decir que Powershell lo podemos utilizar de dos maneras diferentes. La primera es de forma “interactiva“. Esta forma es la que vamos a utilizar de momento y la otra ya la veremos mas adelante, cuando tengamos mas conocimientos. En este modo introducimos los comandos despues del prompt del sistema operativo.

Como va a ser costumbre a lo largo de esta serie de articulos sobre Powershell, los diferentes apartados los intentare completar con ejemplos que lo clarifiquen un poco mejor. Y para empezar con ellos que mejor que hacerlo desde el principio con unos ejemplos bien sencillos:

Ejemplo 1:

Listar el contenido del directorio en el que nos encontramos.

dir

En la imagen podemos ver la forma en que nos muestra la información de la carpeta.

Ejemplo 2:

Posicionarnos en el directorio raiz del disco c: (si es que no estamos ya en el).

cd \

En este caso, si no dejamos espacio entre “cd” y la barra invertida (\), no dara un error.

Osea que recordad que debemos dejar un espacio.

Ejemplo 3:

Crear el directorio “power“.

mkdir power

Ejemplo 4:

Hacer un listado del directorio raiz de c:, pero esta vez se lo indicaremos.

dir c:\

Ahora podemos observar que está creado el directorio “power“.

Ejemplo 5:

Cambiar al directorio “power“.

cd power

Si queremos, podemos hacer otro listado del directorio actual y ver el resultado.

Como conclusion de este apartado sacamos que es muy parecido en aspecto al “CMD“, pero ya vermos que le podemos dar muchas mas funcionalidad que a este.

2.2 Command Completion:

Como podeis observar, el titulo de este apartado esta en ingles, no por nada, simplemente por que no se como traducirlo exactamente. Podriamos llamarlo: “completando comandos” o “finalizando comandos“, pero bueno, seguro que vais a entender bien la explicacion que voy a dar al respecto y os va a quedar muy claro.

Una caracteristica importante de la linea de comandos es esta (tab-completion). Esto nos permite introducir un comando parcialmente y pulsar la tecla “tabulador” para que Powershell intente completar el resto del comando.

A parte de poder utilizar esta caracteristica con los comandos de Powershell, tambien podemos utilizarla con ficheros. Si introducimos el comienzo de un fichero y pulsamos la tecla “tabulador“, Powershell completara el comando hasta donde pueda. Digo hasta donde pueda porque es bastante normal que tengamos varios ficheros cuyo nombre comience de la misma manera. En este caso, Powershell nos completaria hasta el ultimo caracter antes de la coincidencia.

Podemos pulsar la tecla “tabulador” mas veces para que nos vaya mostrando las diferentes opciones que tenemos hasta que coincida con la que nosotros necesitamos.

La mejor forma de entender esto es haciendo. Manos a la obra…

Ejemplo 6:

Abrimos Windows Powershell y tecleamos “get-“.

A continuacion pulsamos la tecla “tab” una vez y nos percatamos que ahora nos muestra: “Get-Acl“.

Si pulsamos nuevamente la tecla “tab” nos mostrara: “Get-Alias“.

Y si lo hacemos por tercera vez: “Get-AuthenticodeSignature“.

Bueno, y asi todas las entradas que coincidan en que su comienzo se “get-“. Al llegar al ultimo comando y volver a pulsar “tab“, volvera a empezar por el principio.

Os animo a que probeis por vuestra cuenta ya que es algo que utilizaremos mucho y cuanto antes nos acostumbremos a esta caracteristica, mejor que mejor.

2.3 Historial de comandos introducidos:

Otra caracteristica muy util que incorpora “Windows Powershell 1.0” es el “historial de comandos“.

El historial de comandos, por si no lo sabes ya, es una lista de los comandos que hemos ido introduciendo en la sesion actual de “Windows Powershell“. Imaginaos que teneis que volver a ejecutar un comando que sabeis que habeis introducido hace poco y quereis volver a introducirlo, sino completamente igual, moficiando algun parametro o argurmento. Para esto nos va a venir muy bien lo que voy a explicar a continuacion.

Si hemos introducido en la sesion actual algun que otro comando, podemos pulsar la tecla “flecha arriba“  para nos muestre el comando que acabamos de introducir. Si pulsamos varias veces mas nos ira mostrando los anteriores.

Si encontramos el que nos interesa y queremos volver a ejecutarlo “tal cual“, simplemente pulsamos “Intro“. Si por el contrario tenemos que modificar algun parametro o argumento, basta con hacerlo moviendonos por el comando con las teclas “flecha izquierda” y “flecha derecha“, borrar lo que no nos interesa e introducir lo que queremos añadir en el lugar adecuado y pulsar “Intro”.

F7.

Si pulsamos F7 nos abrira un “pop-up” en la ventana de Powershell en la que podemos ver una lista de los ultimos comandos instroducidos en la sesion actual. Para movernos por esta lista utilizaremos las teclas “flecha arriba” y “flecha abajo“.

Una vez posicionados en el comando que nos interesa, pulsamos “intro“.

Get-History

Todavia no hemos visto los commandlets de Powershell, pero como encaja en este apartado, no puedo dejar de mencionar este, aunque ya lo veremos en profundidad mas adelante.

Ahora vale simplemente con que sepamos lo que hace. Y lo que hace es mostrarnos la lista de los ultimos 32 comandos introducidos en la sesion actual. En los ejemplos que pondre mas adelante seguro que os queda mas claro, pero ya os digo que lo veremos en profundidad en otro articulo posterior. Para comprobar lo que hace, basta con introducir “get-history” en la linea de comandos de Powershell.

2.4 Formato de los comandos en Powershell.

En todo shell que nos podamos encontrar, los comandos tienes un formato especifico para que puedan ser interpretados correctamente. Y claro, Powershell no iva a ser diferente.

Como ya comente en el articulo anterior, los comandos en Powershell se llaman “cmdlets” (commandlets).

Normalmente un commandlet consiste en tres partes, aunque yo voy a añadir una cuarta:

  1. Un verbo.
  2. Un nombre.
  3. Uno o varios parametros (opcional).
  4. Uno o varios argumentos (opcional).

El verbo y el nombre estan separados por el caracter “guion” (-) y los parametros y argumentos por el caracter “espacio“. mas o menos podria quedar así:

verbo-nombre -parametro1 argumento1 -parametro2 argumento2

Espero que se vea bien, pero no os preocupeis que a medida que avancemos, entenderemos mejor todo este asunto.

Como ejemplos:

get-history

Nos muestra un lista de los ultimos comandos ejecutados (por defecto 32).

get-history -count 10

Este nos muestra los ultimos 10 comandos introducidos en la sesion actual. Podemos observar que en este caso hemos introducido el parametro “-count” y el argumento 10.

get-history 7

Muestra solo el comando numero 7, el que tiene el ID 7. Como ya he dicho antes, hay parametros que se asumen por defecto y auque no los escribamos en la consola, es como si lo hicieramos.

El comando anterior podria haberse escrito:

get-history -id 7

Y el resultado seria el mismo.

Para hacernos una idea, creo que es suficiente por ahora. Ya tendremos tiempo mas adelante de ajecutar commandlets mas complejos.

Seguro que os habeis dado cuenta, pero por si acaso os lo comento yo. El uso de mayusculas y minusculas es indiferente. Da igual que igual da.

————————————–

Venga, por ahora ya tenemos para practicarnos un poco con esto. Probad lo que hemos visto y si teneis alguna duda me la comantais, a ver si yo os puedo ayudar.

A pasarlo bien!!

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

marzo 12th, 2009

Publicado el: formacion, powershell, sistemas, tutoriales

Etiquetas: , , ,

9 Comments