Lệnh Install-Module trong Powershell là gì?


8

Các bài viết khác nhau của Microsoft đề cập đến lệnh Powershell Install-Module , nhưng tôi không thể tìm thấy bất kỳ tài liệu tham khảo nào về việc này thực sự là gì và nó không thể chấp nhận được. Tôi đã cài đặt psget , vì vậy tôi có phiên bản Mô-đun cài đặt ... nhưng tôi nghĩ đó không phải là Mô-đun cài đặt mà mọi người khác đang nói đến.

Ah, tôi tìm thấy Module cài đặt này . Đây có phải là một cái khác với cái mà PsGet cài đặt không? Nếu vậy tôi có nên gỡ cài đặt PsGet để tôi quay lại mặc định không?


"Có phải đó là một cái khác không?" - Không; Trong ví dụ Install-Moduleđược sử dụng để cài đặt Azure Resource Manager. Install-Modulebản thân nó là một phần của PowerShell 3.0 và Azure Resource Managerlà một phần của PowerShell 5
Ramhound

Cảm ơn @Ramhound - Tôi đã cài đặt psget có thêm lệnh Cài đặt Mô-đun, vì vậy tôi cho rằng điều đó đã ghi đè Mô-đun Cài đặt đi kèm với PS.
Rory

Tôi sẽ cho rằng, không được bảo đảm, nhưng nếu chính mô-đun được thêm vào thì đặt cược an toàn.
Ramhound

Câu trả lời:


18

Trước đây tôi đã cài đặt PSGet đã ghi đè lên phiên bản của tôi Install-Module. Bạn có thể kiểm tra điều này bằng cách chạy help install-modulevà xem phiên bản mà nó đề cập đến.

Tôi không thể tìm thấy tài liệu gỡ cài đặt cho PSGet vì vậy tôi đã xóa nó bằng cách xóa thư mục C:\Users\Rory\Documents\WindowsPowerShell\Modules\PSGet. Bây giờ help install-moduleđề cập đến phiên bản microsoft.


1
Đây là cách chính xác để gỡ cài đặt bất kỳ mô-đun nào nếu nó không có tài liệu tham khảo. PsGet theo mặc định không có bất kỳ, vì vậy sẽ tốt thôi nếu gỡ bỏ nó.
Mike Chaliy

1
Bạn có thể sẽ cần phải khởi động lại cửa sổ lệnh Powershell để điều này có hiệu lực.
David White

1
Trong máy tính của tôi, psget đã được cài đặt trong C: \ Program Files \ WindowsPowerShell \ Modules
dinnouti 16/2/18

9

Bạn có thể làm việc xung quanh xung đột bằng cách thêm tiền tố vào lệnh với tên mô-đun :

PsGet được cài đặt và cản trở:

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

sử dụng tên đủ điều kiện:

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>

Cảm ơn http://windowsitpro.com/blog/deals-cmdlet-name-conflicts

Tên mô-đun thu được từ việc đọc url của tài liệu - https://msdn.microsoft.com/powershell/reference/5.1/PowerShellGet/install-module

Thông tin thêm: https://andrwwatt.wordpress.com/2006/05/13/coping-with-a-powershell-naming-clash/

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.