MARKETING NOTICIAS

Pruebas simples que pueden hacer que sus scripts de PowerShell sean más confiables

  Imagen de la pantalla de una computadora portátil con una interfaz de codificación.
¡Prueba tu código!

Los scripts de PowerShell pueden servir para cualquier número de propósitos. Entonces, no sorprende que sean una herramienta favorita para automatizar varias tareas de administración y mantenimiento. Aún así, las cosas a veces pueden salir mal. Incluso un guión bien escrito y probado a fondo a veces puede error debido a factores externos.

Por ejemplo, una secuencia de comandos puede producir un error porque no puede conectarse a un recurso de red. Afortunadamente, puedes incluya algunas verificaciones simples en sus scripts de PowerShell. Esto le ahorrará molestias y reducirá las posibilidades de errores externos.

En esta guía, lo guiaré a través 3 pruebas diferentes que puedes implementar en sus scripts de PowerShell. ¿Empezamos con el número 1?

1. Prueba del canal seguro

Muchos scripts de PowerShell realizan tareas de administración de Active Directory. Por ejemplo, puedes usar un script de PowerShell para configurar cuentas de Active Directory para nuevos usuarios automáticamente.

Por supuesto, lo más probable es que un script que realice actividades relacionadas con el dominio deba ejecutarse en un PC con una relación de confianza válida con un controlador de dominio. Esto es algo que puede probar en su secuencia de comandos de PowerShell.

El cmdlet que prueba una relación de confianza de dominio es Test-ComputerSecureChannel.

Este cmdlet devuelve un Valor booleano de True Si el relación de confianza funciona correctamente. Por el contrario, volverá Falso si la relación de confianza es defectuosa..

Artículo Recomendado:  Configuración y creación de un plan de prueba.

Consejo profesional

Si el canal seguro no funciona correctamente, también puede agregar el interruptor Reparar al comando. Eso obligará Windows para reparar el canal seguro entre la computadora y Active Directory. Puede ver un ejemplo de esto en la siguiente figura:

Captura de pantalla del cmdlet Test-ComputerSecureChannel.
Si es necesario, puede reparar el canal seguro.

Bien, entonces, ¿cómo usarías esto en un script de PowerShell? Puede combinar el cmdlet Test-ComputerSecureChannel con una instrucción If-Then. Tal declaración podría verse así:

$A=Probar-ComputerSecureChannel

If ($A -eq $True){Ejecutar-MiFunción} Else {Ejecutar-RepararFunción}

En el bloque de código anterior, estoy asignando el valor generado por la variable Test-ComputerSecureChannel a una variable llamada $A.

Si $A es $Verdadero, soy llamar a una función imaginaria llamado Run-MyFunction. Por el contrario, si es $False, estoy llamando a una función diferente llamada Run-RepairFunction. En el mundo real, es probable que Run-RepairFunction intentar reparar el canal seguro y pruébalo de nuevo.

Si la prueba tiene éxito, llamará a Run-MyFunction. Esto hará lo que el script quiera hacer.

Ahora que ha asegurado su canal, es el momento de probar su conexión a continuación.

2. Probar la conexión para un script de PowerShell confiable

A veces, desea que su secuencia de comandos de PowerShell realizar una acción en un sistema remoto. En ese caso, considere probando la conexión a ese sistema remoto antes de realizar cualquier acción.

En PowerShell, esta comprobación usará el cmdlet Test-Connection.

El cmdlet Test-Connection es el equivalente de PowerShell del comando PING. Eso envía paquetes ICMP al destino especificado. El único parámetro que necesita es el parámetro TargetName, el nombre del sistema remoto. Sin embargo, puede especificar varios objetivos.

Captura de pantalla del cmdlet Test-Connection.
El cmdlet Test-Connection es muy similar al comando PING.

A diferencia del cmdlet Test-ComputerSecureChannel, el cmdlet Test-Connection no devuelve un valor booleano con el que pueda probar. Puede diseñar un script de PowerShell para llamar a una función solo si la conexión es buena. Aquí hay un ejemplo:

Si (Test-Connection -TargetName DC.PoseyLab.com -Quiet) {Run-MyFunction}

En el comando anterior, el interruptor -Quiet impide los resultados de la prueba de aparecer en la pantalla. Si la prueba tiene éxito, el el comando llama a Run-MyFunction función.

Genial, ahora sus scripts de PowerShell pueden probar la seguridad y la conexión a diferentes canales. Pasemos a la prueba final.

