Los Objetos en Windows PowerShell
Vamos a
empezar aclarando algunos conceptos básicos para poder entender más a
fondo este tema. Primero ¿Que
son los Objetos o que entendemos cuando decimos que algo es un objeto?
Una definición que podría darse
es la siguiente: El objeto es algo sobre lo cual actúa el sujeto,
está sometido a la acción de éste, y puede ser material, cuando se puede ver y
tocar, o ser un objeto inmaterial si solo existente como idea.
En programación es
algo similar y se debe aclarar que un objeto no es un dato simple (o dato
plano), sino que contiene en su interior cierto número de
componentes bien estructurados.
Cada objeto
no es un ente aislado, sino que forma parte de una organización jerárquica o de
otro tipo.
Un objeto es una pieza de
software única que posee ciertas características (atributos o
propiedades) y un comportamiento u operaciones previamente determinadas
(métodos o funciones).Aclaremos esto:
- Atributos: estos
son los datos que caracterizan al objeto. Son variables que almacenan
datos relacionados al estado de un objeto.
- Métodos: son
todas las acciones que el objeto puede realizar por sí mismo. Estas
operaciones hacen posible que el objeto responda a las solicitudes
externas
- Identidad: El
objeto tiene una identidad, que lo distingue de otros objetos, sin
considerar su estado.
Con todo lo dicho en los tutoriales
anteriores recordemos lo siguiente:
Windows Powershell trabaja con objetos y
todo lo devuelto por un Cmdlet siempre será un objeto. Esto nos dará algunas
ventajas y una nueva forma de trabajar con nuestros scripts. Veamos:
Los objetos
se podrán manipular directamente o enviarse a otras herramientas
o inclusive a bases de datos.
El resultado de un CmdLet podrá ser
introducido en otro comando sin programación adicional. A esto se lo conoce
como canalización.
Canalización, se hace con el símbolo “|”
(pipe).
Ya hemos usado un poco
de canalización en este curso veamos el siguiente ejemplo:
$Variable | Format-Table
En este
caso estamos mostrando el contenido de una variable en formato
tabla. También podremos hacer más canalizaciones, por ejemplo ordenar
el contenido de la variable antes de darle el formato
$Variable | Sort-Object ParametroOrdenar | Format-Table
Para
poder ver métodos, propiedades y demás miembros de un Objeto en PowerShell
haremos uso del cmdlet Get-Member. Este desplegara una lista con todos los
miembros que componen el objeto. Podremos usarlo de la siguiente manera.
$Variable | Get-Member
Nombre-CmdLet | Get-Member
Para el
segundo ejemplo puede ser:
Get-Service | Get-Member
Get-Process | Get-Member
Acceso
directo a los miembros (ya sean métodos o propiedades), se hace con el “.”
(Punto).
$Variable.Metodo()
$Variable.Propiedad
$Variable.Propiedad1.Propiedad2.Propiedad3
Si quisiéramos hacer
lo mismo pero usando un CmdLet no podriamos en primera instancia, pero con el
uso del paréntesis “()” podemos tratar a un CmdLet o un
conjunto de CmdLet como un objeto.
(Get-Process).Metodo()
(Get-Process).Propiedad
(Get-Process).Propiedad1.Propiedad2.Propiedad3
Ahora
les dejo con el vídeo, que les aviso, es extenso pero bastante completo, y
aclara muchas dudas que pueden surgir.