geek de school: leren hoe powershell verlengen

PowerShell biedt twee manieren voor u om de schaal uit te breiden. U kunt gebruik maken van snapins, die alleen binaire en ontwikkeld in een volwaardige programmeertaal zoals C # zijn, of u kunt modules, die binair kan zijn als het script op basis van gebruik.

Zorg ervoor dat u de vorige artikelen in de serie te lezen

En stay tuned voor de rest van de serie hele week.

Snapins zijn zo vorig jaar. Alle grappen terzijde, snapins nooit echt aangeslagen bij de PowerShell gemeenschap, omdat de meeste scripters zijn niet ontwikkelaars en u kunt alleen schrijven snapins in een taal als C #. Toch zijn er nog een aantal producten die snapins gebruiken, zoals Web Deploy bijvoorbeeld. Om te zien welke snapins zijn beschikbaar voor u om te gebruiken in de schaal u de volgende opdracht gebruiken

Get-PSSnapin -Registered

Om de commando’s toegevoegd door een snapin gebruiken, moet u eerst om het te importeren in uw sessie, en kun je dat doen als zo

Add-PSSnapin -Naam WDeploySnapin3.0

Op dit punt, zal je een foutmelding krijgt als je niet beschikt over de Web Deploy snapin geïnstalleerd. Als je geïnstalleerd hebt, zoals ik dat doe, dan zal het worden geïmporteerd in uw sessie. Als u een lijst van beschikbare opdrachten in de snapin krijgen, kunt u gewoon gebruik maken van de Get-Command cmdlet

Get-Command -Module wdeploy *

Let op: Technisch is dit niet een module, maar om wat voor reden dan moet je nog steeds de parameter Module te gebruiken.

Modules zijn nieuwer en zijn de weg vooruit. Ze kunnen zowel scripted met behulp van PowerShell evenals gecodeerd in een taal als C #. Meeste ingebouwde’s zijn ingedeeld in modules ook. Om een ​​lijst met modules op uw systeem, kunt u het volgende commando gebruiken

Get-Module -ListAvailable

Als producten worden bijgewerkt, worden hun PowerShell tegenhangers worden gemigreerd naar modules. Bijvoorbeeld SQL gebruikt om een ​​SnapIn, maar het is nu opgebouwd uit modules.

Om een ​​module te gebruiken, moet u deze eerst te importeren.

Import-Module -Naam SQLASCMDLETS

U kunt dezelfde truc die we gebruiken met snapins gebruiken om alle opdrachten die de module toegevoegd aan de schelp te bekijken.

Dus dat laat de vraag: hoe denkt PowerShell weet wat snapins en modules die je op je systeem? Nou, snapins zijn een beetje van een pijn en moeten worden geïnstalleerd. Een deel van de installatie-proces omvat het creëren van een paar registry entries die PowerShell kijkt naar snapin informatie te vinden. Modules, anderzijds, kan de schaal geregistreerd door ze te plaatsen in een van de locaties in de variabele PSModulePath milieu. Als alternatief zou je gewoon het pad toe te voegen aan de module om de variabele omgeving.

($ Env: PSModulePath) .Split ( “;”)

Dat zal spuwen de inhoud van de variabele. Merk op dat als je een module zoals SQL geïnstalleerd, hoe het wijzigde de variabele de locatie van de SQL-module bevatten.

PowerShell 3 introduceerde een geweldige nieuwe functie die gaat door een paar namen. Geen van hen zijn officieel, maar “Module Auto Loading” is de beste omschrijving van het. Kortom, het stelt u in staat om cmdlets die deel uitmaken van een externe module, zonder expliciet importeren van de module met behulp van de Import-Module cmdlet gebruiken. Om dit te zien, verwijdert u eerst alle modules van je shell met de volgende opdracht

Get-Module | Remove-module

U kunt dan controleren of u geen modules geladen met behulp van de volgende

Get-Module

Nu gebruik maken van een cmdlet die niet in de kern bibliotheek. Test-Connection is een goede

Test-Connection localhost

Als u uw geladen modules opnieuw te controleren, zult u zien dat het inderdaad de module niet geladen.

Dat is alles voor vandaag jongens, samen met ons morgen voor meer.

Hoewel het verhaal van een appel die op Sir Isaac Newton’s hoofd ongeloofwaardig zou kunnen zijn, de boom zelf is niet: de appelboom in kwestie is nog steeds levend en wel buiten Newton’s familie thuis, Woolsthorpe Manor, in het Engels graafschap Lincolnshire.