Delen via


Handleiding voor Windows PowerShell-programmeurs

Deze programmeursgids is gericht op ontwikkelaars die geïnteresseerd zijn in het bieden van een commandoregelbeheeromgeving voor systeembeheerders. Windows PowerShell biedt een eenvoudige manier om beheercommando's te bouwen die .NET-objecten blootstellen, terwijl Windows PowerShell het meeste werk voor je doet.

Bij traditionele commandoontwikkeling moet je een parameterparser, een parameterbinder, filters en alle andere functionaliteiten die elk commando beschikbaar stellen schrijven. Windows PowerShell biedt het volgende om het gemakkelijk te maken om commando's te schrijven:

  • Een krachtige Windows PowerShell-runtime (uitvoeringsengine) met een eigen parser en een mechanisme om automatisch commandoparameters te binden.

  • Hulpmiddelen voor het opmaken en weergeven van commandoresultaten met behulp van een commandoregelinterpreter (CLI).

  • Ondersteuning voor hoge functionaliteitsniveaus (via Windows PowerShell-providers) die het gemakkelijk maken om opgeslagen data te benaderen.

    Tegen lage kosten kun je een .NET-object representeren met een rijk commando of een set commando's die de beheerder een volledige commandoregelervaring bieden.

    De volgende sectie behandelt de belangrijkste Windows PowerShell-concepten en -termen. Maak jezelf vertrouwd met deze concepten en termen voordat je begint met ontwikkelen.

Over Windows PowerShell

Windows PowerShell definieert verschillende soorten commando's die je in de ontwikkeling kunt gebruiken. Deze commando's omvatten: functies, filters, scripts, aliasen en uitvoerbare bestanden (applicaties). Het belangrijkste commandotype dat in deze gids wordt besproken is een eenvoudig, klein commando genaamd een "cmdlet". Windows PowerShell biedt een set cmdlets en ondersteunt volledige cmdlet-aanpassing om aan je omgeving te voldoen. De Windows PowerShell-runtime verwerkt alle commandotypen net zoals het dat doet met cmdlets, met behulp van pipelines.

Naast commando's ondersteunt Windows PowerShell verschillende aanpasbare Windows PowerShell-providers die specifieke sets cmdlets beschikbaar stellen. De shell werkt binnen de door Windows PowerShell geleverde hostapplicatie (powershell.exe), maar is evenzeer toegankelijk vanuit een aangepaste hostapplicatie die je kunt ontwikkelen om aan specifieke eisen te voldoen. Voor meer informatie, zie Hoe Windows PowerShell werkt.

Windows PowerShell Cmdlets

Een cmdlet is een lichtgewicht commando dat wordt gebruikt in de Windows PowerShell-omgeving. De Windows PowerShell-runtime roept deze cmdlets aan binnen de context van automatiseringsscripts die op de commandoregel worden geleverd, en de Windows PowerShell-runtime roept ze ook programmatisch aan via Windows PowerShell-API's.

Voor meer informatie over cmdlets, zie Writing a Windows PowerShell Cmdlet.

Windows PowerShell Providers

Bij het uitvoeren van administratieve taken kan de gebruiker gegevens moeten onderzoeken die zijn opgeslagen in een datastore (bijvoorbeeld het bestandssysteem, het Windows-register of een certificaatopslag). Om deze bewerkingen eenvoudiger te maken, definieert Windows PowerShell een module genaamd een Windows PowerShell-provider, die gebruikt kan worden om toegang te krijgen tot een specifieke datastore, zoals het Windows-register. Elke provider ondersteunt een set gerelateerde cmdlets om de gebruiker een symmetrisch beeld van de data in de opslag te geven.

Windows PowerShell biedt verschillende standaard Windows PowerShell-providers. Zo ondersteunt de Registerprovider navigatie en manipulatie van het Windows-register. Registersleutels worden weergegeven als items, en registerwaarden worden behandeld als eigenschappen.

Als je een datastore blootstelt waar de gebruiker toegang toe nodig heeft, moet je mogelijk je eigen Windows PowerShell-provider schrijven, zoals beschreven in Het creëren van Windows PowerShell Providers. Voor meer informatie over Windows PowerShell-providers, zie Hoe Windows PowerShell werkt.

Hostapplicatie

Windows PowerShell bevat de standaard hostapplicatie powershell.exe, een consoleapplicatie die met de gebruiker communiceert en de Windows PowerShell-runtime host via een consolevenster.

