Instalación de PowerShellGet

PowerShellGet es un módulo incluido en las versiones siguientes

Antes de actualizar PowerShellGet, siempre debe instalar el proveedor de NuGet más reciente. En una sesión de PowerShell con privilegios elevados, ejecute el comando siguiente.

Install-PackageProvider -Name NuGet -Force

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.

En sistemas con PowerShell 5.0 (o posterior), puede instalar el módulo PowerShellGet más reciente

Para instalar PowerShellGet en Windows 10, Windows Server 2016, cualquier sistema con WMF 5.0 o 5.1 instalado o cualquier sistema con PowerShell 6, ejecute los comandos siguientes desde una sesión de PowerShell con privilegios elevados.

Install-Module -Name PowerShellGet -Force

Use Update-Module para obtener las versiones más recientes.

Update-Module -Name PowerShellGet
Exit

Para equipos que ejecutan PowerShell 3.0 o PowerShell 4.0

Estas instrucciones se aplican a los equipos que tienen instalada la versión preliminar de PackageManagement o que no tienen ninguna versión de PowerShellGet instalada.

El cmdlet Save-Module se usa en ambos conjuntos de instrucciones. Save-Module descarga y guarda un módulo y las dependencias de un repositorio registrado. La versión más reciente del módulo se guarda en una ruta de acceso especificada en el equipo local, pero no está instalada. Para instalar módulos en PowerShell 3.0 o 4.0, copie las carpetas guardadas del módulo en cuestión en $env:ProgramFiles\WindowsPowerShell\Modules.

Para obtener más información, vea Save-Module.

Nota

Tanto PowerShell 3 0 como PowerShell 4.0 solo admiten una versión de un módulo. A partir de PowerShell 5.0, los módulos se instalan en <modulename>\<version>. Esto permite instalar varias versiones en paralelo. Después de descargar el módulo mediante Save-Module, debe copiar los archivos de <modulename>\<version> en la carpeta <modulename> de la máquina de destino, como se muestra en las instrucciones siguientes.

Paso preparatorio en equipos que ejecutan PowerShell 3.0

Las instrucciones de las secciones siguientes indican cómo instalar los módulos en el directorio $env:ProgramFiles\WindowsPowerShell\Modules. En PowerShell 3.0, este directorio no aparece en $env:PSModulePath de forma predeterminada, por lo que deberá agregarlo para que los módulos se carguen automáticamente.

Abra una sesión de PowerShell con privilegios elevados y ejecute el siguiente comando (surtirá efecto en sesiones futuras):

[Environment]::SetEnvironmentVariable(
  'PSModulePath',
  ((([Environment]::GetEnvironmentVariable('PSModulePath', 'Machine') -split ';') + "$env:ProgramFiles\WindowsPowerShell\Modules") -join ';'),
  'Machine'
)

Equipos con la versión preliminar de PackageManagement instalada.

Nota

La versión preliminar de PackageManagement era un componente descargable que hacía que PowerShellGet estuviera disponible para las versiones 3 y 4 de PowerShell, pero ya no está disponible. Para probar si se instaló en un equipo determinado, ejecute Get-Module -ListAvailable PowerShellGet.

  1. En una sesión de PowerShell, use Save-Module para descargar la versión actual de PowerShellGet. Se descargan dos carpetas: PowerShellGet y PackageManagement. Cada carpeta contiene una subcarpeta con un número de versión.

    Save-Module -Name PowerShellGet -Path C:\LocalFolder -Repository PSGallery
    
  2. Asegúrese de que los módulos PowerShellGet y PackageManagement no estén cargados en ningún otro proceso.

  3. Vuelva a abrir la consola de PowerShell con permisos elevados y, luego, ejecute los siguientes comandos.

    'PowerShellGet', 'PackageManagement' | % {
      $targetDir = "$env:ProgramFiles\WindowsPowerShell\Modules\$_"
      Remove-Item $targetDir\* -Recurse -Force
      Copy-Item C:\LocalFolder\$_\*\* $targetDir\ -Recurse -Force
    }
    

Equipos sin PowerShellGet

En el caso de los equipos que no tienen instalada ninguna versión de PowerShellGet (compruébelo con Get-Module -ListAvailable PowerShellGet), se necesita un equipo con PowerShellGet para descargar los módulos.

  1. En el equipo en el que se ha instalado PowerShellGet, use Save-Module para descargar la versión actual de PowerShellGet. Se descargan dos carpetas: PowerShellGet y PackageManagement. Cada carpeta contiene una subcarpeta con un número de versión.

    Save-Module -Name PowerShellGet -Path C:\LocalFolder -Repository PSGallery
    
  2. Copie la subcarpeta <version> correspondiente de las carpetas PowerShellGet y PackageManagement en el equipo que no tiene PowerShellGet instalado, en las carpetas $env:ProgramFiles\WindowsPowerShell\Modules\PowerShellGet\ y $env:ProgramFiles\WindowsPowerShell\Modules\PackageManagement\ respectivamente, para lo que se necesita una sesión con permisos elevados.

  3. Por ejemplo, si puede acceder a la carpeta de descarga en el otro equipo (por ejemplo, ws1), en el equipo de destino, abra una consola de PowerShell a través de una ruta de acceso UNC (por ejemplo, \\ws1\C$\LocalFolder) con permisos elevados y ejecute el siguiente comando:

    'PowerShellGet', 'PackageManagement' | % {
      $targetDir = "$env:ProgramFiles\WindowsPowerShell\Modules\$_"
      $null = New-Item -Type Directory -Force $targetDir
      $fromComputer = 'ws1'  # Specify the name of the other computer here.
      Copy-Item \\$fromComputer\C$\LocalFolder\$_\*\* $targetDir -Recurse -Force
      if (-not (Get-ChildItem $targetDir)) { Throw "Copying failed." }
    }