3. Probando el camino

Otra prueba útil que puede realizar en un script de PowerShell es una prueba de ruta. Los scripts de PowerShell a veces usarán manipulación de cadenas para crear una ruta dinámicamente. Puede prueba para ver si esta ruta es válida antes de intentar escribir cualquier dato en él.

Pruebe la validez de sus rutas con el cmdlet Test-Path.

Por ejemplo, un script necesita escribir datos en C:\Data. Usted, como autor del script, puede almacenar la ruta en una variable y luego probarla con esta variable.

Captura de pantalla del cmdlet Test-Path
Compruebe si su carpeta existe con este cmdlet.

En la captura de pantalla anterior, una variable denominada $MyPath almacena la ruta C:\Data. Luego, el cmdlet Test-Path está averiguando si existe la ruta. En este caso, el cmdlet devolvió un valor de False. Eso significa el camino no existe.

Consejo profesional

Si este código existiera en una secuencia de comandos, puede usar el cmdlet New-Item para crear la carpeta sobre la marcha.

La línea de fondo

No tiene que incluir pruebas en sus scripts de PowerShell. Sin embargo, cuando usted evitar que PowerShell encuentre un error más a menudo, la confiabilidad de su script también mejorará. En esta guía, te mostré 3 pruebas diferentes puedes implementar.

La primera prueba le permite comprobar la relación de confianza de un canal. el segundo te ayuda comprobar la conexión. Finalmente, la última prueba. valida la existencia de tus caminos.

La implementación de estas pruebas en sus scripts de PowerShell ayudarte a ahorrar tiempo averiguar qué factores externos causaron un problema. ellos incluso reducir la probabilidad de errores en primer lugar.

¿Tiene más preguntas sobre las pruebas de script de PowerShell? Revisar la Preguntas más frecuentes y Recursos abajo.

Preguntas más frecuentes

Si falla una prueba de secuencia de comandos de PowerShell, ¿cómo puedo finalizar la secuencia de comandos?

Si una prueba falla, es mejor crear código en el script para remediar el error. De esa manera, el script puede ejecutarse según lo previsto. Termine la secuencia de comandos con el comando Salir si no puede solucionar el problema.

¿La prueba Test-MyConnection ofrece resultados fiables en todas las situaciones?

No necesariamente. Al igual que el comando PING, Test-MyConnection usa paquetes ICMP. En este caso, si el host de destino tiene un firewall que bloquea los paquetes ICMP, la prueba fallará incluso si la conexión es buena.

¿Cómo usaría el comando Salir para finalizar el script cuando falla una prueba?

Puede hacer esto de muchas maneras, pero la opción más fácil es incluir el comando Salir en una instrucción Else. Por ejemplo: If (Valor booleano) {Ejecutar-MiFunción} Else {Salir}. Como alternativa, también podría usar una tabla hash.

¿Se puede usar el cmdlet Test-Path para probar rutas definidas por variables de entorno?

Absolutamente. Suponga, por ejemplo, que desea verificar si un perfil de usuario es válido. Podría usar un comando como Test-Path $Profile -IsValid. El comando devolvería un valor de $True si el perfil especificado en la variable de entorno fuera válido.

¿PowerShell proporciona una forma de probar el registro?

Puede usar el cmdlet Test-Path para probar una ruta de registro, al igual que una ruta de almacenamiento. Simplemente agregue la ubicación del registro al parámetro -Path. El cmdlet Test-Path también devolverá un valor de $True si existe la ruta del registro.

Recursos

TechGenix: agregar mensajes de error personalizados a PowerShell

Obtenga información sobre cómo agregar mensajes de error personalizados a sus scripts de PowerShell aquí.

TechGenix: supresión de errores de PowerShell

Lea más sobre cómo suprimir los errores de PowerShell aquí.

TechGenix: Solución del error «Equipo no reconocido»

Descubra qué hacer si PowerShell produce un error de Término no reconocido aquí.

Microsoft: documentación del cmdlet Test-Path

Descubra la documentación de Microsoft para el cmdlet Test-Path aquí.

Microsoft: documentación del cmdlet Test-Connection

Encuentre la documentación de Microsoft para el cmdlet Test-Connection aquí.

Microsoft: documentación del cmdlet Test-ComputerSecureChannel

Lea la documentación de Microsoft para el cmdlet Test-ComputerSecureChannel aquí.

Artículo Recomendado:  ¿Cuáles son los mejores para su organización?

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba