Cómo usar funciones en PowerShell

Cómo usar funciones en PowerShell
Si quieres usar Guiones de PowerShell y comandos En diferentes escenarios, puedes transformarlos en reutilizable funciones. PowerShell tiene mucha flexibilidad en términos de cómo representa el código en un script.

Si busca escribir cientos de líneas de códigos en un solo bloque de código, entonces no es el método adecuado porque generalmente es difícil leer un gran bloque de código. Puede dividirlo en pequeñas funciones para que el programa sea más comprensible, organizado y reutilizable.

¿Qué es una función en PowerShell??

En PowerShell, un función es una colección de código con entrada y salida opcionales. Es la formación de una secuencia de instrucciones para ejecutar una o muchas veces simplemente invocándolo en lugar de copiarlo repetidamente. La función mejora la legibilidad y la usabilidad de su código sustancialmente, lo que hace que sea mucho más fácil lidiar con el código repetido.

Toma parámetros como valores de entrada y devuelve asignados a algunas variables, con otras funciones, o cmdlets como entrada o se muestra como una salida en la pantalla. En lugar de repetir el código, la función se puede llamar tantas veces como sea necesario después de ser definido en el script. En PowerShell, hay dos tipos de funciones: básico y avanzado.

Funciones básicas en PowerShell

La forma más simple de una función que podemos crear en PowerShell se llama "básico" función. Estas funciones no utilizan ninguna de las características incorporadas. Un conjunto de aparatos ortopédicos se usa para definir el cuerpo de la función. Al trabajar con las funciones de PowerShell, la opción más fácil para los administradores es usar funciones básicas porque estas funciones no tienen características heredadas. Debe definir todos los flujos de error en el código de su función explícitamente.

Funciones avanzadas en PowerShell

Funciones avanzadas tienen las mismas propiedades que las funciones básicas, pero incluyen características adicionales que las funciones básicas no tienen. Por ejemplo, PowerShell contiene corrientes como detallado, advertencia, depuración, error, etc. Estas transmisiones son esenciales para mostrar la salida con precisión.

Creación de funciones básicas en PowerShell

Ahora, verificaremos el método para crear funciones básicas en PowerShell. Para esto, abra tu Windows PowerShell ISE y crear un nuevo archivo.

El palabra clave de función se usa para declarar una función en PowerShell, seguido de la nombre de la función y aparatos ortopédicos. El código o el cuerpo de la función se encuentra dentro de esos aparatos ortopédicos .

Función Get-Version
$ Psversiontable.Psonía

Ejecutaremos esto "Get-versionFunción en el momento de ejecución. Ahora, guarde el guión como "TestFile1.PS1"Y ejecutarlo.

En el terminal de PowerShell, llame a la función creada usando su nombre.

> Get-Versión

Le mostrará la siguiente salida:

A medida que la función se carga en la memoria de su sistema, puede ver funciones en la función psdrive. Para esto, use el "Get-Childitem"Comando para verificar los elementos infantiles de la función psdrive. Aquí el "-CaminoSe utiliza la opción para especificar la ruta de la función psdrive.

> Función Get-ChildItem -Path: \ get-*versión

Desde la sesión actual, puede eliminar la función definida utilizando el "Remover el artículo" dominio. Ejecutar el comando otorgado a continuación para este propósito.

> Get-ChildItem -Path Función: \ Get-*Versión | Remover el artículo

Use el operador de tubería ["|"] Para que el comando abastezca los elementos secundarios de la función psdrive a la"Remover el artículo" dominio. Entonces el "Remover el artículo"Cmdlet eliminará las funciones creadas de la sesión.

Para verificar la eliminación de la función, invoca el "Get-version" función. Le mostrará la siguiente salida:

Parámetro de funciones en PowerShell

Ahora, escribiremos una función que consulte todos los comandos de un sistema y devuelva el número de comandos con ciertos nombres de parámetros. Si desea hacerlo, ejecute el script otorgado en su PowerShell:

función get-mrparameterCount
Param (
[String []] $ Parametername
)
foreach ($ parámetro en $ parametername)
$ Resultados = get -command -parametername $ parámetro -ErrorActionLentIleContinue
[pScustomObject]@
Parametername = $ parámetro
NumberOfcmdlets = $ Resultados.Contar


Ahora, invocamos el "Get-MrParameterCount"Con los parámetros:

ComputerName, computadora, nombre de servidor, host y máquina:

> Get -MrParameterCount --Parametername ComputerName, Computer, ServerName, Host, Machine

Creación de funciones avanzadas en PowerShell

Es realmente fácil convertir una función básica de PowerShell en una función avanzada. Las funciones avanzadas cuentan con varios parámetros comunes que se agregan automáticamente a la función. Ahora, convertiremos la función básica definida en la sección anterior en una función avanzada:

Función Test-MrParameter
Param (
$ ComputerName
)
Descripción-salida $ ComputerName

Observe que el "Mrrparámetro"La función no tiene un parámetro común. Los parámetros comunes se pueden ver de diferentes maneras. Un método es usar "Al Command" con el "-Sintaxis"Opción para mirar la sintaxis:

> Get -Command -Name Test -MrParameter -Syntax

Para que la función sea una función avanzada, agregue "Cmdletbinding":

función test-mrcmdletbinding
[Cmdletbinding ()] #<<-- This turns a regular function into an advanced function
Param (
$ ComputerName
)
Descripción-salida $ ComputerName

Nuevamente, puede verificar la sintaxis y los parámetros de esta función avanzada ejecutando los comandos dados a continuación:

> Get-command -name test-mrcmdletbinding -syntax> (get-command -name test-mrcmdletbinding).Parámetros.Llaves

Conclusión

Puede dividir el código en bloques de construcción separados utilizando Funciones en PowerShell. No solo lo ayudan a romper su código en piezas más pequeñas y más manejables, sino que también lo empujan a producir un código probable y legible.

Las funciones también mejoran sustancialmente la legibilidad y la usabilidad de su código, lo que hace que sea mucho más fácil lidiar con el código repetido. Este artículo le muestra algunos métodos para usar funciones en Potencia Shell, incluidos los básicos y avanzados.