O que é o comando Install-Module no Powershell?

8

Vários artigos da Microsoft se referem ao comando Powershell Install-Module , mas não consigo encontrar nenhuma referência ao que realmente é e não é muito passível de pesquisar no Google. Eu tenho o psget instalado, então tenho a sua versão do Install-Module ... mas acho que esse não é o Install-Module que todo mundo está falando.

Ah, eu encontrei este módulo de instalação . É diferente daquele que o PsGet instala? Em caso afirmativo, devo desinstalar o PsGet para voltar ao padrão?

Rory
fonte
"Isso é diferente?" - Não; No exemplo Install-Moduleé usado para instalar o Azure Resource Manager. Install-Moduleem si é parte de PowerShell 3.0 e Azure Resource Manageré parte de PowerShell 5
Ramhound
Obrigado @ Ramhound - Eu instalei o psget que adiciona um comando Install-Module, então suponho que ele tenha sobrescrito o Install-Module que acompanha o PS.
Rory #
Eu diria que, não garantido, mas se o próprio módulo for adicionado, é uma aposta segura.
Ramhound #
publicação no blog til.secretgeek.net/powershell/…
Tim Abell

Respostas:

18

Eu já havia instalado o PSGet, que substituiu minha versão do Install-Module. Você pode verificar isso executando help install-modulee ver a qual versão ele se refere.

Não consegui encontrar a documentação de desinstalação para o PSGet, então a removi excluindo a pasta C:\Users\Rory\Documents\WindowsPowerShell\Modules\PSGet. Agora help install-modulese refere à versão da microsoft.

Rory
fonte
11
Esta é a maneira correta de desinstalar qualquer módulo se ele não tiver referências. O PsGet, por padrão, não possui nenhum, portanto, tudo bem apenas para removê-lo.
Mike Chaliy
11
Você provavelmente precisará reiniciar a janela de comando do Powershell para que isso entre em vigor.
David White
11
Tn meu computador, psget foi instalado em C: \ Program Files \ WindowsPowerShell \ Módulos
dinnouti
9

Você pode solucionar o conflito prefixando o comando com o nome do módulo :

PsGet instalado e atrapalhando:

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 o nome qualificado:

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>

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

Nome do módulo obtido com a leitura do URL da documentação - https://msdn.microsoft.com/powershell/reference/5.1/PowerShellGet/install-module

Mais informações: https://andrwwatt.wordpress.com/2006/05/13/coping-with-a-powershell-naming-clash/

Tim Abell
fonte