Búsqueda de sitios web

Crear un bucle a través de una matriz usando el comando de PowerShell "ForEach" | Introducción básica | Parte 1#2


En el artículo actual, me gustaría ofrecer una introducción básica al concepto de "Matriz" y "Instrucción ForEach", en un entorno basado en PowerShell (especialmente en un entorno basado en Office 365 y Exchange Online).

Crear un bucle a través de una matriz usando la serie de artículos de PowerShell "ForEach"

Crear un bucle a través de una matriz Usando la serie de artículos de PowerShell "ForEach" incluye los siguientes artículos:

  1. Crear un bucle a través de una matriz usando el comando de PowerShell “ForEach” | Introducción básica | Parte 1#2 (este artículo)
  2. Crear un bucle a través de una matriz Usando la declaración y las variables “ForEach” | Entorno PowerShell| Parte 2#2

Bucle y matriz de PowerShell

La combinación de - Arrays y el proceso Loop (que se implementó mediante el uso de la “declaración ForEach” de PowerShell) es una herramienta muy poderosa que nos permite realizar una tarea administrativa masiva en múltiples objetos con “un clic”.

El "problema" (o el desafío si queremos usar una palabra más políticamente correcta) es que la mayoría de los administradores de Exchange u Office 365 tienen un poco de miedo ante el "monstruo de PowerShell", y especialmente el "escenario más complejo" en el que Es necesario utilizar un comando de PowerShell que incluya más de una línea.

La buena noticia es que si está dispuesto a invertir un poco de tiempo leyendo los dos artículos siguientes, descubrirá que los términos "matriz", proceso de bucle y "declaración ForEach" no dan tanto miedo. .

Después de que aprenda cómo “inscribir” estas herramientas, obtendrá una herramienta muy útil que podría mejorar y optimizar sus tareas administrativas diarias.

En términos generales, el concepto de "matriz" es relevante para cualquier lenguaje de programación o script, pero como se mencionó, en el artículo actual, los ejemplos están relacionados con el entorno de Office 365.

Qué aprender sobre las “matrices”

En el entorno PowerShell, utilizamos el concepto de “Arrays” muchas veces, lo sepamos o no. En caso de que queramos comprender mejor muchos de los ejemplos de sintaxis de comandos de PowerShell y utilizar "PowerShell" de manera efectiva, debemos tener una comprensión básica del concepto de "matrices".

¿Cuál es el significado de matriz?

Comencemos con una definición formal del término "matriz":

En informática, un tipo de matriz es un tipo de datos destinado a describir una colección de elementos (valores o variables), cada uno seleccionado por uno o más índices (claves de identificación) que el programa puede calcular en tiempo de ejecución. Esta colección suele denominarse variable de matriz, valor de matriz o simplemente matriz.

Por analogía con los conceptos matemáticos de vector y matriz, los tipos de matriz con uno y dos índices a menudo se denominan tipo vectorial y tipo matricial, respectivamente.

En palabras simples, el término "Matriz" define un grupo o una lista de "objetos" a los que podemos "abordar" o relacionarnos cuando usamos un comando de PowerShell.

El Array considera como una colección de objetos u otro término -colecciones de miembros.

En teoría, la matriz puede estar vacía o contener cero miembros, pero la mayoría de las veces usamos la "matriz" para agrupar o "vincular" uno o más "objetos".

La siguiente pregunta que puede surgir es: ¿qué son estos “objetos” o quiénes son estos “miembros”?

Los términos "objetos" o "miembro" son un término muy general que utilizamos para describir diferentes tipos de "entidades" que queremos abordar.

En el entorno basado en PowerShell, hay varios ejemplos del término "objetos".

Por ejemplo, un objeto puede considerarse como un buzón de Exchange, usuarios de Office 365, un proceso del sistema operativo o incluso una “fila” de un archivo.

Un Array puede contener el 100% de un tipo específico de objeto o un “subconjunto” de objetos específicos con un carácter específico o una propiedad específica.

Por ejemplo:

El comando de PowerShell Get-Mailbox obtendrá una lista de todos los buzones de correo de Exchange.

En otras palabras, podemos decir que el comando de PowerShell Get-Mailbox, crea un Array que contiene todos los objetos que se consideran “objeto de buzón”.

