Aan de slag met PowerShell Gallery

De PowerShell Gallery is de ultieme bestemming voor al uw PowerShell-behoeften, of u nu een beginner bent of een ervaren gebruiker. En het goede nieuws is dat er een uitgebreide verzameling documentatie, scripts, modules en andere bronnen is gemaakt door de PowerShell-community.

In deze tutorial leert u hoe u bronnen kunt vinden, downloaden en installeren vanuit de PowerShell Gallery.

Blijf op de hoogte en verbeter vandaag nog uw scriptingsvaardigheden!

Vereisten

Deze tutorial zal een praktische demonstratie zijn. Zorg ervoor dat u een systeem met PowerShell 5.1 of later geïnstalleerd hebt om mee te kunnen doen. Deze tutorial maakt gebruik van Windows 10 met PowerShell 5.3, maar andere versies van Windows en PowerShell zouden ook moeten werken.

Installeren van het .NET Framework

Voordat u zich verdiept in de PowerShell Gallery, heeft u eerst een manier nodig om met de PowerShell Gallery te communiceren, en het .NET Framework is de belangrijkste manier.

U moet eerst het .NET Framework installeren, dat cruciaal is voor de PowerShellGet-module. De PowerShellGet-module vereist minimaal .NET Framework v4.5+. Met de PowerShellGet-module kunt u PowerShell-artefacten ontdekken, installeren, bijwerken en publiceren.

Maar in deze tutorial zult u het .NET Framework v4.8 installeren.

? Let op dat het .NET Framework v4.8 mogelijk al op uw systeem is geïnstalleerd. Als dat het geval is, kunt u deze stap overslaan. Maar als u een oudere versie van het .NET Framework heeft, verwijder deze dan en upgrade naar een nieuwere versie.

Om het .NET Framework te installeren, volgt u deze stappen:

1. Open uw favoriete webbrowser en ga naar de officiële downloadpagina van het .NET Framework.

2. Klik vervolgens op de link Download .NET Framework 4.8 Developer Pack om een bestand te downloaden dat lijkt op ndp48-devpack-enu. Dit bestand is het installatiepakket voor het .NET Framework versie 4.8.

Downloading .NET Framework 4.8

3. Wacht tot het downloaden is voltooid en dubbelklik op het gedownloade bestand om de .NET Framework-installateur te starten.

Launching the .NET Framework installer

? Als u problemen ondervindt bij het installeren van het .NET Framework, probeer dan het installatiebestand uit te voeren in [compatibiliteitsmodus].

4. Vink het selectievakje onderaan aan om de licentievoorwaarden te accepteren en klik op de Installeren-knop om .NET Framework 4.8 te installeren.

Accepting the license terms and conditions

Hieronder zie je de installatievoortgang, die enkele minuten kan duren, afhankelijk van de configuratie van je systeem.

Viewing the installation progress

5. Klik nu op de knop Sluiten om de installateur te sluiten zodra de installatie is voltooid.

Finishing the .NET Framework installation

6. Als laatste, open PowerShell als beheerder en voer de volgende [Start-Process]-opdracht uit om de app Programma’s toevoegen of verwijderen te openen (appwiz.cpl). Deze app stelt je in staat om een lijst met geïnstalleerde programma’s op je systeem te bekijken.

Start-Process "appwiz.cpl”

Je ziet vermeldingen voor het .NET Framework 4.8 in de lijst met geïnstalleerde programma’s, zoals hieronder getoond.

Verifying the .NET Framework 4.8 installation

Installeren van de PowerShellGet-module

Met het geïnstalleerde en actieve .NET Framework kun je nu de kerncomponent van de PowerShell Gallery installeren, namelijk de PowerShellGet-module.

De voorgeïnstalleerde versie van PowerShellGet (1.0.0.1) in Windows PowerShell 5.1 heeft beperkte functies. Als je Windows PowerShell 5.1 of ouder gebruikt, overweeg dan het gebruik van de bijgewerkte mogelijkheden van de PowerShell Gallery. De laatste versie is op dit moment 3.0.17-beta17.

Om de PowerShellGet-module te installeren, volg de onderstaande stappen:

1. Voer de volgende opdracht uit, die geen output genereert maar Transport Layer Security (TLS) 1.2 inschakelt in je PowerShell-sessie. TLS is een beveiligingsprotocol dat gegevens versleutelt die over het internet worden verzonden.

Het inschakelen van TLS 1.2 is cruciaal, aangezien PowerShell standaard niet is geconfigureerd om TLS 1.2 te gebruiken. Deze opdracht stelt de SecurityProtocol in voor het object System.Net.ServicePointManager op TLS 1.2 (Tls12). Hierdoor krijg je toegang tot de PowerShell Gallery met TLS 1.2 of hoger.

