Közösségi modulok elérése a PowerShell Gallery-ből

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, amleyek 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 futatjuk 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.

 



Word To HTML Converter