Wat is PowerShell?
- 5 minuten te lezen
- j
- s
- s
PowerShell is een cross-platform taak automatisering en configuratie management framework, bestaande uit een command-line shell en scripttaal. In tegenstelling tot de meeste shells, die tekst accepteren en retourneren,PowerShell is gebouwd op de .net Common Language Runtime (CLR), en accepteert en retourneert.NETobjects., Deze fundamentele verandering brengt geheel nieuwe tools en methoden voor automatisering.
uitvoer is object-based
In tegenstelling tot traditionele opdrachtregelinterfaces zijn PowerShell-cmdlets ontworpen om objects.An object is gestructureerde informatie die meer is dan alleen de tekenreeks die op het scherm verschijnt. Command output bevat altijd extra informatie die je kunt gebruiken als je het nodig hebt.
als u in het verleden tekstverwerkingstools hebt gebruikt om gegevens te verwerken, zult u merken dat ze verschillend zijn wanneer ze in PowerShell worden gebruikt., In de meeste gevallen hebt u geen tekstverwerkingstools nodig om specifieke informatie te extraheren. U hebt rechtstreeks toegang tot delen van de gegevens met behulp van standaard PowerShell-objectsyntax.
de opdrachtfamilie is uitbreidbaar
Interfaces zoals cmd.exe
bieden geen manier om de ingebouwde opdrachtset direct uit te breiden. U kunt externe opdrachtregelprogramma ‘ s maken die draaien in cmd.exe
. Maar deze externe tools hebben geen diensten, zoals hulp-integratie. cmd.exe
weet niet automatisch dat de externe hulpmiddelen geldige opdrachten zijn.,
de opdrachten in PowerShell staan bekend als cmdlets. U kunt elke cmdlet afzonderlijk gebruiken, maar hunmacht wordt gerealiseerd wanneer u ze combineert om complexe taken uit te voeren. Zoals veel shells, PowerShell geeft u toegang tot het bestandssysteem op de computer. PowerShell-providers stellen u in staat om toegang te krijgen tot andere gegevensarchieven, zoals het register en de certificaatarchieven, net zo gemakkelijk als u toegang hebt tot het bestandssysteem.
u kunt uw eigen cmdlet-en functiemodules maken met behulp van gecompileerde code of scripts. Modules kunnen addcmdlets en providers aan de shell., PowerShell ondersteunt ook scripts die analoog zijn aan UNIXshell-scripts en cmd.exe
batchbestanden.
ondersteuning voor opdrachtaliassen
PowerShell ondersteunt aliassen om naar opdrachten te verwijzen met alternatieve namen. Aliasing stelt gebruikers met ervaring in andere shells in staat om common Commando Namen die ze al kennen te gebruiken voor similarooperations in PowerShell.
Aliasing koppelt een nieuwe naam aan een ander commando. PowerShell heeft bijvoorbeeld een interne functie genaamd Clear-Host
die het uitvoervenster wist., U kunt de cls
ofclear
alias typen bij een opdrachtprompt. PowerShell interpreteert deze aliassen en voert de functieClear-Host
uit.
Deze functie helpt gebruikers om PowerShell te leren. Ten eerste hebben de meeste cmd.exe
en Unix-gebruikers een groter aantal commando ‘ s dat gebruikers al bij naam kennen. De PowerShell-equivalenten mogen geen technische resultaten opleveren. De resultaten zijn echter dicht genoeg dat gebruikers werk kunnen doen zonder de naam van de PowerShell-opdracht te kennen., “Spiergeheugen” is een andere belangrijke bron van frustratie bij het leren van een nieuwe commandoschelp. Als u cmd.exe
jarenlang hebt gebruikt, kunt u reflexief het cls
commando typen om het scherm op te ruimen. Zonder de alias voor Clear-Host
, ontvangt u een foutmelding en weet u niet wat u moet doen om de uitvoer te wissen.
PowerShell verwerkt console-invoer en display
wanneer u een opdracht typt, verwerkt PowerShell de invoer op de opdrachtregel altijd rechtstreeks. PowerShell formatteert ook de output die je ziet op het scherm., Dit verschil is significant, omdat het het werk van elke cmdlet vermindert. Het zorgt ervoor dat je dingen altijd op dezelfde manier kunt doen met elke cmdlet. Cmdlet-ontwikkelaars hoeven geen code te schrijven om de opdrachtregelargumenten te ontleden of de uitvoer te formatteren.
traditionele opdrachtregelprogramma ’s hebben hun eigen schema’ s voor het aanvragen en weergeven van hulp. Sommige commando-regel gereedschappen gebruiken /?
om de Help display te activeren; anderen gebruiken -?
, /H
, of zelfs//
., Sommige zullen hulp weergeven in een GUI-venster, in plaats van in het console-scherm. Als je thewrong parameter gebruikt, kan het gereedschap negeren wat je hebt getypt en automatisch beginnen met het uitvoeren van een taak.Omdat PowerShell de opdrachtregel automatisch ontleedt en verwerkt, betekent de parameter -?
altijd “Help voor dit commando tonen”.
Note
Als u een grafische toepassing in PowerShell uitvoert, wordt het venster voor de toepassing geopend.PowerShell grijpt alleen in bij het verwerken van de opdrachtregelinvoer die u opgeeft of bij het terugsturen van de uitvoer van de toepassing naar het consolevenster., Het heeft geen invloed op hoe de applicatie intern werkt.
PowerShell heeft een pijplijn
pijpleidingen zijn misschien wel het meest waardevolle concept dat wordt gebruikt in opdrachtregelinterfaces. Wanneer pijpleidingen correct worden gebruikt, verminderen ze de inspanning van het gebruik van complexe commando ‘ s en maken ze het gemakkelijker om de stroom van werk te zien. Elk commando in een pijplijn geeft zijn uitvoer, item voor item, door aan het volgende commando. Commando ‘ s hoeven niet meer dan één item tegelijk af te handelen. Het resultaat is een verminderd hulpbronnenverbruik en het vermogen om onmiddellijk output te krijgen.,
de notatie die voor pijpleidingen wordt gebruikt, is vergelijkbaar met de notatie die in andere shells wordt gebruikt. Op het eerste gezicht kan het niet duidelijk zijn hoe pijpleidingen verschillend zijn in PowerShell. Hoewel je tekst op het scherm ziet,pipes PowerShell objecten, niet tekst, tussen commando ‘ s.,
bijvoorbeeld, als u de Out-Host
cmdlet te dwingen een pagina-voor-pagina weergave van de output fromanother opdracht, de output ziet er net als de normale tekst weergegeven op het scherm, gebroken intopages:
Get-ChildItem | Out-Host -Paging
Paging vermindert ook het CPU-gebruik omdat de verwerking van een overdracht naar de Out-Host
cmdlet bij heeft, dan wordt een volledige pagina klaar is om weer te geven. De cmdlets die eraan voorafgaan in de pijplijn pauzeren uitvoer tot de volgende pagina van de uitvoer beschikbaar is.,
objecten in de pijplijn
wanneer u een cmdlet in PowerShell uitvoert, ziet u tekstuitvoer omdat het noodzakelijk is om objecten als tekst in een consolevenster weer te geven. De tekstuitvoer toont mogelijk niet alle eigenschappen van het object dat wordt uitgevoerd.
neem bijvoorbeeld de Get-Location
cmdlet. De tekstuitvoer is een samenvatting van informatie, niet een complete weergave van het object geretourneerd door Get-Location
. De kop in de uitvoer wordt toegevoegd door het proces dat de gegevens formatteert voor het scherm.,
Get-Location
Path----C:\
doorsluizen van de uitvoer naar de Get-Member
cmdlet toont informatie over het object geretourneerd doorGet-Location
.
Get-Location | Get-Member
Get-Location
geeft een PathInfo-object terug dat het huidige pad en andere informatie bevat.
ingebouwd help-systeem
vergelijkbaar met Unix man
pages, bevat PowerShell gedetailleerde help-artikelen die Powershellconcepten en opdrachtsyntaxis uitleggen., Gebruik de cmdlet Get-Help om deze artikelen te tonen bij de opdrachtprompt of bekijk de meest recent bijgewerkte versies van deze artikelen in de PowerShell-documentatieonline.
voor meer informatie over PowerShell, zie de sectie PowerShell leren van deze site.