Install-Module
Pobiera co najmniej jeden moduł z repozytorium i instaluje je na komputerze lokalnym.
Składnia
Install-Module
[-Name] <String[]>
[-MinimumVersion <String>]
[-MaximumVersion <String>]
[-RequiredVersion <String>]
[-Repository <String[]>]
[-Credential <PSCredential>]
[-Scope <String>]
[-Proxy <Uri>]
[-ProxyCredential <PSCredential>]
[-AllowClobber]
[-SkipPublisherCheck]
[-Force]
[-AllowPrerelease]
[-AcceptLicense]
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Install-Module
[-InputObject] <PSObject[]>
[-Credential <PSCredential>]
[-Scope <String>]
[-Proxy <Uri>]
[-ProxyCredential <PSCredential>]
[-AllowClobber]
[-SkipPublisherCheck]
[-Force]
[-AcceptLicense]
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Opis
Polecenie cmdlet Install-Module
pobiera co najmniej jeden moduł spełniający określone kryteria z repozytorium online. Polecenie cmdlet sprawdza, czy wyniki wyszukiwania są prawidłowymi modułami i kopiuje foldery modułów do lokalizacji instalacji. Zainstalowane moduły nie są automatycznie importowane po instalacji.
Można filtrować, który moduł jest instalowany na podstawie minimalnych, maksymalnych i dokładnych wersji określonych modułów.
To jest polecenie cmdlet serwera proxy dla polecenia cmdlet Get-InstalledPSResource
w Microsoft.PowerShell.PSResourceGet. Aby uzyskać więcej informacji, zobacz Install-PSResource.
Przykłady
Przykład 1. Znajdowanie i instalowanie modułu
W tym przykładzie znajduje moduł w repozytorium i instaluje moduł.
Find-Module -Name PowerShellGet | Install-Module
Install-Module
.
Install-Module
instaluje moduł dla wszystkich użytkowników w $env:ProgramFiles\PowerShell\Modules
.
Przykład 2. Instalowanie modułu według nazwy
W tym przykładzie zainstalowano najnowszą wersję modułu PowerShellGet.
Install-Module -Name PowerShellGet
Przykład 3. Instalowanie modułu przy użyciu minimalnej wersji
W tym przykładzie zainstalowano minimalną wersję modułu PowerShellGet. Parametr MinimumVersion określa najniższą wersję modułu, który należy zainstalować. Jeśli jest dostępna nowsza wersja modułu, ta wersja zostanie pobrana i zainstalowana dla wszystkich użytkowników.
Install-Module -Name PowerShellGet -MinimumVersion 2.0.1
Przykład 4. Instalowanie określonej wersji modułu
W tym przykładzie jest zainstalowana określona wersja modułu PowerShellGet.
Install-Module -Name PowerShellGet -RequiredVersion 2.0.0
Przykład 5. Instalowanie modułu tylko dla bieżącego użytkownika
Ten przykład pobiera i instaluje najnowszą wersję modułu tylko dla bieżącego użytkownika.
Install-Module -Name PowerShellGet -Scope CurrentUser
Install-Module
pobiera i instaluje najnowszą wersję PowerShellGet do katalogu bieżącego użytkownika, $HOME\Documents\PowerShell\Modules
.
Przykład 6. Instalowanie najnowszej wersji wstępnej modułu
W tym przykładzie pokazano, jak zainstalować najnowszą wersję modułu, gdy ta wersja jest wersją wstępną. Zainstalowanie wersji wstępnej wymaga parametru AllowPrerelease.
Install-Module -Name Microsoft.PowerShell.Crescendo -AllowPrerelease
Korzystając z tej metody, uzyskasz najnowszą dostępną wersję. Jeśli najnowsza wersja nie jest wersją wstępną, uzyskasz najnowszą stabilną wersję modułu.
Przykład 7. Instalowanie określonej wersji wstępnej modułu
W tym przykładzie pokazano, jak zainstalować określoną wersję wstępną modułu. Polecenie cmdlet Find-Module
może służyć do znajdowania wersji wstępnych modułów w galerii programu PowerShell.
Wersje wstępne mają format <version_number>-<prerelease_label>
.
Find-Module PSReadLine -AllVersions -AllowPrerelease | Select-Object -First 5
Version Name Repository Description
------- ---- ---------- -----------
2.2.6 PSReadLine PSGallery Great command line editing in the PowerS…
2.2.5 PSReadLine PSGallery Great command line editing in the PowerS…
2.2.4-beta1 PSReadLine PSGallery Great command line editing in the PowerS…
2.2.3 PSReadLine PSGallery Great command line editing in the PowerS…
2.2.2 PSReadLine PSGallery Great command line editing in the PowerS…
Install-Module -Name PSReadLine -RequiredVersion 2.2.4-beta1 -AllowPrerelease
Użyj wersji pokazanej w galerii programu PowerShell dla wartości parametru RequiredVersion.
Parametry
-AcceptLicense
W przypadku modułów, które wymagają licencji, AcceptLicense automatycznie akceptuje umowę licencyjną podczas instalacji. Aby uzyskać więcej informacji, zobacz Modules Requiring License Acceptance.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-AllowClobber
Zastępuje komunikaty ostrzegawcze dotyczące konfliktów instalacji dotyczących istniejących poleceń na komputerze.
Zastępuje istniejące polecenia o tej samej nazwie co polecenia instalowane przez moduł.
AllowClobber i Force mogą być używane razem w Install-Module
polecenia.
Polecenie cmdlet serwera proxy przekształca wartość tego parametru na parametr NoClobber polecenia cmdlet Install-PSResource
.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-AllowPrerelease
Umożliwia zainstalowanie modułu oznaczonego jako wersja wstępna.
Polecenie cmdlet serwera proxy mapuje ten parametr na parametr wersji wstępnej
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Confirm
Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet Install-Module
.
Typ: | SwitchParameter |
Aliasy: | cf |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Credential
Określa konto użytkownika, które ma uprawnienia do instalowania modułu dla określonego dostawcy pakietów lub źródła.
Typ: | PSCredential |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Force
Polecenie cmdlet serwera proxy ignoruje ten parametr, ponieważ nie jest obsługiwany przez Install-PSResource
.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-InputObject
Służy do wprowadzania potoku. Błąd jest zgłaszany, jeśli wartość podana bezpośrednio do InputObject. Użyj potoku, aby przekazać obiekty z parametrem InputObject.
Typ: | PSObject[] |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-MaximumVersion
Polecenie cmdlet serwera proxy używa wartości tego parametru do utworzenia ciągu wyszukiwania wersji NuGet do użycia z parametrem VersionInstall-PSResource
.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-MinimumVersion
Polecenie cmdlet serwera proxy używa wartości tego parametru do utworzenia ciągu wyszukiwania wersji NuGet do użycia z parametrem VersionInstall-PSResource
.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Name
Określa dokładne nazwy modułów do zainstalowania z galerii online. Akceptowana jest rozdzielona przecinkami lista nazw modułów. Nazwa modułu musi być zgodna z nazwą modułu w repozytorium. Użyj Find-Module
, aby uzyskać listę nazw modułów.
Typ: | String[] |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-PassThru
W przypadku korzystania z parametru Find-Module
.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Proxy
Polecenie cmdlet serwera proxy ignoruje ten parametr, ponieważ nie jest obsługiwany przez Install-PSResource
.
Typ: | Uri |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-ProxyCredential
Polecenie cmdlet serwera proxy ignoruje ten parametr, ponieważ nie jest obsługiwany przez Install-PSResource
.
Typ: | PSCredential |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Repository
Użyj parametru repozytorium Install-Module
polecenia. Aby zarejestrować repozytorium, użyj Register-PSRepository
.
Aby wyświetlić zarejestrowane repozytoria, użyj Get-PSRepository
.
Typ: | String[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-RequiredVersion
Polecenie cmdlet serwera proxy używa wartości tego parametru do utworzenia ciągu wyszukiwania wersji NuGet do użycia z parametrem VersionInstall-PSResource
.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Scope
Określa zakres instalacji modułu. Dopuszczalne wartości tego parametru to AllUsers i CurrentUser.
Zakres AllUsers instaluje moduły w lokalizacji dostępnej dla wszystkich użytkowników komputera:
$env:ProgramFiles\PowerShell\Modules
CurrentUser instaluje moduły w lokalizacji dostępnej tylko dla bieżącego użytkownika komputera. Na przykład:
$HOME\Documents\PowerShell\Modules
Jeśli nie zdefiniowano zakres, wartość domyślna jest ustawiana na podstawie wersji modułu PowerShellGet.
- W wersji PowerShellGet 1.x wartość domyślna to AllUsers, co wymaga podniesienia uprawnień do instalacji.
- W przypadku modułu PowerShellGet w wersji 2.0.0 lub nowszej w programie PowerShell 6 lub nowszym:
- Wartość domyślna to CurrentUser, która nie wymaga podniesienia uprawnień do instalacji.
- Jeśli korzystasz z sesji z podwyższonym poziomem uprawnień, wartość domyślna to AllUsers.
Typ: | String |
Dopuszczalne wartości: | CurrentUser, AllUsers |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-SkipPublisherCheck
Polecenie cmdlet serwera proxy przekształca ten parametr w celu AuthenticodeCheck przed wywołaniem Install-PSResource
.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-WhatIf
Pokazuje, co się stanie w przypadku uruchomienia polecenia Install-Module
. Polecenie cmdlet nie jest uruchamiane.
Typ: | SwitchParameter |
Aliasy: | wi |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
PSRepositoryItemInfo
Find-Module
tworzy obiekty PSRepositoryItemInfo, które mogą być wysyłane w dół potoku do Install-Module
.
String[]
PSObject[]
Dane wyjściowe
Microsoft.PowerShell.Commands.PSRepositoryItemInfo
W przypadku korzystania z parametru Find-Module
.
Uwagi
Program PowerShell zawiera następujące aliasy dla Install-Module
:
- Wszystkie platformy:
inmo
Install-Module
działa w wersjach programu PowerShell 5.0 lub nowszych w systemach Windows 7 lub Windows 2008 R2 i nowszych wersjach systemu Windows.
Ważny
Od kwietnia 2020 r. galeria programu PowerShell nie obsługuje już protokołu Transport Layer Security (TLS) w wersji 1.0 i 1.1. Jeśli nie używasz protokołu TLS 1.2 lub nowszego, podczas próby uzyskania dostępu do galerii programu PowerShell zostanie wyświetlony błąd. Użyj następującego polecenia, aby upewnić się, że używasz protokołu TLS 1.2:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Aby uzyskać więcej informacji, zobacz anons w blogu programu PowerShell.
Najlepszym rozwiązaniem w zakresie zabezpieczeń jest ocena kodu modułu przed pierwszym uruchomieniem jakichkolwiek poleceń cmdlet lub funkcji. Aby zapobiec uruchamianiu modułów zawierających złośliwy kod, zainstalowane moduły nie są automatycznie importowane po instalacji.
Jeśli nazwa modułu określona przez parametr Name nie istnieje w repozytorium, Install-Module
zwraca błąd.
Aby zainstalować wiele modułów, użyj parametru Name i określ rozdzielaną przecinkami tablicę nazw modułów. Jeśli określisz wiele nazw modułów, nie możesz użyć MinimumVersion, MaximumVersionlub RequiredVersion.
Find-Module
tworzy obiekty PSRepositoryItemInfo, które mogą być wysyłane w dół potoku do Install-Module
. Potok to inny sposób określania wielu modułów do zainstalowania w jednym poleceniu.
Domyślnie moduły zakresu AllUsers są instalowane w $env:ProgramFiles\PowerShell\Modules
. Ustawienie domyślne zapobiega nieporozumieniu podczas instalowania zasobów konfiguracji żądanego stanu programu PowerShell (DSC).
Instalacja modułu kończy się niepowodzeniem i nie można go zaimportować, jeśli nie ma .psm1
, .psd1
lub .dll
o tej samej nazwie w folderze. Użyj parametru Force, aby zainstalować moduł.
Jeśli wersja istniejącego modułu jest zgodna z nazwą określoną przez parametr name
Jeśli wersja istniejącego modułu jest większa niż wartość parametru MinimumVersion lub równa wartości parametru RequiredVersion, Install-Module
dyskretnie kontynuuje działanie, ale nie instaluje modułu.
Jeśli istniejący moduł nie jest zgodny z wartościami określonymi przez parametr MinimumVersion lub RequiredVersion, w poleceniu Install-Module
wystąpi błąd. Jeśli na przykład wersja istniejącego zainstalowanego modułu jest niższa niż wartość MinimumVersion lub nie jest równa wartości RequiredVersion.
Install-Module
również instaluje wszystkie zależne moduły określone zgodnie z wymaganiami wydawcy modułu.
Wydawca wyświetla listę wymaganych modułów i ich wersji w manifeście modułu.