El siguiente comando de PowerShell obtendrá una lista de todos los buzones de correo de Exchange Online que se consideran "buzones de usuario".

Get-Mailbox | Where {$_.RecipientTypeDetails -eq "UserMailbox"}

En otras palabras, en este caso, el Array que se creó contiene solo un subconjunto específico o un "grupo" de buzones de Exchange, que tienen una propiedad específica RecipientTypeDetails y se consideran buzón de usuario..

Cómo se crea la matriz

Otra pregunta interesante que podemos hacer es: ¿cuáles son los métodos que podemos utilizar para crear una "matriz"?

Hay varias formas de "crear" una matriz.

  1. Usando el comando básico de PowerShell, por ejemplo, cada cmdlet de PowerShell que comienza con el prefijo Get, crea una matriz.
  2. La información almacenada en un archivo en un formato específico, como un archivo CSV, también puede considerarse una "matriz". Cuando necesitamos acceder a información almacenada en un archivo CSV, cada "fila" del archivo CSV se considerará "miembros de la matriz" y cada columna del archivo CSV se considerará una "propiedad de miembro".
  3. Uso de Grupo: aunque no solemos relacionarnos con un "Grupo" como una "Matriz", el Grupo es en realidad una matriz. Un "grupo" sirve como un contenedor lógico que contiene miembros del grupo, y esta es la definición exacta de Array.
  4. Escribir manualmente cada miembro: un método adicional para crear una "matriz" se implementa simplemente escribiendo manualmente cada uno de los miembros de la matriz. Por ejemplo, cuando asignamos permiso al buzón de un usuario específico, podemos asignar permisos para múltiples usuarios (Matriz). La creación del “Array” se implementa anotando, cada uno de los usuarios (miembros) separados por el carácter de coma.

Comando de PowerShell para crear matrices

En esta sección, me gustaría relacionarme con el prefijo de comando de PowerShell Get como uno de nuestros métodos principales para crear una "matriz".

Cada vez que ejecutamos un comando de PowerShell con el prefijo Get, le pedimos a PowerShell que cree una “Matriz”.

De forma predeterminada, el "contenido de la matriz" se mostrará mediante el comando de PowerShell en la consola de PowerShell, pero es importante enfatizar que la primera "acción" que implementa el comando de PowerShell es: almacenar los "datos de la matriz" en la RAM de la computadora. , y solo entonces, copiar la información a la consola de PowerShell.

Además de ver los “Datos del Array” en la consola de PowerShell, podemos usar la información del Array que está almacenada en la RAM y elegir qué queremos “hacer” con los datos.

Por ejemplo, podemos exportar la información de la matriz a un archivo, "canalizar" la información a otro comando de PowerShell, etc.

Un ejemplo, creación de una matriz usando el comando Get-Mailbox de PowerShell

La infraestructura de Exchange incluye docenas, incluso cientos, de diferentes tipos de objetos, como destinatarios, grupos, conectores, buzones de correo, etc.

Cuando utilizamos cmdlets de PowerShell como Get-Mailbox, solicitamos a Exchange Online que nos proporcione información sobre un tipo de objeto muy específico: "buzones de correo de Exchange".

Cuando escribimos en PowerShell Get-Mailbox y “presionamos” la tecla Enter, PowerShell automáticamente crea un “espacio de matriz” y “rellena” el almacén de matrices con información sobre todos los existentes. Buzones de correo de intercambio.

Un ejemplo adicional de creación de una matriz mediante PowerShell

Otro ejemplo de un Array que creamos usando un comando de PowerShell, puede ser un ejemplo en el que usamos el siguiente comando de PowerShell que crea una búsqueda filtrada como por ejemplo:

Get-User | Where {$_.Title -eq "Administrator"}

En este caso, “pedimos” a Exchange que nos proporcione una lista de todos los usuarios de Exchange (una serie de usuarios de Exchange Online), pero agregamos un filtro adicional, que incluye la condición de - “obtener información” solo si el título del usuario es - Administrador.

En el próximo artículo, analizaremos la creación de un bucle a través de una matriz utilizando la declaración y las variables "ForEach" | Entorno PowerShell| Parte 2#2.

Artículos relacionados