De 10 Basis PowerShell-commando’s Die Je Moet Kennen

Heb je ooit geprobeerd wat PowerShell-code te schrijven en kwam je vast te zitten? Maak je geen zorgen meer! Een van de beste manieren om goed te worden in PowerShell is door de basis te begrijpen. Het kennen van een paar basis PowerShell-commando’s kan je een professional maken, en je zult administratieve taken efficiënter automatiseren.

In deze tutorial leer je de basis PowerShell-cmdlets die je moet kennen om je PowerShell-ervaring interessanter te maken.

Vereisten

Deze tutorial zal een hands-on demonstratie zijn, maar heeft niet veel vereisten. Als je wilt volgen, zal elk systeem (Windows of Linux) met PowerShell 5.1 of hoger werken. Hoewel de commando’s worden getoond met Windows PowerShell, werken de onderstaande voorbeelden in PowerShell 7+ cross-platform.

Hulpinformatie over commando’s krijgen met Get-Help

Heb je ooit gecodeerd als een baas zonder enige hulp te krijgen? Nou, er zal altijd een behoefte aan hulp zijn terwijl je codeert. Of je nu code of commando’s uitvoert in een command-line omgeving, de Get-Help cmdlet komt goed van pas.

Laten we deze tutorial beginnen door te leren hoe de Get-Help cmdlet werkt.

De Get-Help cmdlet biedt u de gidsen die nodig zijn om elk commando effectief te gebruiken zonder fouten te krijgen. Zie het als documentatie voor elk van de PowerShell-commando’s.

Open PowerShell als beheerder, en voer het onderstaande Get-Help-commando uit om gedetailleerde (-Gedetailleerd) informatie over een commando te bekijken, zoals het Get-ExecutionPolicy cmdlet.

Get-Help -Name Get-ExecutionPolicy -Detailed
Getting Detailed Information of Commands

Misschien wilt u in plaats van alleen gedetailleerde informatie volledige informatie over een cmdlet bekijken. Voeg in dat geval de -Volledig parameter toe aan het Get-Help-commando.

Voer de onderstaande code uit om volledige (-Volledig) informatie te krijgen over de Get-Help cmdlet zelf.

Get-Help Get-Help -Full
Getting Full Information of Commands

Misschien heeft u nog meer voorbeelden nodig om fouten te vermijden bij het uitvoeren van het commando. Voeg in dat geval de -Voorbeelden parameter toe om voorbeelden te zien van het schrijven van een commando.

Voer het onderstaande Get-Help-commando uit om voorbeelden (-Voorbeelden) te krijgen van hoe u de Get-Process cmdlet kunt gebruiken.

 Get-Help Get-Process -Examples
Applying -Examples to get help for Get-Process

Het ophalen van computerprocessen met Get-Process

Herinner je je de Windows Taakbeheer nog die al je processen, services, toepassingen en dergelijke weergeeft? Goed! Het Get-Process cmdlet is een eenvoudig maar essentieel cmdlet dat je toegang geeft tot alle processen op je computer in een paar stappen zonder Taakbeheer te openen.

Voer de volgende opdracht uit om een lijst met al je systeemprocessen in tabelvorm te krijgen.

Get-Process
Getting All Windows Processes

Wanneer een proces vastloopt en je computer langzaam maakt, stop het proces dan door het Get-Process cmdlet te pijpen naar het Stop-Process cmdlet. Bijvoorbeeld: voer Get-Process -Id 1252 | Stop-Process uit, waar -Id 1252 de proces-ID van het proces is dat je wilt stoppen.

PowerShell-sessiegeschiedenis ophalen met Get-History

Er zou een behoefte kunnen zijn om uw recente commando’s te controleren, zoals het verifiëren of het recente commando dat u hebt uitgevoerd correct is of dat u daadwerkelijk een commando hebt uitgevoerd. Maar heeft PowerShell commando’s geschiedenis? Ja! Het Get-History cmdlet retourneert een object van al uw recente commando’s in uw huidige PowerShell-sessie.

Voer het onderstaande commando uit om een lijst te krijgen van alle recent uitgevoerde commando’s in uw huidige sessie.

