Install-Module în PowerShell

Module, pachete și remoting Windows PowerShell 5.0 (PowerShellGet)

Descarcă și instalează module din PowerShell Gallery; în PowerShell 7.4+ ai și Install-PSResource, din modulul PSResourceGet.

Sintaxă
Install-Module [-Name] <String[]> [-Scope <String>] [-RequiredVersion <String>] [-Repository <String[]>] [-Force] [-AllowClobber]
Install-PSResource [-Name] <string[]> [-Version <string>] [-Scope <ScopeType>] [-TrustRepository]

Ce face Install-Module

Install-Module face parte din modulul PowerShellGet, livrat inițial cu Windows PowerShell 5.0. Caută modulul într-un depozit înregistrat (de obicei PowerShell Gallery, cu numele PSGallery), îl descarcă împreună cu modulele de care depinde și îl copiază în folderul de module. Modulul nu este importat automat după instalare: îl folosești prin autoîncărcare sau cu Import-Module. Înainte de instalare îl poți căuta cu Find-Module; ulterior îl actualizezi cu Update-Module.

-Scope CurrentUser instalează în $HOME\Documents\PowerShell\Modules fără drepturi de administrator, iar -Scope AllUsers în $env:ProgramFiles\PowerShell\Modules, cu drepturi de administrator. Cu PowerShellGet 2.0+ în PowerShell 6 sau mai nou, implicit este CurrentUser (sau AllUsers într-o sesiune ridicată); PowerShellGet 1.x folosea implicit AllUsers. Versiunea 1.0.0.1 inclusă în Windows PowerShell 5.1 nu mai este suportată. Galeria este înregistrată implicit ca depozit nesigur, așa că primești o întrebare de confirmare; o poți marca drept sigură cu Set-PSRepository -Name PSGallery -InstallationPolicy Trusted.

Din PowerShell 7.4 este inclus și modulul Microsoft.PowerShell.PSResourceGet, recomandat de Microsoft ca înlocuitor pentru PowerShellGet. Cmdlet-ul lui, Install-PSResource, combină Install-Module și Install-Script, instalează implicit pentru utilizatorul curent, acceptă intervale de versiuni în stil NuGet (-Version '[7.0, 8.0)') și sare peste întrebarea despre depozit cu -TrustRepository. Pe Windows PowerShell 5.1 se poate instala separat, alături de PowerShellGet.

Parametri

Parametru Descriere
-Name Numele exacte ale modulelor (fără wildcard-uri); mai multe nume se separă prin virgulă.
-Scope CurrentUser sau AllUsers (cel din urmă cere drepturi de administrator).
-RequiredVersion / -MinimumVersion / -MaximumVersion Versiunea exactă, minimă sau maximă a unui singur modul.
-Repository Depozitul din care se instalează, când ai mai multe înregistrate (Get-PSRepository le listează).
-Force Instalează și când modulul există deja: adaugă o versiune alături sau o suprascrie pe aceeași.
-AllowClobber Permite instalarea unui modul care are comenzi cu același nume ca alt modul instalat.
-AllowPrerelease Permite versiuni de test (de forma 2.2.4-beta1).
-AcceptLicense Acceptă automat licența modulelor care o cer.
Install-PSResource -Version Versiune exactă sau interval NuGet, de exemplu '[7.3.0, 8.3.0]'.
Install-PSResource -TrustRepository Nu mai cere confirmare pentru depozitele nesigure.
Install-PSResource -Reinstall Reinstalează ultima versiune peste cea existentă (repară o instalare stricată).

Ce returnează

Nimic, implicit; cu -PassThru, Install-Module întoarce un PSRepositoryItemInfo, iar Install-PSResource un PSResourceInfo.

Exemple

Exemplul 1: Căutarea unui modul în PowerShell Gallery

Find-Module arată ultima versiune disponibilă, fără să instaleze nimic.

Find-Module -Name ImportExcel

Ieșire în terminal

Version        Name             Repository       Description
-------        ----             ----------       -----------
7.8.10         ImportExcel      PSGallery        PowerShell module to import/export Excel…

Exemplul 2: Instalare pentru utilizatorul curent

Pentru că PSGallery nu e marcat ca sigur, PowerShellGet cere confirmare; răspunsul Y continuă instalarea.

Install-Module -Name ImportExcel -Scope CurrentUser

Ieșire în terminal

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

Exemplul 3: Același modul cu Install-PSResource (PowerShell 7.4+)

-TrustRepository evită întrebarea; apoi verificăm unde a fost instalat modulul.

Install-PSResource -Name ImportExcel -Repository PSGallery -TrustRepository
Get-Module -ListAvailable -Name ImportExcel | Format-List -Property Name, Version, ModuleBase

Ieșire în terminal

Name       : ImportExcel
Version    : 7.8.10
ModuleBase : C:\Users\ana\Documents\PowerShell\Modules\ImportExcel\7.8.10

Greșeli frecvente

  • Instalezi cu -Scope AllUsers dintr-o sesiune fără drepturi de administrator: comanda eșuează; folosește -Scope CurrentUser sau deschide PowerShell ca administrator.
  • Te aștepți ca modulul să fie importat imediat: instalarea doar copiază fișierele; comenzile se încarcă la prima folosire sau cu Import-Module.
  • Rulezi Install-Module din nou ca să actualizezi: dacă versiunea există deja, comanda continuă fără să instaleze; folosește Update-Module (sau Update-PSResource).
  • Lucrezi în Windows PowerShell 5.1 cu PowerShellGet 1.0.0.1 și primești erori la conectarea la galerie: versiunea nu mai e suportată; actualizează PowerShellGet sau instalează PSResourceGet.

Comenzi înrudite

  • Import-Module: Încarcă un modul în sesiunea curentă; din PowerShell 3.0 modulele instalate se încarcă și singure la prima folosire a unei comenzi.
  • winget: Managerul de pachete din Windows: caută, instalează, actualizează și listează aplicații din linia de comandă, inclusiv din PowerShell.
  • Set-ExecutionPolicy: Stabilește pe Windows dacă PowerShell are voie să ruleze scripturi .ps1; Unblock-File deblochează un script descărcat de pe internet.
  • $PROFILE: Variabila $PROFILE conține calea scriptului care rulează la fiecare pornire a PowerShell, unde îți pui aliasurile și funcțiile.