Was ist der Befehl Install-Module in Powershell?

8

Verschiedene Microsoft-Artikel beziehen sich auf den Powershell-Befehl Install-Module , aber ich kann keinen Verweis darauf finden, was dies tatsächlich ist, und es ist nicht sehr gut zum Googeln geeignet. Ich habe psget installiert, also habe ich seine Version von Install-Module ... aber ich denke, das ist nicht das Install-Modul, über das alle anderen sprechen.

Ah, ich habe dieses Install-Modul gefunden . Ist das ein anderer als der, den PsGet installiert? Wenn ja, sollte ich PsGet deinstallieren, damit ich zum Standard zurückkehren kann?

Rory
quelle
"Ist das ein anderer?" - Nein; Im Beispiel Install-Modulewird verwendet, um die zu installieren Azure Resource Manager. Install-Moduleselbst ist Teil von PowerShell 3.0 und Azure Resource Managerist Teil von PowerShell 5
Ramhound
Danke @Ramhound - Ich habe psget installiert, das einen Install-Module-Befehl hinzufügt. Ich gehe also davon aus, dass das mit PS gelieferte Install-Module überschrieben wurde.
Rory
Ich würde davon ausgehen, dass dies nicht garantiert ist, aber wenn das Modul selbst hinzugefügt wird, ist es eine sichere Sache.
Ramhound
Blog-Beitrag til.secretgeek.net/powershell/…
Tim Abell

Antworten:

18

Ich hatte zuvor PSGet installiert, das meine Version von überschrieben hatte Install-Module. Sie können dies überprüfen, indem Sie ausführen help install-moduleund sehen, auf welche Version es sich bezieht.

Ich konnte keine Deinstallationsdokumentation für PSGet finden und habe sie durch Löschen des Ordners entfernt C:\Users\Rory\Documents\WindowsPowerShell\Modules\PSGet. help install-moduleBezieht sich jetzt auf die Microsoft-Version.

Rory
quelle
1
Dies ist der richtige Weg, um ein Modul zu deinstallieren, wenn es keine Referenzen hat. PsGet hat standardmäßig keine, sollte also in Ordnung sein, nur um es zu entfernen.
Mike Chaliy
1
Sie müssen wahrscheinlich Ihr Powershell-Befehlsfenster neu starten, damit dies wirksam wird.
David White
1
Auf meinem Computer wurde psget unter C: \ Programme \ WindowsPowerShell \ Modules
dinnouti
9

Sie können den Konflikt umgehen, indem Sie dem Befehl den Modulnamen voranstellen :

PsGet installiert und im Weg:

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

unter Verwendung des qualifizierten Namens:

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>

Vielen Dank an http://windowsitpro.com/blog/dealing-cmdlet-name-conflicts

Modulname erhalten Sie beim Lesen der URL der Dokumentation - https://msdn.microsoft.com/powershell/reference/5.1/PowerShellGet/install-module

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

Tim Abell
quelle