Dela via


Programmeringsguide för Windows PowerShell

Den här programmerarens guide riktar sig till utvecklare som är intresserade av att tillhandahålla en kommandoradshanteringsmiljö för systemadministratörer. Windows PowerShell är ett enkelt sätt för dig att skapa hanteringskommandon som exponerar .NET-objekt, samtidigt som Windows PowerShell kan utföra det mesta av arbetet åt dig.

I traditionell kommandoutveckling måste du skriva en parameterparser, en parameterbindning, filter och alla andra funktioner som exponeras av varje kommando. Windows PowerShell tillhandahåller följande för att göra det enkelt för dig att skriva kommandon:

  • En kraftfull Windows PowerShell-körning (körningsmotor) med en egen parser och en mekanism för automatiskt bindning av kommandoparametrar.

  • Verktyg för formatering och visning av kommandoresultat med hjälp av en kommandoradstolk (CLI).

  • Stöd för höga funktioner (via Windows PowerShell-leverantörer) som gör det enkelt att komma åt lagrade data.

    Till liten kostnad kan du representera ett .NET-objekt med ett omfattande kommando eller en uppsättning kommandon som ger administratören en fullständig kommandoradsupplevelse.

    I nästa avsnitt beskrivs viktiga begrepp och termer för Windows PowerShell. Bekanta dig med dessa begrepp och termer innan du börjar utveckla.

Om Windows PowerShell

Windows PowerShell definierar flera typer av kommandon som du kan använda under utveckling. Dessa kommandon omfattar: funktioner, filter, skript, alias och körbara filer (program). Huvudkommandotypen som beskrivs i den här guiden är ett enkelt, litet kommando som kallas "cmdlet". Windows PowerShell tillhandahåller en uppsättning cmdletar och har fullt stöd för cmdlet-anpassning som passar din miljö. Windows PowerShell-körningen bearbetar alla kommandotyper precis som cmdletar med hjälp av pipelines.

Förutom kommandon har Windows PowerShell stöd för olika anpassningsbara Windows PowerShell-leverantörer som gör specifika uppsättningar med cmdletar tillgängliga. Gränssnittet fungerar i det Windows PowerShell-tillhandahållna värdprogrammet (powershell.exe), men det är lika tillgängligt från ett anpassat värdprogram som du kan utveckla för att uppfylla specifika krav. Mer information finns i Hur Windows PowerShell fungerar.

Windows PowerShell-cmdletar

En cmdlet är ett enkelt kommando som används i Windows PowerShell-miljön. Windows PowerShell-körningen anropar dessa cmdletar inom ramen för automationsskript som finns på kommandoraden, och Windows PowerShell-körningen anropar dem även programmatiskt via Windows PowerShell-API:er.

Mer information om cmdletar finns i Skriva en Windows PowerShell-cmdlet.

Windows PowerShell-leverantörer

När du utför administrativa uppgifter kan användaren behöva undersöka data som lagras i ett datalager (till exempel filsystemet, Windows-registret eller ett certifikatarkiv). För att göra dessa åtgärder enklare definierar Windows PowerShell en modul som kallas en Windows PowerShell-provider som kan användas för att komma åt ett specifikt datalager, till exempel Windows-registret. Varje provider stöder en uppsättning relaterade cmdletar för att ge användaren en symmetrisk vy över data i arkivet.

Windows PowerShell tillhandahåller flera standardleverantörer av Windows PowerShell. Registerprovidern stöder till exempel navigering och manipulering av Windows-registret. Registernycklar representeras som objekt och registervärden behandlas som egenskaper.

Om du exponerar ett datalager som användaren behöver åtkomst till kan du behöva skriva en egen Windows PowerShell-provider enligt beskrivningen i Skapa Windows PowerShell-providers. Mer information omWindows PowerShell-leverantörer finns i Hur Windows PowerShell fungerar.

Värdprogram

Windows PowerShell innehåller standardvärdprogrammet powershell.exe, som är ett konsolprogram som interagerar med användaren och är värd för Windows PowerShell-körningen med hjälp av ett konsolfönster.

