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.