Cos'è il comando Install-Module in Powershell?


8

Vari articoli Microsoft fanno riferimento al comando Install-Module di Powershell , ma non riesco a trovare alcun riferimento a ciò che è in realtà e non è molto suscettibile di cercare su Google. Ho psget installato, quindi ho la sua versione del modulo di installazione ... ma penso che non sia il modulo di installazione di cui parlano tutti gli altri.

Ah, ho trovato questo modulo di installazione . È diverso da quello installato da PsGet? In tal caso dovrei disinstallare PsGet in modo da tornare a quello predefinito?


"È diverso?" - No; Nell'esempio Install-Moduleviene utilizzato per installare il file Azure Resource Manager. Install-Modulestesso fa parte di PowerShell 3.0 e Azure Resource Managerfa parte di PowerShell 5
Ramhound,

Grazie @Ramhound - Ho psget installato che aggiunge un comando Install-Module, quindi suppongo che sia stato sovrascritto il Install-Module fornito con PS.
Rory,

Suppongo che, non garantito, ma se si aggiunge il modulo stesso è una scommessa sicura.
Ramhound,

Risposte:


18

In precedenza avevo installato PSGet che aveva sovrascritto la mia versione di Install-Module. Puoi verificarlo eseguendo help install-modulee vedi a quale versione fa riferimento.

Non sono riuscito a trovare la documentazione di disinstallazione per PSGet, quindi l'ho rimossa eliminando la cartella C:\Users\Rory\Documents\WindowsPowerShell\Modules\PSGet. Ora si help install-moduleriferisce alla versione di Microsoft.


1
Questo è il modo corretto di disinstallare qualsiasi modulo se non ha riferimenti. PsGet di default non ne ha, quindi dovrebbe andare bene solo per rimuoverlo.
Mike Chaliy,

1
Sarà probabilmente necessario riavviare la finestra dei comandi di Powershell affinché ciò abbia effetto.
David White,

1
Nel mio computer, psget è stato installato in C: \ Programmi \ WindowsPowerShell \ Modules
dinnouti

9

Puoi aggirare lo scontro aggiungendo il comando al nome del modulo :

PsGet è installato e si mette in mezzo:

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 il nome qualificato:

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>

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

Nome del modulo ottenuto dalla lettura dell'URL della documentazione - https://msdn.microsoft.com/powershell/reference/5.1/PowerShellGet/install-module

Maggiori informazioni: https://andrwwatt.wordpress.com/2006/05/13/coping-with-a-powershell-naming-clash/

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.