Delen via


Handleiding voor Windows PowerShell-programmeurs

Deze programmeurhandleiding is gericht op ontwikkelaars die geïnteresseerd zijn in het bieden van een opdrachtregelbeheeromgeving voor systeembeheerders. Windows PowerShell biedt een eenvoudige manier om beheeropdrachten te bouwen waarmee .NET-objecten beschikbaar worden gesteld, terwijl Windows PowerShell het meeste werk voor u kan doen.

Bij traditionele opdrachtontwikkeling moet u een parameterparser, een parameterbinding, filters en alle andere functionaliteit schrijven die door elke opdracht wordt weergegeven. Windows PowerShell biedt het volgende zodat u eenvoudig opdrachten kunt schrijven:

  • Een krachtige Windows PowerShell-runtime (uitvoeringsengine) met een eigen parser en een mechanisme voor het automatisch binden van opdrachtparameters.

  • Hulpprogramma's voor het opmaken en weergeven van opdrachtresultaten met behulp van een opdrachtregel-interpreter (CLI).

  • Ondersteuning voor hoge functionaliteitsniveaus (via Windows PowerShell-providers) waarmee u eenvoudig toegang hebt tot opgeslagen gegevens.

    Met weinig kosten kunt u een .NET-object vertegenwoordigen door een uitgebreide opdracht of set opdrachten die een volledige opdrachtregelervaring bieden aan de beheerder.

    In de volgende sectie worden de belangrijkste Concepten en termen van Windows PowerShell behandeld. Raak vertrouwd met deze concepten en termen voordat u begint met ontwikkelen.

Over Windows PowerShell

Windows PowerShell definieert verschillende typen opdrachten die u in ontwikkeling kunt gebruiken. Deze opdrachten zijn onder andere: functies, filters, scripts, aliassen en uitvoerbare bestanden (toepassingen). Het hoofdopdrachttype dat in deze handleiding wordt besproken, is een eenvoudige, kleine opdracht genaamd een cmdlet. Windows PowerShell levert een set cmdlets en biedt volledige ondersteuning voor het aanpassen van cmdlets aan uw omgeving. De Windows PowerShell-runtime verwerkt alle opdrachttypen, net zoals cmdlets, met behulp van pijplijnen.

Naast opdrachten ondersteunt Windows PowerShell verschillende aanpasbare Windows PowerShell-providers die specifieke sets cmdlets beschikbaar maken. De shell werkt binnen de door Windows PowerShell geleverde hosttoepassing (powershell.exe), maar is even toegankelijk vanuit een aangepaste hosttoepassing die u kunt ontwikkelen om te voldoen aan specifieke vereisten. Zie Hoe Windows PowerShell werktvoor meer informatie.

Windows PowerShell-cmdlets

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

Zie Een Windows PowerShell-cmdlet schrijvenvoor meer informatie over cmdlets.

Windows PowerShell-providers

Bij het uitvoeren van beheertaken moet de gebruiker mogelijk gegevens onderzoeken die zijn opgeslagen in een gegevensarchief (bijvoorbeeld het bestandssysteem, het Windows-register of een certificaatarchief). Om deze bewerkingen eenvoudiger te maken, definieert Windows PowerShell een module die een Windows PowerShell-provider wordt genoemd die kan worden gebruikt voor toegang tot een specifiek gegevensarchief, zoals het Windows-register. Elke provider ondersteunt een set gerelateerde cmdlets om de gebruiker een symmetrische weergave van de gegevens in het archief te geven.

Windows PowerShell biedt verschillende standaard Windows PowerShell-providers. De registerprovider ondersteunt bijvoorbeeld navigatie en manipulatie van het Windows-register. Registersleutels worden weergegeven als items en registerwaarden worden behandeld als eigenschappen.

Als u een gegevensarchief beschikbaar maakt waartoe de gebruiker toegang moet hebben, moet u mogelijk uw eigen Windows PowerShell-provider schrijven, zoals beschreven in Windows PowerShell-providers maken. Zie Hoe Windows PowerShell werktvoor meer informatie over Windows PowerShell-providers.

Hosttoepassing

Windows PowerShell bevat de standaardhosttoepassing powershell.exe, een consoletoepassing die communiceert met de gebruiker en als host fungeert voor de Windows PowerShell-runtime met behulp van een consolevenster.