Get-History
Getting the commands history of the current session

Als u liever specifieke commando’s uit de geschiedenis bekijkt, voeg dan de -Id parameter toe, gevolgd door het ID-nummer van het commando uit de geschiedenis. Bijvoorbeeld, voer Get-History -Id 2 uit om het tweede commando in de geschiedenis te zien.

Weergeven van Systeemservices met Get-Service

Net als het Get-Process cmdlet, stelt PowerShell u ook in staat om alle services die op uw systeem worden uitgevoerd te bekijken. Het Get-Service cmdlet stelt u in staat om alle services te bekijken, wat een databaseserver of toepassing kan zijn die automatisch de helderheid van uw computerscherm regelt.

Voer de onderstaande opdracht uit om een lijst van alle services op uw systeem te krijgen in tabelvorm. Met deze opdracht kunt u zelfs gestopte services bekijken.

Get-Service
Getting all available services on the local computer

Misschien zoekt u naar services die met een specifiek karakter beginnen. Voeg in dat geval een wildcardkarakter (*) toe.

Voer de Get-Service-opdracht hieronder uit, waarbij u de eerste letter en het asterisk-teken (A*) van de services die u wilt bekijken doorgeeft. Door het wildcardkarakter toe te voegen, kunt u alle services filteren die niet met de letter ‘A’ beginnen.

Get-Service A*
Getting all services that start with the letter ‘A’

Uitvoeren van achtergrondtaken met Start-Job

Het schrijven van codes kan vervelend zijn als er nog zoveel te schrijven is, maar een enkele opdracht eeuwig duurt om te schrijven. Geen probleem! PowerShell biedt een cmdlet om achtergrondtaken uit te voeren in uw sessie. De Start-Job-cmdlet biedt een PowerShell-omgeving om code of opdrachten uit te voeren als een achtergrondtaak zonder gebruikersinteractie.

Voer de Start-Job-opdracht hieronder uit om een achtergrondtaak te starten voor de Get-Command-cmdlet. Het starten van een achtergrondtaak voert de Get-Command-cmdlet uit zonder de uitvoer weer te geven op uw opdrachtregel.

Start-Job -ScriptBlock {Get-Command}
Starting a background job for Get-Command

Aangezien het achtergrondtaken zijn, hoe controleert u dan of een taak nog steeds wordt uitgevoerd of is voltooid? Voer de Get-Job-cmdlet uit om alle taken in uw sessie te krijgen.

Het wijzigen van werkdirectories met Set-Location

Er zijn momenten waarop je directories moet wijzigen, zoals bij het uitvoeren van een script of programma vanaf een specifieke locatie. Maar hoe wijzig je directories? Laat de Set-Location cmdlet je daarbij helpen. De Set-Location cmdlet stelt de huidige werkmap in op de door jou opgegeven directory in een opdracht.

Voer de onderstaande code uit om de huidige werkmap in te stellen op C:\Users\hp\Desktop. Vervang hp door de gebruikersnaam van je computer.

Set-Location C:\Users\hp\Desktop

Hieronder zie je in de prompt dat C:\Users\hp\Desktop nu de werkmap is.

Changing Working Directory

Controleren of paden bestaan via Test-Path

PowerShell kan een fout weergeven als je probeert toegang te krijgen tot een bestand dat niet bestaat. Hoe vermijd je dat? De Test-Path cmdlet laat je controleren of een pad bestaat of niet, met zijn intuïtieve syntaxis.

Maak nu een map op het bureaublad met de naam NewFolder.

Voer de Test-Path opdracht hieronder uit, gevolgd door het pad dat je wilt testen. Voor dit voorbeeld test de opdracht of het pad C:\Users\hp\Desktop\NewFolder bestaat.

Test-Path C:\Users\hp\Desktop\NewFolder

Hieronder zie je dat de opdracht een waarde van True heeft geretourneerd omdat het pad bestaat. Anders krijg je een uitvoer van False.

Testing if the path exists

PowerShell-object converteren naar HTML met ConvertTo-HTML

