Что такое команда Install-Module в Powershell?

8

Различные статьи Microsoft ссылаются на команду Install-Module команды Powershell , но я не могу найти никаких ссылок на то, что это на самом деле, и это не очень поддается поиску в Google. У меня установлен psget , поэтому у меня есть его версия Install-Module ... но я думаю, что это не тот Install-Module, о котором все остальные говорят.

Ах, я нашел этот Install-Module . Это отличается от того, который устанавливает PsGet? Если так, я должен удалить PsGet, чтобы я вернулся к стандартному?

Рори
источник
"Это другой?" - нет; В примере Install-Moduleиспользуется для установки Azure Resource Manager. Install-Moduleсам является частью PowerShell 3.0 и Azure Resource Managerявляется частью PowerShell 5
Ramhound
Спасибо @Ramhound - у меня установлен psget, который добавляет команду Install-Module, поэтому я предполагаю, что это перезаписывает Install-Module, который поставляется с PS.
Рори
Я бы предположил, что не гарантировано, но если сам модуль добавлен, его безопасная ставка.
Ramhound
сообщение в блоге til.secretgeek.net/powershell/…
Тим

Ответы:

18

Я ранее установил PSGet, который переписал мою версию Install-Module. Вы можете проверить это, запустив help install-moduleи увидев, к какой версии он относится.

Я не смог найти документацию по удалению PSGet, поэтому удалил ее, удалив папку C:\Users\Rory\Documents\WindowsPowerShell\Modules\PSGet. Теперь help install-moduleотносится к версии Microsoft.

Рори
источник
1
Это правильный способ удалить любой модуль, если у него нет ссылок. PsGet по умолчанию не имеет, поэтому должно быть просто удалить его.
Майк Чалий
1
Возможно, вам придется перезапустить командное окно Powershell, чтобы это вступило в силу.
Дэвид Уайт
1
На моем компьютере psget был установлен в C: \ Program Files \ WindowsPowerShell \ Modules
dinnouti
9

Вы можете обойти конфликт, добавив префикс команды к имени модуля :

PsGet установлен и мешает:

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

используя полное имя:

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>

Благодаря http://windowsitpro.com/blog/dealing-cmdlet-name-conflicts

Имя модуля, полученное из чтения URL документации - https://msdn.microsoft.com/powershell/reference/5.1/PowerShellGet/install-module

Дополнительная информация: https://andrwwatt.wordpress.com/2006/05/13/coping-with-a-powershell-naming-clash/

Тим Абелл
источник