Alleen zelden moet u uw eigen hosttoepassing schrijven voor Windows PowerShell, hoewel aanpassing wordt ondersteund. Een geval waarin u mogelijk uw eigen toepassing nodig hebt, is wanneer u een vereiste hebt voor een GUI-interface die uitgebreider is dan de interface die wordt geleverd door de standaardhosttoepassing. Mogelijk wilt u ook een aangepaste toepassing wanneer u uw GUI op de opdrachtregel baseert. Zie Een Windows PowerShell-hosttoepassing makenvoor meer informatie.

Windows PowerShell Runtime

De Windows PowerShell-runtime is de uitvoeringsengine waarmee opdrachtverwerking wordt geïmplementeerd. Het bevat de klassen die de interface bieden tussen de hosttoepassing en Windows PowerShell-opdrachten en -providers. De Windows PowerShell-runtime wordt geïmplementeerd als een runspace-object voor de huidige Windows PowerShell-sessie. Dit is de operationele omgeving waarin de shell en de opdrachten worden uitgevoerd. Zie Hoe Windows PowerShell werktvoor operationele details.

Windows PowerShell-taal

De Windows PowerShell-taal biedt scriptfuncties en mechanismen voor het aanroepen van opdrachten. Zie de Windows PowerShell-taalverwijzing die is verzonden met Windows PowerShell voor volledige scriptinformatie.

Extended Type System (ETS)

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

  • Een subset van de leden van specifieke objecten weergeven. Windows PowerShell biedt een aangepaste weergave van verschillende specifieke objecttypen.

  • Leden toevoegen aan bestaande objecten.

  • Toegang tot geserialiseerde objecten.

  • Aangepaste objecten schrijven.

    Met behulp van ETS kunt u flexibele nieuwe typen maken die compatibel zijn met de Windows PowerShell-taal. Als u een .NET-ontwikkelaar bent, kunt u met objecten werken met dezelfde semantiek als de Windows PowerShell-taal die van toepassing is op scripting, bijvoorbeeld om te bepalen of een object trueevalueert.

    Zie Windows PowerShell Object Conceptsvoor meer informatie over ETS en hoe Windows PowerShell objecten gebruikt.

Programmeren voor Windows PowerShell

Windows PowerShell definieert de code voor opdrachten, providers en andere programmamodules met behulp van .NET Framework. U bent niet beperkt tot het gebruik van Microsoft Visual Studio bij het maken van aangepaste modules voor Windows PowerShell, hoewel de voorbeelden in deze handleiding bekend zijn om te worden uitgevoerd in dit hulpprogramma. U kunt elke .NET-taal gebruiken die klassenovername en het gebruik van kenmerken ondersteunt. In sommige gevallen is voor Windows PowerShell-API's vereist dat de programmeertaal toegang heeft tot algemene typen.

Naslaginformatie voor programmeurs

Zie de Windows PowerShell SDKvoor referentie bij het ontwikkelen voor Windows PowerShell.

Aan de slag met Windows PowerShell

Zie de Aan de slag met Windows PowerShell geleverd met Windows PowerShell voor meer informatie over het gebruik van de Windows PowerShell-shell. Er wordt ook een drievouddocument voor snelzoekgidsen geleverd als een primer voor het gebruik van cmdlets.

Inhoud van deze handleiding

Onderwerp Definitie
Een Windows PowerShell-provider maken In deze sectie wordt beschreven hoe u een Windows PowerShell-provider voor Windows PowerShell bouwt.
Een Windows PowerShell-hosttoepassing maken In deze sectie wordt beschreven hoe u een hosttoepassing schrijft die een runspace bewerkt en hoe u een hosttoepassing schrijft die een eigen aangepaste host implementeert.
Een Windows PowerShell-module maken In deze sectie wordt beschreven hoe u een module maakt die wordt gebruikt om alle cmdlets en providers in een assembly te registreren en hoe u een aangepaste module maakt.
Een Console Shell- maken In deze sectie wordt beschreven hoe u een consoleshell maakt die niet kan worden uitgebreid.
Windows PowerShell-concepten Deze sectie bevat conceptuele informatie waarmee u Windows PowerShell begrijpt vanuit het oogpunt van een ontwikkelaar.

Zie ook

Windows PowerShell SDK