Endast sällan behöver du skriva ett eget värdprogram för Windows PowerShell, även om anpassning stöds. Ett fall där du kan behöva ditt eget program är när du har ett krav på ett GUI-gränssnitt som är mer omfattande än det gränssnitt som tillhandahålls av standardvärdprogrammet. Du kanske också vill ha ett anpassat program när du baserar ditt GUI på kommandoraden. Mer information finns i Så här skapar du ett Windows PowerShell-värdprogram.

Windows PowerShell Runtime

Windows PowerShell-körningen är körningsmotorn som implementerar kommandobearbetning. Den innehåller de klasser som tillhandahåller gränssnittet mellan värdprogrammet och Windows PowerShell-kommandon och -leverantörer. Windows PowerShell-körningen implementeras som ett runspace-objekt för den aktuella Windows PowerShell-sessionen, som är den driftsmiljö där gränssnittet och kommandona körs. Mer information om drift finns i Hur Windows PowerShell fungerar.

Windows PowerShell-språk

Windows PowerShell-språket innehåller skriptfunktioner och mekanismer för att anropa kommandon. Fullständig skriptinformation finns i Windows PowerShell Language Reference som levereras med Windows PowerShell.

ETS (Extended Type System)

Windows PowerShell ger åtkomst till en mängd olika objekt, till exempel .NET- och XML-objekt. För att presentera en gemensam abstraktion för alla objekttyper använder gränssnittet därför sitt utökade typsystem (ETS). De flesta ETS-funktioner är transparenta för användaren, men skriptet eller .NET-utvecklaren använder det i följande syfte:

  • Visa en delmängd av medlemmarna i specifika objekt. Windows PowerShell ger en "anpassad" vy över flera specifika objekttyper.

  • Lägga till medlemmar i befintliga objekt.

  • Åtkomst till serialiserade objekt.

  • Skriva anpassade objekt.

    Med ETS kan du skapa flexibla nya "typer" som är kompatibla med Windows PowerShell-språket. Om du är .NET-utvecklare kan du arbeta med objekt med samma semantik som Windows PowerShell-språket gäller för skript, till exempel för att avgöra om ett objekt utvärderas till true.

    Mer information om ETS och hur Windows PowerShell använder objekt finns i Windows PowerShell-objektbegrepp.

Programmering för Windows PowerShell

Windows PowerShell definierar sin kod för kommandon, leverantörer och andra programmoduler med hjälp av .NET Framework. Du är inte begränsad till att använda Microsoft Visual Studio för att skapa anpassade moduler för Windows PowerShell, även om exemplen i den här guiden är kända för att köras i det här verktyget. Du kan använda alla .NET-språk som stöder klassarv och användning av attribut. I vissa fall kräver Windows PowerShell-API:er programmeringsspråket för att kunna komma åt generiska typer.

Programmerarens referens

Referens när du utvecklar för Windows PowerShell finns i Windows PowerShell SDK.

Komma igång med Windows PowerShell

Mer information om hur du börjar använda Windows PowerShell-gränssnittet finns i Komma igång med Windows PowerShell levereras med Windows PowerShell. Ett tredelat snabbreferensdokument tillhandahålls också som en primer för cmdlet-användning.

Innehållet i den här guiden

Ämne Definition
Skapa en Windows PowerShell-provider I det här avsnittet beskrivs hur du skapar en Windows PowerShell-provider för Windows PowerShell.
Skapa ett Windows PowerShell-värdprogram I det här avsnittet beskrivs hur du skriver ett värdprogram som manipulerar en runspace och hur du skriver ett värdprogram som implementerar en egen anpassad värd.
Skapa ett Windows PowerShell-snapin- I det här avsnittet beskrivs hur du skapar en snapin-modul som används för att registrera alla cmdletar och leverantörer i en sammansättning och hur du skapar en anpassad snapin-modul.
Skapa ett Konsolgränssnitt I det här avsnittet beskrivs hur du skapar ett konsolgränssnitt som inte är utökningsbart.
Windows PowerShell-begrepp Det här avsnittet innehåller konceptuell information som hjälper dig att förstå Windows PowerShell från en utvecklares synvinkel.

Se även

Windows PowerShell SDK