Búsqueda de sitios web

Herramientas de lanzamiento de PowerShell 6.0


Como debes saber, la próxima versión de PowerShell es de código abierto y multiplataforma. Podrá ejecutar PowerShell v6 en Windows, Mac y distribuciones seleccionadas de Linux. Todo el código está actualmente en alfa y alojado en el repositorio de PowerShell GitHub. Aquí también es donde puedes descargar nuevas compilaciones para instalarlas y probarlas. Admito que estoy un poco atrasado y parte de eso se debe a que no reviso a menudo si hay un nuevo lanzamiento. Así que construí un módulo de PowerShell que hará eso por mí e incluso descargará nuevos paquetes de instalación. La mejor parte es que esto debería funcionar en varias plataformas.

Mi módulo, llamado PSReleaseTools, tiene actualmente 3 comandos.

  • Get-PSReleaseSummary
  • Obtener-PSReleaseAsset
  • Guardar-PSRelease

Todas las funciones aprovechan la API de GitHub que, en combinación con Invoke-RestMethod o Invoke-WebRequest, le permiten interactuar mediante programación con GitHub.

El primer comando consulta la página de lanzamiento del repositorio de PowerShell y construye un resumen de texto.

Puse el nombre del lanzamiento y la fecha en la parte superior para que puedas verificar rápidamente si necesitas descargar algo nuevo. En GitHub, cada archivo de versión se denomina activo. El comando Get-PSReleaseAsset consultará a GitHub sobre cada archivo y escribirá un objeto personalizado en la canalización.

De forma predeterminada, mostrará recursos para todas las plataformas, pero agregué un parámetro -Family si desea limitarse a una sola entrada como MacOS.

Por supuesto, querrás descargar estos archivos, que es el trabajo del último comando. De forma predeterminada, el comando guardará todos los archivos en el directorio actual a menos que especifique una ruta diferente. Puede limitar la selección a una plataforma específica mediante el parámetro -Name que utiliza un conjunto de validación.

Puede seleccionar varios nombres. Si selecciona solo nombres de Windows, entonces hay un parámetro dinámico llamado Formato donde puede seleccionar ZIP o MSI. Y el comando admite -WhatIf.

También me di cuenta de que podrías ejecutar Get-PSReleaseAsset, quizás para examinar los detalles antes de descargar. Ya que tienes esos objetos, ¿por qué no poder canalizarlos al comando de guardar? El comando tiene parámetros de nombre de archivo, tamaño y URL que aceptan entradas de canalización por nombre de propiedad para que pueda canalizar de esta manera:

Por cierto, estoy usando el tamaño del archivo para probar si el archivo se descargó por completo. Sé que hay hashes en la página de lanzamiento, pero no tuve ganas de intentar analizarlos y no puedo encontrarlos en ningún otro lugar. Usar Tamaño parece funcionar bien.

Ahora tengo todo lo que necesito para estar al tanto de las últimas versiones de PowerShell v6. También tengo informes de que esto funciona en sistemas que no son Windows y que ejecutan los bits alfa v6. Puede encontrar el módulo en GitHub en https://github.com/jdhitsolutions/PSReleaseTools. Pruébalo en todas partes y cuéntame cómo te va. Utilice el seguimiento de problemas en GitHub.

Actualización: Bueno, eso no tomó mucho tiempo. El módulo ahora está en la Galería de PowerShell para que pueda instalarlo desde allí.

Install-Module PSReleasetools

Hice un cambio significativo y fue cambiar el nombre de la función de guardar para usar el mismo nombre que Get-PSReleaseAsset en aras de la coherencia. Debería haberlo hecho antes. Esto se recomienda especialmente cuando se pasa de un comando a otro. Mientras trabajaba en el comando de guardar, comencé por una ruta y luego me di cuenta de que podía incluir otra, por lo que el comando cambió un poco y no me molesté en cambiarle el nombre. Deberíamos estar bien ahora. Déjame saber cómo te funciona.

Artículos relacionados