PowerShell gebruiken voor thuisgebruikers - een beginnershandleiding

Wie zou niet willen dat ze een tovenaar konden zijn en een paar woorden konden uiten om magische dingen te laten gebeuren? Welnu(Well) , we kunnen je niet laten zien hoe je een tovenaar moet zijn, maar we kunnen je wel laten zien hoe je een beetje computermagie kunt doen.

Als je een Windows- computer hebt met Windows 7 erop, dan heb je PowerShell . Als je een computer hebt met Windows 7 erop, update deze dan om veiligheidsredenen.

Maar dit artikel is niet alleen voor Windows - mensen. De nieuwste versie van PowerShell is gratis en kan worden geïnstalleerd en gebruikt op Mac- en Linux - computers.

Dat is belangrijk, want wat u leert over PowerShell , kan nu op bijna elke computer worden gebruikt. Wie weet? Je zou deze vaardigheid naar een hoger niveau kunnen tillen en je wagen aan een carrière in de informatietechnologie(Information Technology) .

Wat is PowerShell?

Het high-tech antwoord van Microsoft is dat het een "command-line shell" is die speciaal is ontworpen voor systeembeheerders. †Klinkt(” Sounds) intimiderend. Maar dat is het niet. Zorg jij goed voor je computer? Ja, dan ben jij de systeembeheerder in huis.

Vertelt u uw computer wat hij moet doen met klikken en toetsaanslagen? Ja, dus beschouw de opdrachtregelshell als gewoon een ander venster waarin u dingen typt om uw computer te vertellen wat hij moet doen. Je kan dit doen.

PowerShell is als een programmeertaal, maar niet zo cryptisch als de meeste. Het leest echt veel als gewoon Engels(English) , iets waar Microsoft naar streefde, zodat het door niet-programmeurs kon worden opgepikt.

Het is een manier om een ​​paar regels commando's te schrijven, een script genaamd, om het Windows -besturingssysteem iets te laten doen wat u wilt dat het doet. Vervolgens kunt u die regels in een bestand opslaan en met een klik uitvoeren of plannen om periodiek uit te voeren.

Wat kunt u doen met PowerShell?

Het belangrijkste punt van PowerShell is om taken te kunnen automatiseren, zodat u uw tijd niet herhaaldelijk hoeft te verspillen aan alledaagse dingen. Voor een professionele systeembeheerder(Systems Administrator) kan dat zoiets zijn als het maken van nieuwe gebruikers, het genereren van wachtwoorden voor hen en het verzenden van een e-mail met de details naar hun nieuwe supervisor.

Handmatig gedaan, met klikken en typen, kan dat proces 5 minuten tot wel een uur of langer duren. Met de juiste scripts hoeft de systeembeheerder(Systems Administrator) daar misschien helemaal niets van te doen.

Maar je wilt weten wat je thuis met PowerShell kunt doen. (PowerShell)Vrijwel alles wat je niet leuk vindt om keer op keer te doen. Gebruik het om ruimte op uw harde schijf vrij te maken door tijdelijke en logbestanden te verwijderen die u niet nodig heeft.

Zet een avondklok op de computer van uw kind. Hernoem(Rename) of organiseer een aantal bestanden. Dat is het mooie van PowerShell . Bijna(Almost) alles wat u op uw computer kunt doen, kunt u een PowerShell- script maken om te automatiseren en uit te voeren met een klik of volgens een schema.

Hoe gebruik ik PowerShell?

De eenvoudigste manier om met Power shell te werken is in de Power shell Integrated Scripting Environment (ISE) . Je kunt het vinden door op Start te klikken en powershell ise in de zoekbalk in Windows 10 te typen . Je zou het moeten zien zoals hieronder weergegeven.

Voor de eerste keer dat we het gebruiken, gaan we het uitvoeren als de beheerder(Administrator) . Hiervoor moet u eerst beheerdersrechten op uw computer hebben. Klik in uw Startmenu met de rechtermuisknop op PowerShell ISE en klik vervolgens op Als administrator uitvoeren(Run as Administrator) .

Mogelijk krijgt u een waarschuwingspop-up voor gebruikerstoegangscontrole(User Access Control) ( UAC ) waarin u wordt gevraagd of u zeker weet dat u dit wilt doen. (UAC)Klik op Ja(Yes) .

