Co to jest polecenie Install-Module w Powershell?

8

Różne artykuły Microsoftu odnoszą się do polecenia Powershell Install-Module , ale nie mogę znaleźć żadnego odniesienia do tego, co to właściwie jest i nie jest zbyt łatwo googlować. Mam zainstalowany Psget , więc mam jego wersję Install-Module ... ale myślę, że to nie jest moduł Install, o którym wszyscy mówią.

Ach, znalazłem ten moduł instalacyjny . Czy to jest inny niż ten, który instaluje PsGet? Jeśli tak, czy powinienem odinstalować PsGet, aby wrócić do domyślnego?

Rory
źródło
„Czy to inny?” - Nie; W tym przykładzie Install-Moduleużyto do instalacji Azure Resource Manager. Install-Modulesam jest częścią PowerShell 3.0 i Azure Resource Managerjest częścią PowerShell 5
Ramhound
Dzięki @Ramhound - Mam zainstalowany psget, który dodaje polecenie Install-Module, więc zakładam, że zastąpił on moduł Install dostarczany z PS.
Rory,
Zakładam, że nie jest to gwarantowane, ale jeśli sam moduł zostanie dodany, jest to bezpieczny zakład.
Ramhound,
post na blogu til.secretgeek.net/powershell/…
Tim Abell

Odpowiedzi:

18

Wcześniej zainstalowałem PSGet, który zastąpił moją wersję Install-Module. Możesz to sprawdzić, uruchamiając help install-modulei zobaczyć, której wersji dotyczy.

Nie mogłem znaleźć dokumentacji odinstalowania dla PSGet, więc usunąłem ją, usuwając folder C:\Users\Rory\Documents\WindowsPowerShell\Modules\PSGet. Teraz help install-moduleodnosi się do wersji Microsoft.

Rory
źródło
1
Jest to prawidłowy sposób odinstalowania dowolnego modułu, jeśli nie ma on referencji. PsGet domyślnie go nie ma, więc dobrze jest go usunąć.
Mike Chaliy,
1
Prawdopodobnie będziesz musiał ponownie uruchomić okno poleceń PowerShell, aby to zadziałało.
David White
1
Na moim komputerze psget został zainstalowany pod C: \ Program Files \ WindowsPowerShell \ Modules
dinnouti
9

Możesz obejść starcie, poprzedzając polecenie nazwą modułu :

PsGet został zainstalowany i przeszkadzał:

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

używając nazwy kwalifikowanej:

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>

Dzięki http://windowsitpro.com/blog/dealing-cmdlet-name-conflicts

Nazwa modułu uzyskana z odczytania adresu URL dokumentacji - https://msdn.microsoft.com/powershell/reference/5.1/PowerShellGet/install-module

Więcej informacji: https://andrwwatt.wordpress.com/2006/05/13/coping-with-a-powershell-naming-clash/

Tim Abell
źródło