Als je de gegevens liever in georganiseerde vorm hebt, converteer dan je gegevens naar HTML met de ConvertTo-Html-cmdlet. Fundamenteel neemt de opdracht het uitvoerbestand in dat je wilt converteren en de bestandsnaam waarmee je het wilt opslaan.

Voer de onderstaande opdracht uit om de lijst van alle PowerShell-opdrachten (Get-Command) in het geheugen te verzamelen en de lijst te converteren naar een HTML-bestand met de opdracht (ConvertTo-Html) met de naam Command.html.

Het HTML-bestand wordt opgeslagen op je bureaublad omdat je eerder de werkdirectory hebt gewijzigd. Om het HTML-bestand op een andere locatie op te slaan, geef je het volledige pad op. Bijvoorbeeld: Get-Command | ConvertTo-HTML > C:\Temp\Commands.html

# Maakt een Commands.html-bestand aan dat alle PowerShell-opdrachten bevat
Get-Command | ConvertTo-Html > Commands.html

PowerShell-objecten exporteren naar CSV met Export-CSV

Als u denkt dat een rapport in CSV-formaat beter zou zijn dan HTML, gebruik dan het Export-CSV cmdlet. Net als het ConvertTo-Html cmdlet, laat het Export-CSV cmdlet u gegevens exporteren naar een CSV-bestand.

Voer de onderstaande opdracht uit om een lijst met PowerShell-opdrachten (Get-Command) te verzamelen en de lijst te exporteren als een CSV-bestand (Export-CSV) met de naam Commands.csv.

Get-Command | Export-CSV Commands.csv

Net als bij het ConvertTo-Html cmdlet, kunt u ook een exportpad voor het CSV-bestand opgeven zoals dit: Get-Command | Export-CSV C:\Temp\Commands.csv

Open het Commands.csv bestand en u ziet iets zoals hieronder. Niet slecht, toch?

Opening Exported Commands.csv in Microsoft Excel

Het bekijken van alle beschikbare PowerShell-opdrachten met Get-Command

De laatste PowerShell-opdracht in de lijst is het Get-Command cmdlet. Het Get-Command cmdlet lijst in feite alle beschikbare PowerShell-opdrachten die u kunt uitvoeren in een tabelindeling. Maar zoals u hebt gezien in de vorige voorbeelden, weet u dat dit niet alles is wat het Get-Command cmdlet kan doen.

Misschien wilt u de cmdlets of de aliassen selectief vermelden. Voeg indien nodig de parameter -CommandType toe aan de Get-Command-cmdlet om de uitvoer te filteren op het opgegeven commandotype. De waarde van de parameter -CommandType kan Alias, Cmdlet of Function zijn.

Voer de onderstaande Get-Command-opdracht uit om alleen cmdlets (-CommandType Cmdlet) weer te geven met namen die beginnen met ‘G’ (-Name G*).

Get-Command -Name G* -CommandType Cmdlet
Getting all cmdlets that start with the letter ‘G’

Nog een manier om de uitvoer van Get-Command te filteren, is door deze door te sturen naar de Select-Object-cmdlet. Zoals u weet, wordt het object dat wordt geretourneerd door de Get-Command-cmdlet weergegeven in een tabelindeling. In die tabel vertegenwoordigen de kolomnamen de eigenschappen die u kunt selecteren uit het object.

Voer de onderstaande Get-Command-opdracht uit om een lijst te maken van alle PowerShell-opdrachten en de weergave te filteren om de definitie-eigenschap van elke opdracht te tonen (Select-Object -Property Definition).

Get-Command | Select-Object -Property Definition
Property Definition

Conclusie

Deze tutorial heeft u een uitgebreide handleiding gegeven voor het uitvoeren van basis-PowerShell-opdrachten. U zou nu moeten weten hoe u uitgebreid opdrachten kunt doorsturen en uitvoeren en hoe u op elk moment problemen kunt vermijden bij het coderen.

Nu, hoe zou u voortbouwen op deze nieuwe kennis? Misschien leren hoe u in PowerShell-scripts op meerdere regels kunt schrijven zonder dingen te verpesten?

Source:
https://adamtheautomator.com/basic-powershell-commands/