A PowerShell közösség által közzétett modulok központi helye a PowerShell Gallery (https://www.powershellgallery.com/ ):
69 . ábra A PowerShell Gallery
Itt számos hasznos modulra lelhetünk. Például szeretnék Excel fájlokat kezelni PowerShell-el Excel nélkül, akkor rákereshetek ezzel kapcsolatos modulokra, szkriptekre az Excel kulcsszóra keresve. Ugyanezt megtehetjük közvetlenül PowerShell-ből is a PowerShellGet modul cmdletjeivel, amelyek az „alap” modulkezelő cmdleteket egészítik ki:
PS C:\> Get-Command -Noun module | ft -AutoSize
CommandType Name Version Source
----------- ---- ------- ------
Function Find-Module 1.0.0.1 PowerShellGet
Function Install-Module 1.0.0.1 PowerShellGet
Function Publish-Module 1.0.0.1 PowerShellGet
Function Save-Module 1.0.0.1 PowerShellGet
Function Uninstall-Module 1.0.0.1 PowerShellGet
Function Update-Module 1.0.0.1 PowerShellGet
Cmdlet Get-Module 3.0.0.0 Microsoft.PowerShell.Core
Cmdlet Import-Module 3.0.0.0 Microsoft.PowerShell.Core
Cmdlet New-Module 3.0.0.0 Microsoft.PowerShell.Core
Cmdlet Remove-Module 3.0.0.0 Microsoft.PowerShell.Core
A Find-Module -al lehet keresni. Ha tudjuk a modul nevét, akkor a -name paramétert használhatjuk, de ha nem, akkor használjuk a -filter-t kulcsszó alapú keresésre:
PS C:\> Find-Module -Filter Excel
Version Name Repository Descriptio
n
------- ---- ---------- ----------
7.1.0 ImportExcel PSGallery PowerSh...
0.1.5 PSWriteExcel PSGallery Little ...
1.0.2 PSExcel PSGallery Work wi...
19.0.73... ExcelCmdlets PSGallery CData C...
1.0 SLPSLib PSGallery Powersh...
19.0.73... ExcelServicesCmdlets PSGallery CData C...
0.5.2 PSWinDocumentation PSGallery Simple ...
19.0.73... ExcelOnlineCmdlets PSGallery CData C...
0.1.6 BitTitan.Runbooks.Excel PSGallery PowerSh...
0.2.0 ExtraLarge PSGallery Create ...
0.1.6 BitTitan.Runbooks.Excel.Beta PSGallery PowerSh...
2.0.3 ThreadJob PSGallery PowerSh...
0.6.9 ExcelPSLib PSGallery Allow s...
0.0.4 Excelimo PSGallery Simple ...
0.0.1 ProductivityTools.PSExcel2SQL PSGallery Module ...
1.2 AzureRMADAppPermissionsReport PSGallery Generat...
10.1.0 FC_Data PSGallery Functio...
2.1.0 PowerShellNotebook PSGallery Lets yo...
1.6.1 JhcUtil PSGallery A colle...
Ha telepíteni akarunk egy modult, akkor használjuk az Import-Module cmdletet:
PS C:\> Install-Module -Name import-excel
Install-Module : Administrator rights are required to install modules in 'C:\P
rogram Files\WindowsPowerShell\Modules'. Log on to the computer with an accoun
t that has Administrator rights, and then try again, or install 'C:\Users\Tibi
\Documents\WindowsPowerShell\Modules' by adding "-Scope CurrentUser" to your c
ommand. You can also try running the Windows PowerShell session with elevated
rights (Run as Administrator).
At line:1 char:1
+ Install-Module -Name import-excel
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Install-Module], Argument
Exception
+ FullyQualifiedErrorId : InstallModuleNeedsCurrentUserScopeParameterForN
onAdminUser,Install-Module
Hibát kaptam, mert ehhez rendszergazda jogosultság kell, hiszen a „Program Files” alá szeretné telepíteni alaphelyzetben. Három megoldás van: az első, hogy rendszergazdaként futtatjuk a PowerShellt, a második, hogy használjuk a -scope paramétert, mellyel a CurrentUser kontextusába, az adott felhasználó profiljába telepítjük a modult. Én most inkább a harmadik megoldást választom, nem telepítem, csak mentem a modult egy olyan helyre, ahova van hozzáférésem és majd a teljes elérési út megadásával fogom importálni:
PS C:\> Save-Module -Name importexcel -Path C:\PowerShell
A PowerShell Gallery-ben sok Microsoft által publikált modul is található. Például az AzureAD modul, vagy számtalan Desired State Configuration erőforrás (lásd 3.3 Desired State Configuration fejezetet!).
Megjegyzés
Az PowerShell Gallery oldal autentikációjának szigorítása kapcsán egy létező modul mentése vagy telepítése során olyan hibát kaphatunk, hogy a modul nem létezik. Ilyenkor futtassuk az alábbi sort:
[Net.ServicePointManager]::SecurityProtocol
= [Net.SecurityProtocolType]::Tls12
Ezzel a TLS1.2-re váltunk át, amit már beenged a galéria.