Що таке команда інсталяції-модуля в Powershell?


8

Різні статті Microsoft відносяться до команди Powershell Установіть модуль , але я не можу знайти жодного посилання на те, що це насправді, і це не дуже підходить для googling. У мене є psget встановлено, тому у мене є версія 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.
Rory

Я припускаю, що це не гарантовано, але якщо сам модуль додає свою безпечну ставку.
Ramhound

повідомлення в блозі til.secretgeek.net/powershell/…
Tim Abell

Відповіді:


18

Я раніше встановлював PSGet які перезаписали мою версію Install-Module. Ви можете перевірити це, запустивши help install-module і перегляньте, на яку версію він посилається.

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


1
Це правильний спосіб видалити будь-який модуль, якщо він не має посилань. PsGet за замовчуванням не має жодного, тому має бути добре, тільки щоб видалити його.
Mike Chaliy

1
Ймовірно, вам знадобиться перезапустити вікно команди Powershell, щоб це діяло.
David White

1
На моєму комп'ютері psget було встановлено під C: Програмні файли Модулі WindowsPowerShell
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/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.