Powershell-cmdlets die uw Windows-beheerdersvaardigheden verbeteren
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 visuele 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.
Get-Command kunt u elke beschikbare opdracht zien. 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 vindt u dan geavanceerde parameters?
De ... gebruiken Krijg hulp 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 -Voorbeelden
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 dit gebruiken -ShowWindow. Dus als je loopt:
Get-Help Get-Command -ShowWindow
Powershell laat een venster zien 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 een -Eigendom parameter waarmee u die kunt bellen.
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 behulp van de Get-ChildItem commando. 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 -recurse parameter. 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: -het dossier, -Verborgen, en -Alleen lezen. 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
Nogmaals toevoegen -recurse als je ook alles uit de submappen wilde hebben.
Als u een bestand wilt verwijderen, gebruik dan:
Remove-Item -Path E: \ OldFile.txt
Voeg de parameter toe om de bevestiging van elk bestand over te slaan -Bevestig $ false (Powershell heeft twee constanten voor booleaanse waarden: $ true en $ false). Om het verwijderen van alleen-lezen of verborgen bestanden te forceren, gebruikt u de -Dwingen parameter.
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 Copy-Punt cmdlet.
Monitoring en werken met processen en services
Elke Windows-gebruiker kent Task Manager 5 Krachtige alternatieven voor de Windows Task Manager 5 Krachtige alternatieven voor Windows Taakbeheer Taakmoordenaar zou een betere naam zijn voor de native Windows Task Manager omdat we het 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 te bekijken, Get-Process. Als u wilt weten wat alle ingangen in deze tabel betekenen, geeft u de opdracht door aan 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 Artikel eigenschap 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, Naam, 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-proces-ID 45960
Vervangen 49560 met de ID van uw resource hog.
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.) De -ArgumentList parameter stelt u in staat om opdrachtregelopties door te geven aan de toepassing. In het geval van Chrome kunt u het verplichten om te starten in de incognitomodus met behulp van de -incognito vlag. De gehele cmdlet is:
Start-Process -Filepath "C: \ Program Files (x86) GoogleChromeApplicationchrome.exe" -ArgumentList "--incognito"
U kunt de meeste van deze dingen ook doen met services. Hoe kunt u besturende services besturen met de SC-opdracht [Windows] Controleren van lopende services 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 de start- en stopdiensten, die u kunt gebruiken Start dienst en Stop service.
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 de Sort-Object. 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 deze toe -Aflopend.
Wanneer u cmdlets naar Get-Member pijpt, zijn er meer eigenschappen dan de standaarduitvoer. U selecteert specifieke eigenschappen met behulp van 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 Waar-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 de vermeldingen met hun eigenschappen afzonderlijk wilt weergeven, leidt u de cmdlet naar Format-List.
Soms heb je een uitvoer die te breed wordt voor het Powershell-venster. Wanneer dat gebeurt, forceert Powershell het in een lijstuitvoer. Om er zeker van te zijn dat je het in het tabelformaat houdt, pijp je 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.
Ontdek meer over: PowerShell, Scripting.