5 cmdlets om aan de slag te gaan met PowerShell
PowerShell wordt snel de voorkeursscripttaal en CLI van hoofdgebruikers en IT-professionals. Het is de moeite waard om een paar opdrachten te leren om u op weg te helpen, dus we hebben 5 bruikbare cmdlets die u vandaag nog kunt leren.
Get-Command
Het Get-Command is een van de handigste cmdlets in het geheel van PowerShell, omdat het u helpt grip te krijgen op PowerShell door u te laten zoeken naar bepaalde cmdlets. Het gebruik van Get-Command op zichzelf is weliswaar niet erg nuttig, omdat het gewoon elke opdracht die PowerShell heeft, uitspuugt.
Maar hieruit kunnen we zien dat de objecten die PowerShell-uitgangen bevatten zowel een Name- als een ModuleName-eigenschap hebben. Met behulp van deze informatie kunnen we onze zoekopdracht verfijnen door te zoeken naar cmdlets die bepaalde termen bevatten. Als ik bijvoorbeeld alle cmdlets wilde vinden die het woord 'IP' bevatten, zou ik dit kunnen doen:
Get-Command -Name * IP *
Zoals je ziet krijgen we nog steeds behoorlijk wat resultaten, onze volgende optie is om binnen een specifieke module te zoeken. In ons geval zal ik de NetTCPIP-module kiezen.
Get-Command-Module NetTCPIP-Naam * IP *
Krijg hulp
Zodra u de cmdlet gevonden hebt die u zoekt met Get-Command, wilt u de syntaxis weten en weten hoe u die specifieke cmdlet kunt gebruiken. Dit is waar Get-Help wordt geleverd, als je ooit de opdrachtregel in Windows hebt gebruikt, deed je waarschijnlijk zoiets als dit:
ipconfig /?
Dat werkt niet in PowerShell, dit komt omdat in PowerShell een spatie wordt gebruikt om een opdracht van de parameters te scheiden. In plaats daarvan gebruiken we Get-Help en geven een cmdlets-naam door aan Get-Help als parameter.
Get-Help Get-Process
Get-Member
Get-Member stelt ons in staat om informatie te krijgen over de objecten die een cmdlets retourneert. Het voordeel van get-member is dat het is gebaseerd op de pipeline-functie van PowerShell. Om dit te demonstreren, kunnen we de Get-Process-cmdlet gebruiken.
Zoals u kunt zien, laten de uitvoer van PowerShell ons een aantal eigenschappen zien, die u bovenaan elke kolom kunt zien. Het eerste probleem is dat, hoewel dit de eigenschappen zijn waar u wellicht de meeste tijd naar op zoek bent, er nog steeds meer zijn. Het tweede probleem is dat het geen methoden laat zien die we op het object kunnen oproepen. Om de methoden en eigenschappen te bekijken, kunnen we onze uitvoer naar Get-Member pijpen, zoals zo:
Get-Process | Get-Member
Hoewel het op dit moment misschien niets voor u betekent, zult u vroeg of laat een Get-Member moeten gebruiken, en hoe sneller u leert hoe u het kunt gebruiken, hoe beter. Als voorbeeld, met behulp van de informatie van de output, kunnen we iets doen als:
Start-proces notepad.exe
$ NotepadProc = Get-Process -Name notepad
$ NotepadProc.WaitForExit ()
Start-proces calc.exe
In dat script wordt kladblok gestart en vervolgens wordt de uitvoer van "Get-Process -Name notepad" toegewezen aan de $ NotepadProc-variabele. Vervolgens wordt de WaitForExit-methode aangeroepen op $ NotepadProc waardoor het script wordt onderbroken totdat u het Kladblok sluit, nadat u het Kladblok hebt gesloten dan zal de rekenmachine starten.
$ _ (Huidige pijplijnobject)
Hoewel dit niet echt een cmdlet is, is het een van de meest gebruikte speciale variabelen in PowerShell. De officiële naam voor $ _ is "het huidige pijplijnobject". Het wordt gebruikt in scriptblokken, filters, de procesclausule van functies, where-object, foreach-object en switches. Het is echter gemakkelijker om het uit te leggen met een voorbeeld, wat ons naar onze volgende en laatste cmdlet, Where-Object brengt.
Waar-Object
Where-Object doet precies hoe het klinkt, het selecteert een object op basis van of het aan een bepaald criterium voldoet. Dit brengt $ _ samen, en de eigenschappen die we kunnen zien met behulp van Get-Member. Om dit te demonstreren, zullen we de uitvoer van Get-Process naar de Where-Object-cmdlet leiden.
Get-Process | Where-Object $ _. Name -eq "iexplore"
Dus wat is hier aan de hand, vraag je? Het eerste dat we doen is een lijst met processen op onze computer krijgen en de uitvoer (met behulp van het teken |) doorgeven aan onze Where-Object-cmdlet, waarbij een scriptblok als parameter wordt gebruikt. Het scriptblok (gedefinieerd door de accolades) geeft de Where-Object-cmdlets de opdracht om alleen objecten te selecteren waarvan de naamparameter gelijk is aan "iexplore" en daarom krijgen we alleen een lijst met de IE-exemplaren die worden uitgevoerd. Dat is alles wat er is, veel plezier!