Guide för Windows PowerShell-programmerare

Denna programmerarguide riktar sig till utvecklare som är intresserade av att erbjuda en kommandoradshanteringsmiljö för systemadministratörer. Windows PowerShell ger ett enkelt sätt för dig att bygga hanteringskommandon som exponerar .NET-objekt, samtidigt som Windows PowerShell gör det mesta av arbetet åt dig.

Vid traditionell kommandoutveckling krävs det att du skriver en parameterparser, en parameterbindare, filter och all annan funktionalitet som varje kommando exponerar. Windows PowerShell erbjuder följande för att göra det enkelt för dig att skriva kommandon:

  • En kraftfull Windows PowerShell-runtime (exekveringsmotor) med egen parser och en mekanism för att automatiskt binda kommandoparametrar.

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

  • Stöd för hög funktionalitet (genom Windows PowerShell-leverantörer) som gör det enkelt att komma åt lagrad data.

    Till låg kostnad kan du representera ett .NET-objekt med ett rikt kommando eller en uppsättning kommandon som ger administratören en komplett kommandoradsupplevelse.

    Nästa avsnitt täcker de viktigaste Windows PowerShell-koncepten och termerna. Bekanta dig med dessa koncept och termer innan du börjar utveckla.

Om Windows PowerShell

Windows PowerShell definierar flera typer av kommandon som du kan använda i utveckling. Dessa kommandon inkluderar: funktioner, filter, skript, alias och exekverbara filer (applikationer). Den huvudsakliga kommandotypen som diskuteras i denna guide är ett enkelt, litet kommando som kallas "cmdlet". Windows PowerShell tillhandahåller en uppsättning cmdlets och stöder fullt ut anpassning av cmdlets för att passa din miljö. Windows PowerShell-runtime bearbetar alla kommandotyper precis som den gör med cmdlets, med hjälp av pipelines.

Förutom kommandon stödjer Windows PowerShell olika anpassningsbara Windows PowerShell-leverantörer som gör specifika uppsättningar av cmdlets tillgängliga. Skalet fungerar inom den Windows PowerShell-levererade värdapplikationen (powershell.exe), men är lika tillgänglig från en anpassad värdapplikation som du kan utveckla för att möta specifika krav. För mer information, se Hur Windows PowerShell fungerar.

Windows PowerShell Cmdlets

En cmdlet är ett lättviktigt kommando som används i Windows PowerShell-miljön. Windows PowerShell-runtime anropar dessa cmdlets inom ramen för automatiseringsskript som tillhandahålls i kommandoraden, och Windows PowerShell-runtime anropar dem också programmatiskt via Windows PowerShell-API:er.

För mer information om cmdlets, se Writing a Windows PowerShell Cmdlet.

Windows PowerShell-leverantörer

Vid administrativa uppgifter kan användaren behöva granska data som lagras i ett datalager (till exempel filsystemet, Windows-registret eller ett certifikatlager). För att göra dessa operationer enklare definierar Windows PowerShell en modul kallad Windows PowerShell-leverantör som kan användas för att komma åt en specifik datalagring, såsom Windows-registret. Varje leverantör stödjer en uppsättning relaterade cmdlets för att ge användaren en symmetrisk vy av datan i lagringen.

Windows PowerShell tillhandahåller flera standardleverantörer för Windows PowerShell. Till exempel stödjer registerleverantören navigering och manipulation av Windows-registret. Registernycklar representeras som objekt, och registervärden behandlas som egenskaper.

Om du exponerar en datalagring som användaren behöver komma åt, kan du behöva skriva din egen Windows PowerShell-leverantör, som beskrivs i Skapa Windows PowerShell-leverantörer. För mer information om Windows PowerShell-leverantörer, se Hur Windows PowerShell fungerar.

Värdapplikation

Windows PowerShell inkluderar standardvärdapplikationen powershell.exe, som är en konsolapplikation som interagerar med användaren och är värd för Windows PowerShell-runtime via ett konsolfönster.

Endast sällan behöver du skriva din egen värdapplikation för Windows PowerShell, även om anpassning stöds. Ett fall där du kan behöva en egen applikation är när du har ett behov av ett GUI-gränssnitt som är rikare än gränssnittet som tillhandahålls av standardvärdapplikationen. Du kanske också vill ha en anpassad applikation när du baserar ditt GUI på kommandoraden. För mer information, se Hur man skapar en Windows PowerShell-värdapplikation.

Windows PowerShell Runtime

Windows PowerShell-runtime är exekveringsmotorn som implementerar kommandobearbetning. Den inkluderar de klasser som utgör gränssnittet mellan värdapplikationen och Windows PowerShell-kommandon och leverantörer. Windows PowerShell-runtime implementeras som ett runspace-objekt för den aktuella Windows PowerShell-sessionen, vilket är den operativa miljö där skalet och kommandona exekveras. För operativa detaljer, se Hur Windows PowerShell fungerar.

Windows PowerShell Language

Windows PowerShell-språket tillhandahåller skriptfunktioner och mekanismer för att anropa kommandon. För fullständig skriptinformation, se Windows PowerShell Language Reference som följde med Windows PowerShell.

Utökat typsystem (ETS)

Windows PowerShell ger tillgång till en mängd olika objekt, såsom .NET- och XML-objekt. Som en följd använder skalet sitt utökade typsystem (ETS) för att presentera en gemensam abstraktion för alla objekttyper. De flesta ETS-funktioner är transparenta för användaren, men skriptet eller .NET-utvecklaren använder den för följande ändamål:

  • Att titta på en delmängd av medlemmarna i specifika objekt. Windows PowerShell erbjuder en "adapterad" vy av flera specifika objekttyper.

  • Att lägga till medlemmar till befintliga objekt.

  • Tillgång till serialiserade objekt.

  • Att skriva anpassade objekt.

    Med hjälp av 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 som använder samma semantik som Windows PowerShell-språket tillämpar på skript, till exempel för att avgöra om ett objekt utvärderar till true.

    För mer information om ETS och hur Windows PowerShell använder objekt, se Windows PowerShell Object Concepts.

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 denna guide är kända för att köras i detta verktyg. Du kan använda vilket .NET-språk som helst som stödjer klassarv och användning av attribut. I vissa fall kräver Windows PowerShell-API:er att programmeringsspråket kan komma åt generiska typer.

Programmerarens referens

För referens vid utveckling för Windows PowerShell, se Windows PowerShell SDK.

Att komma igång med Windows PowerShell

För mer information om hur du börjar använda Windows PowerShell-skalet, se avsnittet Getting Started with Windows PowerShell som levereras med Windows PowerShell. Ett Quick Reference tri-fold-dokument tillhandahålls också som en introduktion för cmdlet-användning.

Innehåll i denna guide

Ämne Definition
Hur man skapar en Windows PowerShell-värdapplikation Detta avsnitt beskriver hur man skriver en värdapplikation som manipulerar ett runspace och hur man skriver en värdapplikation som implementerar sin egen anpassade värd.
Hur man skapar en Windows PowerShell-snap-in Detta avsnitt beskriver hur man skapar en snap-in som används för att registrera alla cmdlets och providers i en assembler och hur man skapar en anpassad snap-in.
Windows PowerShell-koncept Detta avsnitt innehåller konceptuell information som hjälper dig att förstå Windows PowerShell ur en utvecklares perspektiv.

Se även

Windows PowerShell SDK