Hoe breng je PowerShell modules naar de cloud

Hoe breng je PowerShell modules naar de cloud

Als je vaak met meerdere PowerShell modules op verschillende computers werkt, is dit artikel iets voor jou.

Je leert een manier om een cloud file opslagservice te gebruiken om overal bij PowerShell modules te kunnen.

Het probleem

Tegenwoordig werken velen van ons op verschillende computers voor hun werk. Sommige van die computers bevinden zich mogelijk op het werknetwerk, sommige via een VPN-verbinding en sommige volledig losgekoppeld van het werk. Als je een PowerShell fan bent, download je voortdurend nieuwe exemplaren van je modules.

Zelf heb ik tientallen verschillende PowerShell modules die ik dagelijks gebruik. Ik heb het altijd een uitdaging gevonden om te zorgen voor een consistente PowerShell-omgeving op al mijn computers, totdat ik op een dag een openbaring had. Modules zijn slechts tekstbestanden die op een specifieke locatie op de computer worden geplaatst. Waarom zou je Dropbox niet gebruiken?

Met behulp van DropBox, of een provider die cloud bestanden synchroniseert, zou ik al deze bestanden gesynchroniseerd kunnen houden en hoef ik me geen zorgen hoeven te maken over het opnieuw downloaden ervan.

Eén probleem wel. DropBox en andere services vereisen dat alle bestanden zich in een specifieke map bevinden. Tenzij je een cloudopslagprovider gebruikt om alleen PowerShell-modules te synchroniseren, moet je een map in de array $env:PSModulePath toewijzen aan DropBox.

Als je maar een paar submappen in je Dropbox folder kon maken en gewoon naar die mappen op al mijn computers kon linken. Gelukkig kan dat, met symbolische links.

Symbolische koppelingen van Windows

Symbolische links zijn een geweldige manier om "short cuts" naar mappen te maken, net zoals je LNK-bestanden hebt die snelkoppelingen op je bureaublad maken. Symbolische koppelingen kunnen Windows doen denken dat de map PowerShell-modules in C:\Dropbox\PowerShellModules zich bijvoorbeeld in C:\Program Files\WindowsPowerShell\Modules bevindt.

Je kunt jouw profiel ook in DropBox plaatsen door een map C: \ DropBox \ ProfileFolder te maken terwijl deze zich eigenlijk in C:\Users\abertram\Documents\WindowsPowerShell bevindt.

Modules overal beschikbaar maken

Om het probleem op te lossen dat PowerShell-modules niet overal beschikbaar zijn, kunnen we Dropbox op elke computer instellen en enkele symbolische koppelingen maken.

 

DropBox installeren - Om aan de slag te gaan, moet je je eerst aanmelden voor een DropBox-account. Zodra je een account hebt, moet je DropBox installeren op elke computer waarop je jouw PowerShell-modules wilt zien.

Zoek de modulemap - Zodra je Dropbox hebt geïnstalleerd, moet je vervolgens zoeken waar de modules zich op het bestandssysteem bevinden. Als je deze paden wilt vinden, bekijk je de mappaden in $env:PSModulePath. Voor deze demo gebruiken alle voorbeelden het systeembrede pad op C:Files. Deze map is de 'gekoppelde' map die wordt gekoppeld aan een submap in de hoofdmap van Dropbox.

Verplaats alle PowerShell-modules naar de Dropbox-map - Sluit alle PowerShell-sessies en verplaats de volledige C:Filesfolder naar [DropboxFolderPath]. Zorg ervoor dat je de hele map verplaatst.

mkdir C:\DropBox\PowerShellModules

Move-Item -Path C:\Program Files\WindowsPowerShell\Modules -Destination C:\DropBox\PowerShellModules

Maak de symbolische link - Vervolgens moet je de twee mappen aan elkaar "koppelen" met een symbolische link. Symbolische koppelingen kunnen worden gemaakt met behulp van het hulpprogramma mklink*Met mklink* kunt je twee mappaden opgeven: het gekoppelde pad en het echte pad. In dit voorbeeld heb ik nu alle modules in de map C:\Dropbox\PowerShellModules , maar ik wil dat PowerShell denkt dat ze zich in de C:\Program Files\WindowsPowerShell\Modules bevinden.

Om de symbolische koppeling met mklink te maken, open je een command prompt en voer je de volgende opdracht uit:

mklink /d "C:\Program Files\WindowsPowerShell\Modules" "C:\Dropbox\PowerShellModules"

Wanneer de link is gemaakt, ziet je vervolgens een mapsnelkoppeling *Modules* waar jouw oude map *Modules* zich bevond.

Zorg ervoor dat PowerShell jouw modules nog steeds ziet : om te bevestigen dat PowerShell de modules nog steeds kan gebruiken, open je een PowerShell-console en probeer je er een te importeren. Alles moet nog steeds werken zoals verwacht.

Op dit punt kun je met de modules beginnen te werken zoals je dat eerder deed. Het enige verschil is nu dat je vanuit die nieuwe Dropbox-maplocatie werkt en alle wijzigingen naar de cloud synchroniseert!

Conclusie

Er zijn veel manieren om een back-up van je lokale PowerShell-modules in de cloud te houden - Dropbox is slechts één voorbeeld. Dit artikel was bedoeld om een aantal nieuwe ideeën te geven en om u te laten zien dat hoewel je lokaal met modules werkt, dit niet betekent dat je de kracht van de cloud niet kunt gebruiken om die modules te gebruiken, waar je ook werkt.


Comments
Comments are disabled in preview mode.