Nu kijk je naar de PowerShell IDE . Het bovenste deelvenster van het venster (1) is het scriptvenster. Hier ga je je script schrijven. Het onderste paneel van het venster (2) is het consolegebied. Wanneer u uw script test, ziet u de uitvoer in dit paneel.

Hier ziet u ook foutmeldingen en dergelijke die u zullen helpen bij het oplossen en verbeteren van uw scripts. Het deelvenster aan de rechterkant van het venster (3) is de opdracht-add-on. Zie het als een woordenboek van alle PowerShell- opdrachten die voor u beschikbaar zijn.

PowerShell wordt geleverd om geen ander script uit te voeren dan die al deel uitmaken van Windows . U moet het wijzigen zodat u uw eigen scripts kunt uitvoeren.

Kopieer en plak het volgende in het scriptvenster:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Het Set-ExecutionPolicy- gedeelte ervan wordt een cmdlet genoemd (uitgesproken als commandlet). Cmdlets zijn krachtige dingen. Beschouw(Think) ze als korte opdrachten die u Windows kunt geven ,(Windows) en Windows zal een heleboel meer gecompliceerde dingen doen om aan uw opdracht te voldoen.

Een analogie zou zijn om uw kind te vertellen zijn kamer op te ruimen. Kort(Short) en bondig. Als uw kind goed thuis is in het schoonmaken van kamers, gaat hij zijn bed opmaken, zijn wasgoed in de mand doen, zijn speelgoed en boeken opbergen en misschien zelfs de vloer stofzuigen. Ze begrijpen dat de cmdlet Clean-YourRoom dat allemaal betekende.

Boven aan het venster ziet u een groene pijlpunt. Klik(Click) daarop om de opdracht uit te voeren.

Het -ExecutionPolicy - gedeelte vertelt Set-ExecutionPolicy welk beleid moet worden ingesteld. Het is een parameter. Het zegt: “Ik wil dat je binnen deze richtlijnen werkt en dit specifiek doet. Het vertelt het om het specifieke beleid van RemoteSigned te gebruiken .

Het RemoteSigned- beleid stelt dat PowerShell geen script mag uitvoeren of uitvoeren dat van internet is gedownload, tenzij het is ondertekend door een vertrouwde uitgever.

Via een omweg vertelt het PowerShell dat het prima is om elk lokaal gemaakt script uit te voeren, omdat het niet ondertekend hoeft te worden door een externe vertrouwde uitgever. Nu kan uw PowerShell- script elk script uitvoeren dat u op uw computer schrijft.

Laten we eens kijken naar een script om tijdelijke bestanden te verwijderen. Het is niet zo krachtig of grondig als CCleaner , maar CCleaner heeft zijn eigen problemen.

Gebruik PowerShell(Use PowerShell) om ruimte(Create Space) op uw harde schijf te creëren(Your Hard Drive)

We zullen dit script regel voor regel opsplitsen, zodat u kunt zien hoe het werkt. Aan het einde wordt het script volledig weergegeven, zodat u het desgewenst kunt kopiëren en plakken.

$TempFileLocation = "C:\Users\username\Appdata\Local\Temp\*"

Alles met een dollarteken ervoor is een variabelenaam. Zie het als een portemonnee om waardevolle spullen in te stoppen. Portemonnee(Wallet) herinnert ons aan het dollarteken, waardevolle spullen klinken als variabel, dus dat onthouden we ook. We maken een portemonnee of variabele met de naam $TempFileLocation . Het gelijkteken vertelt PowerShell wat er in die variabele moet worden ingevoerd.

In dit geval voeren we de locatie in van een tijdelijke Windows-bestandslocatie - C:\Users\username\AppData\Local\Temp\* . We doen dit om twee redenen; het is een locatie waar het altijd veilig is om bestanden te verwijderen, en we gaan het gebruiken om PowerShell te vertellen waar het naartoe moet om bestanden te verwijderen.

Waar op die locatie gebruikersnaam staat, verwissel deze dan voor uw gebruikersnaam. Dat is de gebruikersnaam die u gebruikt om in te loggen op uw computer. Het sterretje (*) aan het einde ervan is een jokerteken. Wat het vertegenwoordigt, is alles in de map Temp , omdat alles in de map Temp tijdelijk is en we het willen verwijderen.

