Uso de declaraciones en PowerShell

Uso De Declaraciones En Powershell



PowerShell es un shell de línea de comandos robusto y un lenguaje de secuencias de comandos que se utiliza principalmente para controlar sistemas informáticos y automatizar tareas administrativas. El uso de declaraciones es uno de los fundamentos más cruciales de PowerShell. En particular, el “ usando ” juega un papel crucial en la gestión de recursos y garantiza la ejecución eficiente del código.

Este artículo explorará varios aspectos de la declaración 'usando' en PowerShell, incluida su sintaxis, propósito y aplicaciones prácticas.







Propósito de la declaración de 'uso'

La declaración 'usando' le permite especificar qué espacios de nombres se utilizan en la sesión. Al agregar espacios de nombres, puede importar clases de módulos y ensamblajes de secuencias de comandos y simplificar el uso de clases y miembros de .NET.



DEBERES de 'usar' Declaración

  • La instrucción 'usando' debe aparecer antes que cualquier otra instrucción de secuencia de comandos o módulo. No puede estar precedido por declaraciones no comentadas, incluidos los parámetros.
  • Cualquier variable no debe estar presente en la declaración 'usando'.
  • La declaración 'usando' no debe confundirse con el modificador de alcance 'usando:' para variables. Ambos son diferentes en su propósito y significado.

Sintaxis de la instrucción 'usando'



La sintaxis de la declaración 'usando' es:





usando el espacio de nombres < .NET-espacio de nombres >

 

Repasemos el siguiente ejemplo:



usando el espacio de nombres System.IO

$Bytes = [ Archivo ] ::ReadAllBytes ( 'D:\c sharp\Linuxhint1.txt' )
[ Información del archivo ] ::nuevo ( 'D:\c sharp\Linuxhint1.txt' )

 

En el código anterior, primero designamos el espacio de nombres 'System.IO'. La segunda línea del programa, [File]::ReadAllBytes('D:c sharpLinuxhint1.txt'), lee cada byte del archivo proporcionado y los coloca en la variable $Bytes. En la tercera línea, [FileInfo]::new('D:c sharpLinuxhint1.txt') crea una nueva instancia de la clase FileInfo y devuelve el objeto FileInfo.

Declaración 'usando' para módulos

También podemos utilizar la declaración 'usando' para cargar clases de un módulo.

Sintaxis

utilizando el módulo < Nombre del módulo >

 

En esta sintaxis, el “”, una especificación completa del módulo o una ruta a un archivo del módulo se puede utilizar como valor para el “nombre del módulo”.

Puede usar una ruta completa o relativa cuando 'nombre-módulo>' es una ruta. Cuando una instrucción 'usando' está presente en una secuencia de comandos, se resuelve una ruta relativa en esa secuencia de comandos.

PowerShell busca el módulo proporcionado en PSModulePath cuando “” es un nombre o una especificación de módulo. Las siguientes claves componen la tabla hash que es una especificación de módulo:

Nombre del módulo - Requerido. Nombra el módulo en cuestión.

GUID opcional – especifica el GUID del módulo.

Además, debe especificar una de las tres claves enumeradas a continuación.

Versión del módulo – Se especifica una versión mínima permitida del módulo a través de la propiedad 'ModuleVersion'.

Versión máxima – Define la versión más alta permitida del módulo.

Versión requerida – Determina la versión precisa y necesaria del módulo utilizando 'RequiredVersion'. Las otras claves de versión no se pueden usar con esto.

El módulo raíz (ModuleToProcess) de un módulo binario o un módulo de secuencia de comandos se importa mediante la declaración del módulo 'usando'. Las clases especificadas en módulos anidados o secuencias de comandos que tienen un punto de origen en el módulo no se importan de forma fiable. Cualquier clase que desee que esté disponible para los usuarios fuera del módulo debe especificarse en el módulo raíz.

Aquí hay un ejemplo:

utilizando el módulo PSReadline

 

Declaración 'usando' para ensamblar

La declaración 'usando' también se puede usar para precargar tipos desde un ensamblado .NET.

Sintaxis

usando ensamblaje < Ruta de ensamblaje de .NET >

 

En esta sintaxis, cuando se carga un ensamblado, los tipos .NET de ese ensamblado se cargan previamente en el script antes de analizarlo. Como resultado, es posible desarrollar nuevas clases de PowerShell que utilicen los tipos de ensamblaje precargados.

Mire un ejemplo de la aplicación de la declaración 'usando' con un 'ensamblado':

usando el ensamblado System.Windows.Forms

 

En este comando, hemos cargado el ensamblado “ Sistema.Windows.Forms” en PowerShell usando la declaración 'usando'.

Declaración de 'uso' para claves de tabla hash

tablas hash ” son estructuras de datos adaptables que se usan en PowerShell para una variedad de propósitos, incluido el almacenamiento de datos de configuración, el suministro de argumentos a los cmdlets y el almacenamiento de datos en scripts.

El hash criptográfico para la cadena ' Linux¡Pista! ” se obtiene a través del siguiente script:

usando el espacio de nombres System.Text
usando el espacio de nombres System.IO [ cadena ] $cadena = '¡Pista de Linux!'
[ cadena ] $ algoritmo = 'SHA1'

[ byte [ ] ] $stringbytes = [ Codificación Unicode ] ::Unicode.GetBytes ( $cadena )

[ Arroyo ] $ flujo de memoria = [ Flujo de memoria ] ::nuevo ( $stringbytes )
$hashfromstream = Obtener FileHash -Flujo de entrada $ flujo de memoria `
  -Algoritmo $ algoritmo
$hashfromstream .Hash.ToString ( )

 

El código de PowerShell anterior comienza con la importación de los espacios de nombres necesarios para las operaciones y la codificación de archivos. La cadena de entrada y el algoritmo hash (en este caso “ SHA1 ”), entonces se definen. La cadena de entrada luego se codifica usando “ Unicode ” para crear una matriz de bytes.

El contenido de la matriz de bytes se usa luego para construir un ' flujo de memoria ”. El valor hash del flujo de memoria se calcula utilizando el algoritmo 'SHA1' provisto por el ' Obtener FileHash cmdlet. El script termina imprimiendo el valor hash obtenido como una cadena en la salida.

Producción

Conclusión

El ' usando ” en PowerShell es una poderosa herramienta para especificar espacios de nombres, módulos o ensamblajes. Su sintaxis y propósito brindan un enfoque estandarizado y seguro para manejar recursos, facilitando la eliminación adecuada y reduciendo la duplicación de código.