Articles

Vad är PowerShell?

  • 05/22/2020
  • 5 minuter att läsa
    • j
    • s
    • s

PowerShell är en plattformsoberoende task automation och konfigurationshanteringsramverk, bestående avett kommandoradsskal och skriptspråk. Till skillnad från de flesta skal, som accepterar och returnerar text,är PowerShell byggd ovanpå. Net Common Language Runtime (CLR), och accepterar och returnerar .NETobjects., Denna grundläggande förändring ger helt nya verktyg och metoder för automatisering.

utdata är objektbaserad

Till skillnad från traditionella kommandoradsgränssnitt är PowerShell cmdlets utformade för att hantera objects.An objektet är strukturerad information som är mer än bara strängen av tecken som visas på skärmen. Kommandoutmatning bär alltid extra information som du kan använda om du behöver det.

om du har använt textbehandlingsverktyg för att bearbeta data tidigare, kommer du att upptäcka att de beter sig på ett lämpligt sätt när de används i PowerShell., I de flesta fall behöver du inte textbehandlingsverktyg för att extrahera specifik information. Du kommer direkt åt delar av data med standard PowerShell objectsyntax.

kommandofamiljen är utbyggbar

gränssnitt somcmd.exe ger inte ett sätt för dig att utöka den inbyggda kommandouppsättningen direkt. Du kan skapa externa kommandoradsverktyg som körs i cmd.exe. Men dessa externa verktyghar inte tjänster, till exempel Hjälpintegration. cmd.exe vet inte automatiskt att dessa externa verktyg är giltiga kommandon.,

kommandona i PowerShell kallas cmdlets. Du kan använda varje cmdlet separat, men derasKraft realiseras när du kombinerar dem för att utföra komplexa uppgifter. Liksom många skal ger Powershelldu tillgång till filsystemet på datorn. PowerShell-leverantörer gör att du kan komma åt andradatabutiker, till exempel registret och certifikatbutikerna, lika enkelt som du kommer åt filsystemet.

Du kan skapa din egen cmdlet och funktionsmoduler med hjälp av kompilerad kod eller skript. Moduler kan addcmdlets och leverantörer till skalet., PowerShell stöder också skript som är analoga med unixshell-skript och cmd.exe batch-filer.

stöd för kommandoralias

PowerShell stöder alias för att hänvisa till kommandon med alternativa namn. Aliasing tillåter användare medexperience i andra skal att använda vanliga kommandonamn som de redan vet för liknandeOperationer i PowerShell.

Aliasing associerar ett nytt namn med ett annat kommando. PowerShell har till exempel en internfunktion som heter Clear-Host som rensar utdatafönstret., Du kan skriva antingen cls ellerclear aliaset vid en kommandotolk. PowerShell tolkar dessa alias och kör funktionenClear-Host.

den här funktionen hjälper användare att lära sig PowerShell. För det första har de flesta cmd.exe och Unix-användare en largerepertoire av kommandon som användare redan vet med namn. PowerShell-ekvivalenterna får inte produceraidentiska resultat. Resultaten är dock tillräckligt nära för att användarna ska kunna arbeta utan att känna till kommandonamnet PowerShell., ”Muscle memory” är en annan viktig källa till frustration när man lär sig ett newcommand skal. Om du har använt kommandot cmd.exe I flera år kan du reflexmässigt skriva kommandot cls för att rensa skärmen. Utan aliaset för Clear-Host får du ett felmeddelande och vet inte vad du ska göra för att rensa utdata.

PowerShell hanterar konsolingång och visning

När du skriver ett kommando behandlar PowerShell alltid kommandoradsingången direkt. Powershellformaterar också utgången som du ser på skärmen., Denna skillnad är signifikant eftersom denminskar det arbete som krävs av varje cmdlet. Det säkerställer att du alltid kan göra saker på samma sättmed vilken cmdlet som helst. Cmdlet utvecklare behöver inte skriva kod för att tolka kommandoradsargument ellerformat utdata.

traditionella kommandoradsverktyg har sina egna system för att begära och visa hjälp. Somecommand-line verktyg använder /? för att utlösa Hjälpdisplayen; andra använder -?, /H, eller till och med//., Vissa kommer att visa hjälp i ett GUI-fönster, snarare än i konsoldisplayen. Om du använder felparametern kan verktyget ignorera vad du skrev och börja utföra en uppgift automatiskt.Eftersom PowerShell automatiskt tolkar och bearbetar kommandoraden,-? parametern alwaysmeans ”visa mig hjälp för det här kommandot”.

Obs

om du kör ett grafiskt program i PowerShell öppnas fönstret för programmet.PowerShell ingriper endast när du bearbetar kommandoradsingången du levererar eller applikationenutput återvände till konsolfönstret., Det påverkar inte hur ansökan fungerar internt.

PowerShell har en rörledning

rörledningar är utan tvekan det mest värdefulla konceptet som används i kommandoradsgränssnitt. När man använderlämpligt minskar rörledningarna ansträngningen att använda komplexa kommandon och gör det lättare att se flödet av arbete. Varje kommando i en pipeline passerar sin utgång, post för objekt, till nästa kommando. Commandsdon behöver inte hantera mer än ett objekt i taget. Resultatet är minskad resursförbrukning ochförmågan att få utdata omedelbart.,

notationen som används för rörledningar liknar notationen som används i andra skal. Vid första anblicken kan det inte vara uppenbart hur rörledningar är olika i PowerShell. Även om du ser text på skärmen,rör PowerShell objekt, inte text, mellan kommandon.,

till exempel, om du använder Out-Host cmdlet för att tvinga en sida för sida visning av utgång fromanother kommando, utdata ser ut precis som den normala texten som visas på skärmen, bryts upp In Isidor:

Get-ChildItem | Out-Host -Paging

Paging minskar också CPU-användning eftersom bearbetning överföringar till Out-Host cmdlet när ithas en komplett sida redo att visas. De cmdlets som föregår det i pipeline pause executiontills Nästa sida av produktionen är tillgänglig.,

objekt i rörledningen

När du kör en cmdlet i PowerShell ser du textutmatning eftersom det är nödvändigt att representeraobjekt som text i ett konsolfönster. Textutmatningen kanske inte visar alla egenskaper förobjektet som matas ut.

tänk till exempel påGet-Location cmdlet. Textutmatningen är en sammanfattning av information, inte enfullständig representation av objektet som returneras av Get-Location. Rubriken i utmatningen läggs tillgenom processen som formaterar data för skärmvisning.,

Get-Location
Path----C:\

rör utmatningen tillGet-Member cmdlet visar information om objektet som returneras avGet-Location.

Get-Location | Get-Member

Get-Location returnerar ett PathInfo-objekt som innehåller den aktuella sökvägen och annan information.

inbyggt hjälpsystem

liknar Unixman sidor, innehåller PowerShell detaljerade hjälpartiklar som förklarar PowerShellconcepts och kommandosyntax., Använd Get-Help cmdlet för att visa dessa artiklar på commandprompt eller visa de senast uppdaterade versionerna av dessa artiklar i PowerShell documentationonline.

för att lära dig mer om PowerShell, se avsnittet Learning PowerShell på den här webbplatsen.