De dubbele aanhalingstekens rond de locatie zijn ook belangrijk. Dat vertelt PowerShell dat er een string in zit. Zie(Think) string als een reeks letters en tekens. Als het gewone getallen waren, zouden we de aanhalingstekens niet gebruiken.

$TempFile = Get-ChildItem $TempFileLocation -Recurse

We maken nog een variabele. Deze keer gaan we een commando gebruiken om iets te bedenken om in de variabele $TempFile te plaatsen .

Get-ChildItem 

Een ander ding dat je opvalt aan cmdlets zoals Get-ChildItem, is dat het volledig leesbaar is. Zie je hoe het eerste woord een werkwoord is? Cmdlets beginnen allemaal met actiewoorden, zodat je meteen weet wat het doet. ChildItem is twee zelfstandige naamwoorden.

Het tweede deel van de cmdlet gaat ons altijd vertellen waarop PowerShell de actie zal toepassen. ChildItem betekent alle kinderen van een bovenliggende locatie. Dit is hetzelfde als zeggen: haal alle bestanden op die zich in een map bevinden, waarbij bestanden de kinderen zijn en de map de bovenliggende map.

Waarvan haalt de cmdlet de onderliggende items op? Alles in de variabele $TempFileLocation . PowerShell gaat naar de locatie die we eerder in $ TempFileLocation hebben geplaatst en haalt alle onderliggende items op die daar zijn. Vervolgens worden ze in de variabele $TempFile .

Dus, wat is er met het -Recurse- gedeelte? Dat is Get-ChildItem(Get-ChildItem) vertellen om alles op die locatie door te nemen. Haal de bestanden niet zomaar direct in de bovenliggende map. Als er mappen in die map staan, haal dan ook al hun kinderen op, en hun kinderen enzovoort. We gaan ze allemaal halen.

$TempFileCount = ($TempFile).count

Ja, we creëren een derde variabele genaamd $TempFileCount , en we gaan een getal in die variabele plaatsen. Waar is het nummer? Nou, ( $TempFile).count gaat ons dat aantal bezorgen. Je hebt waarschijnlijk ontdekt dat het .count- gedeelte alle bestanden gaat tellen die we zojuist in $ TempFile hebben opgeslagen .

Waarom hebben we dit gedaan? Vooral omdat het leuk is om te weten hoeveel nutteloze bestanden we met de rest van het script opschonen, zodat we kunnen zien hoe effectief het was.

if($TempFileCount -eq 0)

Nu stellen we een voorwaardelijke verklaring op. Je kunt zien dat het vraagt ​​‘of’. Als wat? Als het ding tussen haakjes waar of niet waar is. De haakjes zijn belangrijk, anders weet de If niet wat hij moet vergelijken. Hier wordt gevraagd of het getal dat we hebben opgeslagen in $TempFileCount gelijk is aan nul.

De -eq is de afkorting voor gelijken. Het is een soort vergelijkingsoperator. Het is alsof je tegen je kinderen zegt: “Als je kamer schoon is, geweldig, we gaan iets doenâ€â€ Deze verklaring zegt dat als het nummer dat is opgeslagen in $ TempFileCount -gelijk(TempFileCount) aan nul is het volgende ding.

{Write-Host "There are no files in the folder $TempFileLocation" -ForegroundColor Green}

Dat is wat er zal gebeuren als $TempFileCount nul is. De accolades zijn belangrijk. Ze vertellen PowerShell om alleen te doen wat erin zit als $ TempFileCount gelijk is aan nul.

Het zal naar de host of het scherm schrijven: "Er zijn geen bestanden in de map C:\Users\gebruikersnaam\Appdata\Local\Temp\*". De parameter aan het einde, ForegroundColor , vertelt PowerShell om de tekst groen te maken. Dat maakt het alleen maar makkelijker om te onderscheiden van een foutmelding die normaal rood is.

Else

Je weet wat nog meer betekent. Dit is het, “Uw kamer kan maar beter schoon zijn of anders†onderdeel van het controleren of uw kind zijn kamer heeft schoongemaakt. Dit is wat er zal gebeuren als $TempFileCount niet nul is.

{$TempFile | Remove-Item -WhatIf -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue}

