Apa perintah Instal-Modul di Powershell?

8

Berbagai artikel Microsoft merujuk pada perintah Install-Module Powershell , tetapi saya tidak dapat menemukan referensi apa ini sebenarnya dan itu tidak terlalu bisa diterima oleh googling. Saya telah menginstal psget , jadi saya memiliki versi Install-Module ... tapi saya pikir itu bukan Install-Module yang dibicarakan orang lain.

Ah, saya menemukan Modul Instalasi ini . Apakah itu berbeda dari yang dipasang PsGet? Jika demikian, haruskah saya menghapus PsGet, jadi saya kembali ke default?

Rory
sumber
"Apakah itu berbeda?" - Tidak; Dalam contoh Install-Moduleini digunakan untuk menginstal Azure Resource Manager. Install-Modulesendiri adalah bagian dari PowerShell 3.0 dan Azure Resource Managermerupakan bagian dari PowerShell 5
Ramhound
Terima kasih @Ramhound - Saya telah menginstal psget yang menambahkan perintah Install-Module, jadi saya menganggap itu ditimpa Install-Module yang datang dengan PS.
Rory
Saya akan berasumsi bahwa, tidak dijamin, tetapi jika modul itu sendiri ditambahkan dengan taruhan yang aman.
Ramhound
posting blog til.secretgeek.net/powershell/…
Tim Abell

Jawaban:

18

Saya sebelumnya telah menginstal PSGet yang telah menimpa versi saya Install-Module. Anda dapat memeriksa ini dengan menjalankan help install-moduledan melihat versi yang dimaksud.

Saya tidak dapat menemukan dokumentasi uninstall untuk PSGet jadi saya menghapusnya dengan menghapus folder C:\Users\Rory\Documents\WindowsPowerShell\Modules\PSGet. Sekarang help install-modulemerujuk ke versi microsoft.

Rory
sumber
1
Ini adalah cara yang benar untuk menghapus modul apa pun jika tidak memiliki referensi. PsGet secara default tidak memiliki, jadi harus baik-baik saja hanya untuk menghapusnya.
Mike Chaliy
1
Anda mungkin perlu me-restart jendela perintah Powershell Anda agar ini berlaku.
David White
1
Di komputer saya, psget diinstal di bawah C: \ Program Files \ WindowsPowerShell \ Modul
dinnouti
9

Anda dapat mengatasi clash dengan mengawali perintah dengan nama modul :

PsGet terinstal dan menghalangi:

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

menggunakan nama yang memenuhi syarat:

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>

Terima kasih kepada http://windowsitpro.com/blog/dealing-cmdlet-name-conflicts

Nama modul diperoleh dari membaca url dokumentasi - https://msdn.microsoft.com/powershell/reference/5.1/PowerShellGet/install-module

Info lebih lanjut: https://andrwwatt.wordpress.com/2006/05/13/coping-with-a-powershell-naming-clash/

Tim Abell
sumber