Ir al contenido principal

Objetos en Windows PowerShell

Objetos en Windows Powershell


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.


Otros temas

Arreglos en Windows powershell

Que son los Arreglos en Windows PowerShell Para entender posteriores tutoriales y poderlos utilizar sabiendo que estamos haciendo vamos a hablar y sacarnos las principales dudas de los arreglos / array en Windows PowerShell. Podemos imaginarlo como una zona continua para almacenamiento de datos o un conjunto de variables una detrás de la otra, pero en realidad es algo más que eso, por lo cual veamos cómo se definen en general los arreglos tanto en programación como en Windows PowerShell. En Programación (En general) Es un espacio de memoria que permite almacenar una colección de elementos, todos del mismo tipo. En PowerShell Es una forma de almacenamiento de datos que permite que más de un elemento sea almacenado en una variable (No es necesario que los elementos sean del mismo tipo). Veámoslo en una imagen La siguiente imagen representa un espacio de memoria (o “cero” en la imagen) al cual se le puede asignar contenido de datos, luego de este espaci

Manejo de Variables en PowerShell

2 parte de Variables en Windows PowerShell Esta es la segunda parte del tutorial de donde vamos a ver un poco del manejo de las variables, como listarlas, eliminarlas y realizar algunas operaciones con ellas.  Como podemos ver todas las variables?   Tanto las que nosotros creamos como las que no la podemos listar con los siguientes comandos: Get-Variable o Dir   v ariable:    ("Dir" es un alias de Get-ChildItem) Otro ejemplo es  Dir   v ariable:  \prueb*  (Con esto listamos las variables que comiencen con los caracteres "prueb")   Con estos comandos podremos obtener una lista de todas las variables. Para obtener una lista de las variables de sistema podremos hacer esto Get-ChildItem  env:    (Lista de variables de entorno)   Por ejemplo: Windir, appdata, etc. Un punto a tener en cuenta al momento de crear una variable son es tas palabras que son de uso reservado y no se pueden utilizar como nombre de variables: Break continue do