Dit zegt ga naar de huidige locatie die is opgeslagen in $TempFile . De verticale lijn erachter wordt een pijp genoemd. Het werkt een beetje als een echte pijp omdat het PowerShell vertelt om de inhoud van $ TempFile naar de cmdlet te leiden, alsof het water is dat in een wasmachine wordt geleid. Dan doet de cmdlet Remove-Item wat het zegt; het verwijdert alles wat zich op die locatie bevindt.

De parameter -WhatIf is in dit stadium erg belangrijk. Het vertelt PowerShell om het commando uit te voeren, maar probeer het alleen uit, verwijder niets. Laat ons gewoon(Just) zien wat er zou gebeuren als we dit echt zouden doen.

Hiermee kunt u opdrachten testen zonder iets op uw computer te veranderen. Laat de -WhatIf erin staan ​​totdat u zeker weet dat het script gaat doen wat u wilt en niets anders. Verwijder dat dan gewoon en het script zal zijn werk doen.

De parameter -Confirm:$false dat het script niet vraagt ​​of je het bestand echt wilt verwijderen. Weet je wat -Recurse doet. Forceren( -Force) betekent dat ding verwijderen, wat er ook gebeurt. -WarningAction is ingesteld op SilentlyContinue .

Dit voorkomt dat het script u waarschuwingen geeft over wat u verwijdert. -ErrorAction is ingesteld op SilentlyContinue , dus als er een fout in het proces is, blijft het maar doorgaan.

Nu zijn we bij de laatste regel.

Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green}

Net zoals Write-Host de eerste keer deed, wordt de volgende zin weergegeven, zodat we weten wat er is gebeurd. Het zal ons vertellen hoeveel bestanden zijn verwijderd uit de map die het zojuist heeft verwerkt en dit in het groen om het gemakkelijk te herkennen.

Laten we het script helemaal bekijken:

$TempFileLocation = "C:\Users\guymcd\Appdata\Local\Temp\*"
$TempFile = Get-ChildItem $TempFileLocation -Recurse
$TempFileCount = ($TempFile).count

if($TempFileCount -eq "0") {
Write-Host "There are no files in the folder $TempFileLocation" - ForegroundColor Green
}
Else {
$TempFile | Remove-Item -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue
Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green
}

U kunt dit kopiëren en in uw PowerShell ISE(PowerShell ISE) plakken en opslaan als iets als delete-TemporaryFiles.ps1 . U kunt zich net zo goed aan de naamgevingsconventie van cmdlets houden nu u ze begrijpt.

Als de code om de een of andere reden niet voor u werkt, kunt u ook het PowerShell-script downloaden dat we hebben gemaakt en het gewoon uitvoeren. Pak(Just) het eerst uit om het scriptbestand te bekijken.

Wanneer u dit script wilt uitvoeren, klikt u er met de rechtermuisknop op en kiest u Uitvoeren met PowerShell(Run with PowerShell) . Een PowerShell -console verschijnt gedurende een seconde of twee, terwijl uw script zijn ding doet, en zal dan verdwijnen als er geen fouten zijn.

Waar kan ik meer leren over PowerShell?

Dat lijkt veel! Voor je eerste PowerShell- script is het nogal wat. Als je zo ver bent gekomen, juich jezelf dan toe. Je hebt veel geleerd vandaag, maar nu wil je meer leren. Dat is geweldig!

Er zijn veel bronnen op internet voor meer informatie over PowerShell . Een goede plek om te beginnen is ons artikel " Genereer een lijst met opstartprogramma's via de opdrachtregel of PowerShell(Generate a List of Startup Programs via Command Line or PowerShell) ". Bekijk dan deze andere bronnen:



About the author

Ik ben een softwareontwikkelaar met meer dan 10 jaar ervaring. Ik ben gespecialiseerd in Mac-programmering en heb duizenden regels code geschreven voor verschillende Mac-programma's, waaronder maar niet beperkt tot: TextEdit, GarageBand, iMovie en Inkscape. Ook heb ik ervaring met Linux en Windows ontwikkeling. Dankzij mijn vaardigheden als ontwikkelaar kan ik hoogwaardige, uitgebreide tutorials schrijven voor verschillende softwareontwikkelingsplatforms - van macOS tot Linux - waardoor mijn tutorials de perfecte keuze zijn voor diegenen die meer willen weten over de tools die ze gebruiken.



Related posts