Slechts zelden hoef je je eigen hostapplicatie voor Windows PowerShell te schrijven, hoewel aanpassing wordt ondersteund. Een geval waarin je je eigen applicatie nodig hebt, is wanneer je een GUI-interface nodig hebt die rijker is dan de interface van de standaard hostapplicatie. Je wilt misschien ook een aangepaste applicatie als je je GUI baseert op de commandoregel. Voor meer informatie, zie Hoe maak je een Windows PowerShell Host Application aan.

Windows PowerShell Runtime

De Windows PowerShell-runtime is de uitvoeringsengine die de commandoverwerking uitvoert. Het omvat de klassen die de interface vormen tussen de hostapplicatie en Windows PowerShell-commando's en providers. De Windows PowerShell-runtime is geïmplementeerd als een runspace-object voor de huidige Windows PowerShell-sessie, wat de operationele omgeving is waarin de shell en de commando's worden uitgevoerd. Voor operationele details, zie Hoe Windows PowerShell werkt.

Windows PowerShell Language

De Windows PowerShell-taal biedt scriptfuncties en mechanismen om commando's aan te roepen. Voor volledige scripting-informatie, zie de Windows PowerShell Language Reference die bij Windows PowerShell wordt geleverd.

Extended Type System (ETS)

Windows PowerShell biedt toegang tot verschillende objecten, zoals .NET- en XML-objecten. Als gevolg hiervan gebruikt de shell om een gemeenschappelijke abstractie voor alle objecttypen te presenteren zijn uitgebreide typesysteem (ETS). De meeste ETS-functionaliteit is transparant voor de gebruiker, maar het script of de .NET-ontwikkelaar gebruikt het voor de volgende doeleinden:

  • Het bekijken van een deelverzameling van de leden van specifieke objecten. Windows PowerShell biedt een "aangepaste" weergave van verschillende specifieke objecttypes.

  • Leden toevoegen aan bestaande objecten.

  • Toegang tot geserialiseerde objecten.

  • Aangepaste objecten schrijven.

    Met ETS kun je flexibele nieuwe "types" creëren die compatibel zijn met de Windows PowerShell-taal. Als je een .NET-ontwikkelaar bent, kun je werken met objecten die dezelfde semantiek gebruiken als de Windows-PowerShell-taal bijvoorbeeld op scripting, om te bepalen of een object evalueert naar true.

    Voor meer informatie over ETS en hoe Windows PowerShell objecten gebruikt, zie Windows PowerShell Object Concepts.

Programmeren voor Windows PowerShell

Windows PowerShell definieert zijn code voor commando's, providers en andere programmamodules met behulp van het .NET Framework. Je bent niet beperkt tot het gebruik van Microsoft Visual Studio bij het maken van aangepaste modules voor Windows PowerShell, hoewel de voorbeelden in deze gids bekend staan om te draaien in deze tool. Je kunt elke .NET-taal gebruiken die klasse-erfenis en het gebruik van attributen ondersteunt. In sommige gevallen vereisen Windows PowerShell API's dat de programmeertaal toegang heeft tot generieke types.

Referentie van de programmeur

Ter referentie bij het ontwikkelen voor Windows PowerShell, zie de Windows PowerShell SDK.

Beginnen met Windows PowerShell

Voor meer informatie over het beginnen met het gebruik van de Windows PowerShell-shell, zie de tekst 'Getting Started with Windows PowerShell ' die met Windows PowerShell wordt geleverd. Een Quick Reference tri-fold document wordt ook geleverd als inleiding voor het gebruik van cmdlets.

Inhoud van deze gids

Onderwerp Definition
Hoe maak je een Windows PowerShell-hostapplicatie Deze sectie beschrijft hoe je een hostapplicatie schrijft die een runspace manipuleert en hoe je een hostapplicatie schrijft die zijn eigen aangepaste host implementeert.
Hoe maak je een Windows PowerShell Snap-in Deze sectie beschrijft hoe je een snap-in maakt die wordt gebruikt om alle cmdlets en providers in een assembly te registreren en hoe je een aangepaste snap-in maakt.
Windows PowerShell Concepten Deze sectie bevat conceptuele informatie die je zal helpen Windows PowerShell te begrijpen vanuit het perspectief van een ontwikkelaar.

Zie ook

Windows PowerShell SDK