[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12

? Merk op dat deze wijziging alleen van toepassing is op de huidige PowerShell-sessie. Maar je kunt PowerShell configureren om altijd TLS 1.2 te gebruiken door bovenstaand commando toe te voegen aan je PowerShell-profiel.

Volgende, voer de opdracht Install-PackageProvider hieronder uit om de NuGet-pakketprovider te installeren. De NuGet-pakketprovider stelt u in staat om pakketten te installeren en te beheren vanuit de NuGet-pakketrepository. Deze repository is een centrale repository van open-source pakketten voor het .NET-platform.

De NuGet-pakketprovider is vereist voordat u de [Install-Module] cmdlet gebruikt om modules te installeren vanuit de PowerShell Gallery. Waarom? Veel van de modules in de PowerShell Gallery worden gedistribueerd als NuGet-pakketten.

Install-PackageProvider -Name NuGet -Force
Installing the NuGet package provider

Eenmaal geïnstalleerd, kunt u nu profiteren van de NuGet API. De NuGet API stelt u in staat om toegang te krijgen tot de NuGet-pakketrepository om tools en applicaties te maken die kunnen communiceren met de NuGet-pakketrepository. Hoe communiceren? Voer verschillende taken uit, zoals zoeken naar, installeren en bijwerken van pakketten.

Over het algemeen zijn er twee versies van de NuGet API, die u kunt gebruiken afhankelijk van uw vereisten en de mogelijkheden van uw client en server.

Version Description Usage
v2 Uses XML as the data format for communication between the client and server.

This version is based on the original NuGet API introduced in 2011 and is the legacy version of the API.

The v2 API is recommended if you use an older version of NuGet or a client or server that does not support the v3 API.

This version is supported by all versions of NuGet and is compatible with older clients and servers.

v3 Uses JSON as the data format for communication between the client and server. This version was introduced in 2013 as an improvement over the v2 API and included many new features and improvements.

Many new features included are support for side-by-side package installation, improved search capabilities, and large package support.

The v3 API is recommended if you use a newer NuGet version. The v3 API is faster and more efficient than the v2 API.

This version is not supported by older versions of NuGet and may not be compatible with older clients and servers.

? Over het algemeen wordt de NuGet API v3 aanbevolen, omdat deze de meest actuele functies en mogelijkheden biedt.

3. Voer de onderstaande Set-PSRepository opdracht uit, die geen uitvoer geeft, maar je PowerShell Gallery (PSGallery) repository instelt als een vertrouwde pakketbron. Hierdoor kun je modules installeren vanuit de PowerShell Gallery.

Set-PSRepository -Name PSGallery -InstallationPolicy Trusted -ErrorAction Stop

4. Voer nu de onderstaande Install-Module opdracht uit om de nieuwste versie (-AllowPrerelease) van de PowerShellGet module te installeren.

Install-Module -Name PowerShellGet -AllowPrerelease -Force
Installing the latest version of PowerShellGet

5. Voer tot slot de onderstaande Get-InstalledModule opdracht uit om te controleren of de PowerShellGet module succesvol is geïnstalleerd.

Get-InstalledModule PowerShellGet

Je ziet de PowerShellGet module vermeld, zoals hieronder getoond, met de PSGallery als de repository indien succesvol geïnstalleerd.

Verifying the PowerShellGet module installation

Modules ontdekken vanuit de PowerShell Gallery

Nu je de PowerShellGet module hebt geïnstalleerd, kun je zoeken naar en modules installeren vanuit de PowerShell Gallery. Hierdoor kun je de mogelijkheden van je PowerShell-omgeving uitbreiden en complexe taken efficiënter automatiseren.

Om te zoeken naar een module in de PowerShell Gallery, kunt u de Find-Module cmdlet gebruiken. Met deze cmdlet kunt u de PowerShell Gallery doorzoeken naar modules die overeenkomen met opgegeven zoekcriteria, zoals de modulenaam, versie of tag.

1. Voer het Find-Module commando hieronder uit om de PowerShell Gallery te doorzoeken naar modules met namen die overeenkomen met AzureRM.

Find-Module -Name AzureRM

Het onderstaande resultaat geeft slechts één module weer die overeenkomt met de naam AzureRM in de PowerShell Gallery. U kunt ook basisinformatie zien over elke module, zoals de naam, versie, repository, enzovoort.

Discovering modules from the PowerShell Gallery

2. Voer vervolgens een van de onderstaande commando’s uit om te zoeken naar modules met behulp van een -Tag met het trefwoord Azure. De -Tag parameter is niet hoofdlettergevoelig, dus u kunt azure of Azure gebruiken als trefwoord voor de tag.

Waarom tags gebruiken voor een module? Een tag is een trefwoord of label dat aan een module is gekoppeld en de inhoud en functionaliteit ervan in de PowerShell Gallery beschrijft.

Bijvoorbeeld, als een module gerelateerd is aan het Azure cloudplatform, kunt u het trefwoord Azure taggen. Op deze manier kunnen gebruikers die geïnteresseerd zijn in Azure-gerelateerde bronnen de module gemakkelijk vinden en ontdekken door te zoeken naar de Azure tag.

Find-Module -Tag 'Azure'
Find-Module -Tag 'azure'

PowerShell Gallery is een uitgebreid archief van bronnen die zijn bijgedragen door een breed scala aan auteurs, en er zijn veel modules gerelateerd aan populaire zoekwoorden zoals Azure.

Als gevolg hiervan ziet u een lange lijst met modules die overeenkomen met uw zoekwoord of tag, zoals te zien is in de volgende screenshots.

Searching for modules in the PowerShell Gallery using a tag

? U kunt ook tags gebruiken om gerelateerde modules te groeperen en het vinden van gerelateerde bronnen sneller te maken. Gebruik bijvoorbeeld de tag Virtualisatie om modules te groeperen die verband houden met virtualisatietechnologieën, zoals Hyper-V of VMware.

3. Voer nu het volgende commando uit om uw zoekopdracht te verfijnen en een specifieke module te vinden door de parameters in de Find-Module cmdlet te combineren.

Het onderstaande commando vindt een module uit de PowerShell Gallery met de volgende parameters:

  • -Name – Zoek naar modules met een specifieke naam Az.Compute.

  • -Tag – Zoek naar modules met tags Azure en Microsoft.
Find-Module -Name 'Az.Compute' -Tag 'Azure', 'Microsoft’
Filtering module search results

Modules installeren en bijwerken

Zodra u een module heeft gevonden die u wilt gebruiken, is het installeren van die module slechts een paar toetsaanslagen verwijderd. U kunt de Install-Module cmdlet gebruiken om modules van de PowerShell Gallery te downloaden en op uw lokale systeem te installeren.

1. Voer het onderstaande commando uit om de Az.Compute module van de PowerShell Gallery te downloaden en te installeren.

Als het succesvol is, geeft deze opdracht geen output, maar je zult de installatie in de volgende stap verifiëren.

Install-Module -Name 'Az.Compute'

2. Voer vervolgens de volgende Get-InstalledModule opdracht uit om te controleren of de Az.Compute module is geïnstalleerd op je systeem.

Get-InstalledModule -Name 'Az.Compute'
Verifying a module installation

? Als alternatief kun je de Get-InstalledModule cmdlet zonder parameters uitvoeren om een lijst weer te geven van alle geïnstalleerde modules op je systeem. Maar let op, je kunt je ogen pijn doen als je door de lijst scrolt als er te veel modules geïnstalleerd zijn.

Listing all installed modules

3. Voer nu de onderstaande Update-Module opdracht uit, die geen output geeft maar zoekt naar de nieuwste versie van een specifieke module (bijv. Az.Compute) en deze bijwerkt.

Het bijwerken van geïnstalleerde modules kan bugfixes, nieuwe functies of andere verbeteringen bevatten.

Update-Module -Name Az.Compute

PowerShell-modules verwijderen

Er zijn momenten waarop je een module van je systeem wilt verwijderen. Bijvoorbeeld als je de module niet langer nodig hebt of als deze problemen veroorzaakt.

Om een module van je systeem te verwijderen, kun je de Uninstall-Module cmdlet gebruiken. Deze cmdlet verwijdert een module en al zijn bestanden van je systeem, waardoor deze effectief wordt verwijderd.

? Zorg ervoor dat je goed nadenkt over de gevolgen van het verwijderen van een module voordat je doorgaat. Het verwijderen van een module kan onbedoelde gevolgen hebben, zoals het breken van andere programma’s of scripts die afhankelijk zijn van de module.

Voer het volgende Uninstall-Module commando uit om een specifieke module (Az.Compute) van uw systeem te verwijderen. Dit commando geeft geen uitvoer als de verwijdering succesvol is.

Uninstall-Module -Name Az.Compute

? Als andere programma’s of scripts momenteel de module gebruiken, geeft het Uninstall-Module cmdlet een foutmelding en mislukt de verwijdering.

Conclusie

PowerShell-modules zijn krachtige tools waarmee u snel functionaliteit aan uw PowerShell-omgeving kunt toevoegen. En in deze tutorial, samen met de PowerShell Gallery, kunt u modules ontdekken en installeren met een paar commando’s.

Maak gebruik van de PowerShell Gallery en zoek naar PowerShell-modules om uw PowerShell-scripts en workflows aan te passen en te versterken!

Source:
https://adamtheautomator.com/powershell-gallery/