Introducción a la Galería de PowerShell

La Galería de PowerShell es un repositorio de paquetes que contiene scripts, módulos y recursos DSC que puede descargar y aprovechar. Los cmdlets del módulo PowerShellGet se usan para instalar paquetes desde la Galería de PowerShell. No es necesario iniciar sesión para descargar los elementos de la Galería de PowerShell.

Nota

Es posible descargar un paquete desde la Galería de PowerShell directamente, pero este no es un enfoque recomendado. Para más información, vea Manual Package Download (Descargar paquete de forma manual).

Puede buscar paquetes en la Galería de PowerShell mediante el control de búsqueda en la página principal de la Galería de PowerShell, o examinando los módulos y scripts de la página de paquetes. También puede buscar paquetes de la Galería de PowerShell al ejecutar los cmdlets Find-Module, Find-DscResource y Find-Script, en función del tipo de paquete, con -Repository PSGallery.

Puede filtrar los resultados de la Galería mediante los siguientes parámetros:

  • Name
  • AllVersions
  • MinimumVersion
  • RequiredVersion
  • Etiqueta
  • Includes
  • DscResource
  • RoleCapability
  • Get-Help
  • Filtrar

Si solo le interesa detectar recursos de DSC específicos en la Galería, puede ejecutar el cmdlet Find-DscResource. Find-DscResource devuelve datos sobre los recursos de DSC contenidos en la Galería. Dado que los recursos de DSC siempre se entregan como parte de un módulo, debe ejecutar Install-Module para instalar dichos recursos de DSC.

Una vez identificado un paquete de su interés, tal vez quiera obtener más información. Puede hacerlo examinando la página específica de ese paquete en la Galería. En la página, podrá ver todos los metadatos cargados con el paquete. El autor del paquete es quien proporciona estos metadatos, que Microsoft no comprueba. El propietario del paquete está estrechamente ligado a la cuenta de la Galería que se usa para publicar el paquete, y es más confiable que el campo Autor.

Si cree que un paquete no se ha publicado de buena fe, haga clic en Notificar abuso en la página de ese paquete.

Si está ejecutando Find-Module o Find-Script, puede ver estos datos en el objeto PSGetModuleInfo devuelto. Por ejemplo, la ejecución de Find-Module -Name PSReadLine -Repository PSGallery |Get-Member devuelve datos en el módulo PSReadLine de la galería.

Se recomienda el proceso siguiente al descargar paquetes de la Galería de PowerShell:

Inspeccionar

Para descargar un paquete de la Galería para su inspección, ejecute el cmdlet Save-Module o Save-Script, en función del tipo de paquete. Esto le permite guardar el paquete localmente sin instalarlo e inspeccionar su contenido. Recuerde eliminar el paquete guardado manualmente.

Algunos de estos paquetes los crea Microsoft y otros los crea la comunidad de PowerShell. Microsoft recomienda que se revisen el contenido y el código de los paquetes de esta Galería antes de la instalación.

Si cree que un paquete no se ha publicado de buena fe, haga clic en Notificar abuso en la página de ese paquete.

Instalar

Para instalar un paquete desde la Galería para su uso, ejecute el cmdlet Install-Module o Install-Script, en función del tipo de paquete.

Install-Module instala el módulo en $env:ProgramFiles\WindowsPowerShell\Modules de manera predeterminada. Para ello es necesaria una cuenta de administrador. Si agrega el parámetro -Scope CurrentUser, el módulo se instala en $env:USERPROFILE\Documents\WindowsPowerShell\Modules.

Install-Script instala el script en $env:ProgramFiles\WindowsPowerShell\Scripts de manera predeterminada. Para ello es necesaria una cuenta de administrador. Si agrega el parámetro -Scope CurrentUser, el script se instala en $env:USERPROFILE\Documents\WindowsPowerShell\Scripts.

De forma predeterminada, Install-Module e Install-Script instalan la última versión de un paquete. Para instalar una versión anterior del paquete, agregue el parámetro -RequiredVersion.

Implementación

Para implementar un paquete desde la Galería de PowerShell en Azure Automation, haga clic en Azure Automation y luego en Implementar en Azure Automation en la página de detalles del paquete. Se le redirige al Portal de administración de Azure, donde deberá iniciar sesión con sus credenciales de la cuenta de Azure. Tenga en cuenta que, si se implementan paquetes con dependencias, se implementan todas las dependencias en Azure Automation. El botón Deploy to Azure Automation (Implementar en Azure Automation) se puede deshabilitar mediante la adición de la etiqueta AzureAutomationNotSupported a los metadatos del paquete.

Para obtener más información sobre Azure Automation, consulte la documentación de Azure Automation.

Para actualizar paquetes instalados desde la Galería de PowerShell, ejecute los cmdlets Update-Module o Update-Script. Cuando se ejecuta sin parámetros adicionales, Update-Module intenta actualizar todos los módulos instalados mediante la ejecución de Install-Module. Para actualizar módulos de forma selectiva, agregue el parámetro -Name.

Del mismo modo, cuando se ejecuta sin parámetros adicionales, Update-Script también intenta actualizar todos los scripts instalados mediante la ejecución de Install-Script. Para actualizar scripts de forma selectiva, agregue el parámetro -Name.

Para averiguar qué módulos ha instalado desde la Galería de PowerShell, ejecute el cmdlet Get-InstalledModule. Este comando enumera todos los módulos del sistema que se instalaron directamente desde la Galería de PowerShell.

Del mismo modo, para averiguar qué scripts ha instalado desde la Galería de PowerShell, ejecute el cmdlet Get-InstalledScript. Este comando enumera todos los scripts del sistema que se instalaron directamente desde la Galería de PowerShell.

En el Galería de PowerShell se usan los siguientes nombres de host.

  • psg-prod-eastus.azureedge.net: nombre de host de la red CDN
  • az818661.vo.msecnd.net: nombre de host de la red CDN
  • devopsgallerystorage.blob.core.windows.net: nombre de host de la cuenta de almacenamiento
  • *.powershellgallery.com: sitio web
  • go.microsoft.com: servicio de redireccionamiento

Estos nombres de host deben agregarse a las listas de permitidos que controlan el acceso desde la red.

Importante

A partir de abril de 2020, Galería de PowerShell ya no es compatible con las versiones 1.0 y 1.1 de Seguridad de la capa de transporte (TLS). Si no usa TLS 1.2 o una versión posterior, recibirá un error al intentar obtener acceso a Galería de PowerShell. Use el siguiente comando para asegurarse de que usa TLS 1.2:

[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12

Para más información, consulte el anuncio en el blog de PowerShell.