Powershell is een perfecte manier om een nieuwe coder aan de slag te krijgen op Windows. Powershell is gelijkwaardig command line-tool en scripttaal. Het biedt u de mogelijkheid om uw computer te automatiseren via dezelfde opdrachten die u gebruikt om het te beheren. Opdrachtprompt versus Windows PowerShell: wat is het verschil? Opdrachtprompt versus Windows PowerShell: wat is het verschil? Windows-gebruikers kunnen zich redden zonder de Command Prompt of PowerShell te gebruiken. Maar met Windows 10 en nieuwe functies om de hoek, misschien is het hoog tijd dat we het hebben geleerd. Lees verder . Als je een modern Windows-systeem hebt, heb je Powershell al. Het merendeel van de toepassingen is Windows-gericht, maar u kunt Powershell op een Mac- of Linux-machine installeren PowerShell op Linux installeren en gebruiken PowerShell op Linux installeren en gebruiken In 2016 startte PowerShell met Microsoft PowerShell en ontwikkelde het een platformonafhankelijke iteratie . In dit artikel laat ik je zien hoe je PowerShell onder Linux kunt installeren, uitvoeren en gebruiken! Lees ook meer.
Werken met Powershell
Er zijn twee manieren om Powershell te gebruiken. Er is het basisvenster met de opdrachtregel, dat wordt gebruikt om opdrachten uit te voeren of vooraf geschreven scripts in te roepen. Dan is er de ISE, die het CLI-venster combineert met een basisontwikkelomgeving. Hiermee kunt u uw scripts schrijven en testen.
De ISE heeft een doorzoekbare lijst met opdrachten en u kunt het terminalvenster gebruiken zonder dat een bestand geopend is. Met de opdrachtenlijst kunt u uw opdracht samenstellen en invoegen. Als u meer geavanceerde ontwikkeling uitvoert, installeert u de Visual Studio-code van Microsoft. Code bevat ondersteuning voor Git-versiebeheer 10 Essentiële productiviteitstips voor Visual Studio Code 10 Essentiële productiviteitstips voor Visual Studio Code Visual Studio-code blaast andere tekstbewerkers voor teksteditor uit het water. Het is gratis, open source, razendsnel en boordevol productiviteitsfuncties. Meer lezen en andere talen.
Powershell is uniek omdat het volledig is opgebouwd uit opdrachten, Microsoft noemt ze Cmdlets. Deze opdrachten zijn hetzelfde als u werkt via de opdrachtregel of complexe scripts schrijft. Dus terwijl u deze opdrachten gebruikt, kunt u nadenken over hoe u ze samenvoegt om uw eerste scripts te maken.
De basis: Get-Command, Get-Help, Get-Member
Alle Powershell-opdrachten hebben de vorm van Verb-Noun. De werkwoorden zijn meestal: Get, Set en New .
Met Get-Command kunt u elke beschikbare opdracht bekijken. Bij het uitvoeren van Get-Command, zie je dat er veel opdrachten zijn die hiermee beginnen.
Als je verder graaft dan alleen de namen van cmdlets, begin je te zien dat ze allemaal een vergelijkbare structuur hebben. Je roept ze bij naam op, net als bij Get-Command. Het gebruik van parameters verandert welke informatie je krijgt. Als u echter alleen de opdracht met standaardopties hebt gebruikt, hoe komt u dan te weten hoe u geavanceerde parameters gebruikt?
Het gebruik van de Get-Help cmdlet met Get-Command toont meer informatie over de cmdlet. We gebruiken de cmdlet met de volgende syntaxis:
Get-Help Get-Command
U ziet dan de basisinformatie over de parameters. Als u de parameterdetails en enkele gebruiksvoorbeelden wilt zien, voegt u de parameter -Full toe.
Als u alleen de voorbeelden wilt zien, kunt u het volgende uitvoeren:
Get-Help Get-Command -Examples
Deze cmdlet retourneert alleen de voorbeelden uit het helpbestand. Deze voorbeelden zijn heel nuttig omdat ze beschrijvingen bevatten. Deze helptekst legt uit wat de cmdlet en parameters doen tijdens het uitvoeren.
Als u het helpbestand in een apart venster wilt weergeven, kunt u -ShowWindow gebruiken . Dus als je loopt:
Get-Help Get-Command -ShowWindow
Powershell springt uit een venster met het volledige helpbestand. U hoeft hier niet de volledige parameter te gebruiken, omdat het venster het volledige artikel trekt.
Naarmate u meer geavanceerd wordt met Powershell, zult u merken dat u Get-Member vaker gebruikt. Het is een eenvoudige manier om te zien welke velden beschikbaar zijn uit geretourneerde gegevens, evenals andere methoden die u kunt uitvoeren. Vaak hebben cmdlets de eigenschap -Property waarmee u deze kunt aanroepen.
Werken met bestanden: Get-ChildItem, Remove-Item, Move-Item, Copy-Item
Nu u een idee heeft van hoe cmdlets werken en hoe u hulp kunt krijgen, kunnen we wijzigingen aanbrengen. U kunt de inhoud van elke map ophalen met de opdracht Get-ChildItem . U kunt bijvoorbeeld de bestanden van een hele schijf ophalen met behulp van de stationsaanduiding. Enter:
Get-ChildItem E:\
Dat is een afkorting voor:
Get-ChildItem -Path E:\
Wanneer u deze opdracht uitvoert, krijgt u een lijst met bestanden met de laatste schrijftijd, grootte onder de eigenschap Length, naam en modus. De modus is de kenmerken van een bestand of map AttributeMagic Free: wijzig bestandseigenschappen in Windows AttributeMagic Free: wijzig de bestandseigenschappen in Windows Meer lezen. De mogelijke inzendingen zijn:
- Alleen lezen
- Verborgen
- Systeem
- directory
- Archief
- Apparaat
- normaal
- tijdelijk
- SparseFile
- ReparsePoint
- Compressed
- offline
- NotContentIndexed
- gecodeerde
Als u de inhoud van alle submappen in een pad wilt ophalen, wilt u de parameter -Recurse gebruiken . Dus ren dan:
Get-ChildItem -Path E:\ -Recurse
Uw bestanden verschijnen vervolgens als afzonderlijke lijsten voor elke map in het pad.
Om de geretourneerde gegevens te beperken, kunt u een aantal verschillende parameters gebruiken: -Bestand, -verborgen en -Lees alleen . Als u filtert op de naam van het bestand, kunt u jokertekens gebruiken in de parameter Path. Als u alle DOC-bestanden in een map wilt retourneren, voert u het volgende in:
Get-ChildItem -Path E:\*.doc
Voeg opnieuw -recurse toe als je ook alles uit de submappen wilde hebben.
Als u een bestand wilt verwijderen, gebruik dan:
Remove-Item -Path E:\OldFile.txt
Om de bevestiging van elk bestand over te slaan, voegt u de parameter toe -Controleer $ false (Powershell heeft twee constanten voor booleaanse waarden: $ true en $ false). Gebruik de parameter -Force om het verwijderen van alleen-lezen of verborgen bestanden af te dwingen .
Bestanden verplaatsen is net zo eenvoudig. Als u alles van uw Flash-station naar het lokale station in een map wilt verplaatsen, gebruikt u:
Move-Item -Path E:\* -Destination C:\FlashDriveArchive
U kunt ook een enkel bestand een naam geven in de -Pad om dat bestand alleen te verplaatsen. Als u het bestand wilt kopiëren in plaats van het te verplaatsen, gebruikt u dezelfde syntaxis als de cmdlet Copy-Item .
Monitoring en werken met processen en services
Elke Windows-gebruiker kent Task Manager 5 Krachtige alternatieven voor Windows Taakbeheer 5 Krachtige alternatieven voor Windows Taakbeheer Taakmoordenaar zou een betere naam zijn voor de systeemeigen Windows Task Manager omdat we dit alleen maar ter sprake brengen om niet-reagerende processen te elimineren. Alternatieve taakmanagers stellen u in staat om uw processen daadwerkelijk te beheren. Lees verder . Er is echter een snellere manier om de momenteel lopende processen van Powershell, Get-Process te bekijken . Als je wilt weten wat alle ingangen in deze tabel betekenen, leid dan de opdracht naar Get-Member . Voer de cmdlet in:
Get-Process | Get-Member
Get-member voert een lijst uit met methoden en eigenschappen die zijn gekoppeld aan Get-Process. De informatie bovenaan is waar je in geïnteresseerd bent. Je ziet dat de verschillende typen geheugen aliassen hebben.
We kunnen ook aan deze output zien dat we de eigenschap Product kunnen verkrijgen om een vriendelijkere naam voor de processen te krijgen. Laten we de output veranderen, zodat het betere informatie voor ons heeft om mee te werken:
Get-Process | Select-Object Product, NPM, CPU, Name, ID | Sort-Object CPU -Descending
(Er is meer informatie over Select-Object en Sort-Object in de volgende sectie.)
Nu dat u de ID hebt van uw opdracht Get-Process, kunt u het stoppen met behulp van de cmdlet Stop-Process. Dus als u merkt dat een Chrome-proces al uw bronnen aan het opeten is, vindt u de ID in de vorige opdracht. Voer vervolgens uit:
Stop-Process -ID 45960
Vervang 49560 door de ID van uw grondstof.
Via het bestandspad kunt u een proces starten met Powershell. Als u Chrome wilt starten, voert u de volgende opdracht uit:
Start-Process -Filepath "C:\Program Files (x86) GoogleChromeApplicationchrome.exe"
(U moet de aanhalingstekens rond het bestandspad hebben vanwege de spaties.) Met de parameter -ArgumentList kunt u opdrachtregelopties doorgeven aan de toepassing. In het geval van Chrome kunt u het verplichten om te starten in de incognitomodus met de vlag -incognito . De gehele cmdlet is:
Start-Process -Filepath "C:\Program Files (x86) GoogleChromeApplicationchrome.exe" -ArgumentList "--incognito"
Je kunt de meeste van deze dingen ook doen met services. Hoe kun je Running Services besturen met de SC-opdracht [Windows] Running services besturen met de SC-opdracht [Windows] Een van de dingen die ik mezelf vaker doe dan duiken naar IT is het controleren en controleren van de status van services die worden uitgevoerd op computers die in het bedrijf worden uitgevoerd. Er is ... Lees meer. Get-Service toont u een lijst met alle services die op uw computer worden uitgevoerd. Hetzelfde geldt voor Start- en stopdiensten, u kunt Start-Service en Stop-Service gebruiken .
Werken met gegevens: Sort-Object, Select-Object, Where-Object
Wanneer u met de gegevens van een cmdlet werkt, is dit niet altijd de gewenste volgorde. In die gevallen wilt u het sorteer-object gebruiken . U kunt Sort-Object aanroepen op een variabele die u hebt gemaakt, maar in de eerste plaats wordt deze gebruikt door een andere cmdlet te pipen. Zoals in het bovenstaande voorbeeld, pipen we de uitvoer van het ene object naar het andere en sorteren het. Laten we een array van drie willekeurige getallen maken en deze naar Sorteerobject doorsturen.
Alles tussen haakjes wordt als eerste uitgevoerd. Maak een eenvoudige array met:
$(Get-Random), $(Get-Random), $(Get-Random)
Let op de komma's die de waarden scheiden. Dus om de willekeurige nummers gesorteerd run zien:
$(Get-Random), $(Get-Random), $(Get-Random) | Sort-Object
De cmdlet voert de getallen uit van klein naar groot, als u deze wilt omkeren, voegt u -Developpend toe .
Wanneer u cmdlets naar Get-Member pijpt, zijn er meer eigenschappen dan de standaarduitvoer. U selecteert specifieke eigenschappen met Select-Object .
Net als Sort-Object, gebruik je Select-Object via een piped-cmdlet. Als u bijvoorbeeld een tabel met services en hun status wilt genereren, gebruikt u:
Get-Service | Select-Object DisplayName, Status
Terwijl het uitvoeren van al deze gegevens leuk is, wat als u alleen specifieke gegevens wilt zien? Get-ChildItem heeft een aantal ingebouwde filters, maar de meeste opdrachten niet. In die gevallen gebruik je Where-Object .
Als u weer terugkeert naar services, krijgt u deze keer alleen maar services. Voer de cmdlet in:
Get-Service | Where-Object Status -eq "Running"
Dat -eq in de vergelijking is Powershell voor = . In Powershell voer je vergelijkingen uit met lettercombinaties:
- eq: is gelijk aan
- ne: niet gelijk
- Het is: minder dan
- gt: groter dan
- ge: groter dan of gelijk aan
- le: minder dan of gelijk aan
- zoals: gebruik zoals in wildcardvergelijkingen
Help opmaken: Opmaak-tabel en opmaaklijst.
Voor deze verschillende cmdlets was het grootste deel van de uitvoer in tabelformaten. Hierdoor worden de gegevens in rijen en kolommen met kopteksten weergegeven. Als u vermeldingen met hun eigenschappen afzonderlijk wilt weergeven, leidt u de cmdlet naar Formaatlijst .
Soms heb je een uitvoer die te breed wordt voor het Powershell-venster. Wanneer dat gebeurt, forceert Powershell het in een lijstuitvoer. Om ervoor te zorgen dat je het in het tabelformaat houdt, pip je output naar Format-Table .
Van de commandoregel tot scripting: volgende stappen
Zodra u tevreden bent, is scripten een kwestie van het invoeren van de cmdlets. Boost uw productiviteit met Windows PowerShell-scripts Verhoog uw productiviteit met Windows PowerShell-scripts Wat als u de productiviteit van Linux naar Windows zou kunnen brengen? De meeste Linux-distro's worden geleverd met de krachtige Bash-shell. PowerShell is een even krachtige terminal voor Windows. Lees meer in een tekstbestand en sla het op. Als je nerveus bent over scripting, wees dat dan niet. Microsoft heeft een enorme hoeveelheid documentatie over elke cmdlet. Dit gaat verder dan de reeds lange help-documentatie, dus kijk zeker eens bij Technet.
Als je Powershell aan het leren bent, laat ons in de comments weten wat je het meest aanstaat om te doen. Als je wat meer ervaring hebt, horen we graag meer over meer geavanceerde onderwerpen die je graag zou willen zien.