¿Qué es el comando Install-Module en Powershell?

8

Varios artículos de Microsoft se refieren al comando Instalar módulo de Powershell , pero no puedo encontrar ninguna referencia a lo que realmente es y no es muy susceptible de buscar en Google. Tengo psget instalado, así que tengo su versión de Install-Module ... pero creo que ese no es el Install-Module del que todos los demás están hablando.

Ah, encontré este Módulo de instalación . ¿Es diferente al que instala PsGet? Si es así, ¿debo desinstalar PsGet para volver al predeterminado?

Rory
fuente
"¿Es una diferente?" - No; En el ejemplo Install-Modulese utiliza para instalar el Azure Resource Manager. Install-Moduleen sí es parte de PowerShell 3.0 y Azure Resource Manageres parte de PowerShell 5
Ramhound
Gracias @Ramhound: tengo instalado psget que agrega un comando Install-Module, así que supongo que se ha sobrescrito el Install-Module que viene con PS.
Rory
Supongo que no está garantizado, pero si se agrega el módulo en sí, es una apuesta segura.
Ramhound
publicación de blog til.secretgeek.net/powershell/…
Tim Abell

Respuestas:

18

Anteriormente había instalado PSGet, que había sobrescrito mi versión de Install-Module. Puede verificar esto ejecutando help install-moduley ver a qué versión se refiere.

No pude encontrar la documentación de desinstalación para PSGet, así que la eliminé eliminando la carpeta C:\Users\Rory\Documents\WindowsPowerShell\Modules\PSGet. Ahora se help install-modulerefiere a la versión de microsoft.

Rory
fuente
1
Esta es la forma correcta de desinstalar cualquier módulo si no tiene referencias. PsGet por defecto no tiene ninguno, por lo que debería estar bien solo para eliminarlo.
Mike Chaliy
1
Probablemente necesitará reiniciar la ventana de comandos de Powershell para que esto surta efecto.
David White
1
En mi computadora, psget se instaló en C: \ Archivos de programa \ WindowsPowerShell \ Modules
dinnouti
9

Puede evitar el choque prefijando el comando con el nombre del módulo :

PsGet instalado y obstaculizando:

C:\repos> install-module csproj
Module csproj was not found in central repository
At C:\Users\Administrator\Documents\WindowsPowerShell\Modules\PsGet\PsGet.psm1:694 char:13
+             throw "Module $Module was not found in central repository ...
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (Module csproj w...tral repository:String) [], RuntimeException
    + FullyQualifiedErrorId : Module csproj was not found in central repository

usando el nombre calificado:

C:\repos> powershellget\install-module csproj

Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running
the Set-PSRepository cmdlet. Are you sure you want to install the modules from 'PSGallery'?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): y
C:\repos>

Gracias a http://windowsitpro.com/blog/dealing-cmdlet-name-conflicts

Nombre del módulo obtenido al leer la url de la documentación: https://msdn.microsoft.com/powershell/reference/5.1/PowerShellGet/install-module

Más información: https://andrwwatt.wordpress.com/2006/05/13/coping-with-a-powershell-naming-clash/

Tim Abell
fuente