PowerShell gebruiken voor thuisgebruikers - Een beginnershandleiding

Admin

Wie wil er niet dat ze een tovenaar kunnen zijn en een paar woorden kunnen uiten om magische dingen te laten gebeuren? Welnu, we kunnen je niet laten zien hoe je een tovenaar kunt 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, heb je PowerShell. Als je een computer hebt met Windows 7 erop, update deze dan om veiligheidsredenen.

Inhoudsopgave

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 over PowerShell leert, 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.

Wat is PowerShell?

Het hightech-antwoord van Microsoft is dat het een "... opdrachtregelshell is die speciaal is ontworpen voor systeembeheerders." Klinkt 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, iets waar Microsoft naar streefde, zodat het door niet-programmeurs kon worden opgepikt.

Het is een manier om een ​​paar regels opdrachten te schrijven, een script genaamd, om het Windows-besturingssysteem iets te laten doen wat u wilt. Vervolgens kunt u die regels in een bestand opslaan en met een klik uitvoeren of plannen voor periodieke uitvoering.

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 kan dat zoiets zijn als het aanmaken van nieuwe gebruikers, het genereren van wachtwoorden voor hen en het sturen 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 daar misschien niet eens iets voor te doen.

Maar je wilt weten wat je thuis met PowerShell kunt doen. 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 of organiseer een aantal bestanden. Dat is het mooie van PowerShell. Bijna 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 PowerShell te werken, is in de: PowerShell Integrated Scripting Environment (ISE). Je kunt het vinden door op Start te klikken en te typen powershell ise in de zoekbalk in Windows 10. Je zou het moeten zien zoals hieronder weergegeven.

Voor de eerste keer dat we het gebruiken, gaan we het uitvoeren als de beheerder. Hiervoor moet u eerst beheerdersrechten op uw computer hebben. In uw Start menu, klik met de rechtermuisknop op PowerShell-ISEen klik vervolgens op Als administrator uitvoeren.

Je krijgt misschien een Gebruiker. Toegangscontrole (UAC) waarschuwingspop-up met de vraag of u zeker weet dat u dit wilt doen. deze. Klik Ja.

Nu kijk je naar de PowerShell IDE. Het bovenste deel van het venster (1) is het scriptvenster. Hier ga je je script schrijven. Het onderste deel 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 uw scripts op te lossen en te verbeteren. 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 een onderdeel van Windows. U moet het wijzigen zodat u uw. eigen schriften.

Kopieer en plak het volgende in het scriptvenster:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

De Set-uitvoeringsbeleid een deel ervan wordt een cmdlet genoemd (uitgesproken als commandlet). Cmdlets zijn krachtige dingen. Beschouw ze als korte opdrachten die u Windows kunt geven, 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 en bondig. Als je kind goed thuis is in het schoonmaken van kamers, dan gaan ze hun bed opmaken, hun was in de mand doen, hun speelgoed en boeken op een plank leggen 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 daarop om de opdracht uit te voeren.

De -Uitvoeringsbeleid deel is veelzeggend Set-uitvoeringsbeleid welk beleid moet worden ingesteld. Het is een parameter. Het zegt: "Ik wil dat je binnen deze richtlijnen werkt en specifiek dit doet. Het vertelt het om het specifieke beleid van RemoteSigned te gebruiken.

De Op afstand ondertekend beleid stelt dat PowerShell geen script mag uitvoeren of uitvoeren dat van internet is gedownload, tenzij het is ondertekend door een vertrouwde uitgever.

Op een omweg vertelt het PowerShell dat het prima is om elk lokaal gemaakt script uit te voeren, omdat deze niet hoeven te worden ondertekend 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 wordt geleverd met zijn eigen set van. problemen.

Gebruik PowerShell om ruimte op uw harde schijf te creëren

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

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

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

In dit geval plaatsen we de locatie van de tijdelijke bestandslocatie van Windows - C:\Gebruikers\gebruikersnaam\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 staat gebruikersnaam in dat. locatie, verwissel deze dan voor uw gebruikersnaam. Dat is de gebruikersnaam die u gebruikt om in te loggen. in op uw computer. Het sterretje (*) aan het einde van. het is een wildcard. Wat het vertegenwoordigt is alles in de map Temp, omdat alles in de map Temp tijdelijk is. en we willen het verwijderen.

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

$TempFile = Get-ChildItem $TempFileLocation -Recurse

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

Get-ChildItem 

Nog iets 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 zal ons altijd vertellen waarop PowerShell de actie zal toepassen. ChildItem betekent alle onderliggende items 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 $TempFileLocatie. PowerShell gaat naar de locatie die we eerder in $TempFileLocation hebben geplaatst en haalt alle onderliggende items op die daar zijn. Dan zal het ze in de variabele plaatsen $TempFile.

Dus, wat is er met de -Recursie deel? Dat is veelzeggend Get-ChildItem om alles op die locatie door te nemen. Haal de bestanden niet meteen 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? We zullen, ($TempFile).count gaat ons dat nummer 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 opruimen met de rest van het script, 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 onwaar is. De haakjes zijn belangrijk, anders weet de If niet wat hij moet vergelijken. Hier wordt gevraagd of het nummer 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 aan nul is, je het volgende doet.

{Write-Host "Er zijn geen bestanden in de map $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, -Voorgrondkleur vertelt PowerShell om de tekst groen te maken. Dat maakt het alleen maar makkelijker om te onderscheiden van een foutmelding die normaal rood is.

Anders

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

{$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 de cmdlet Verwijder voorwerp doet wat het zegt; het verwijdert alles wat zich op die locatie bevindt.

De -Wat nou als parameter is in dit stadium erg belangrijk. Het vertelt PowerShell om de opdracht uit te voeren, maar probeer het alleen uit, verwijder niets. Laat ons gewoon 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 daar staan ​​totdat u 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 -Bevestigen:$false stopt het script met vragen of u het bestand echt wilt verwijderen. Weet je wat -Recursie doet. -Kracht betekent dat ding verwijderen, wat er ook gebeurt. -WaarschuwingActie ingesteld op Stil doorgaan.

Dit voorkomt dat het script u waarschuwingen geeft over wat u verwijdert. -FoutActie ingesteld op Stil doorgaan zodat als er een fout in het proces is, het gewoon blijft voortkabbelen.

Nu zijn we bij de laatste regel.

Write-Host "Gewist $TempFileCount-bestanden in de map $TempFileLocation" -ForegroundColor Green}

Net als Schrijf-host de eerste keer deed, zal het de volgende zin weergeven, dus 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 "Er zijn geen bestanden in de map $TempFileLocation" - ForegroundColor Green
}
anders {
$TempFile | Item verwijderen -Bevestigen:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue
Write-Host "Gewist $TempFileCount-bestanden in de map $TempFileLocation" -ForegroundColor Green
}

U kunt dit kopiëren en plakken in uw PowerShell ISE en opslaan als zoiets 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: download het PowerShell-script we hebben gemaakt en het gewoon uitvoeren. Pak 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. 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 toe. Je hebt veel geleerd vandaag, maar nu wil je meer leren. Dat is geweldig!

Er zijn veel bronnen op internet om meer te leren over PowerShell. Een goede plek om te beginnen is ons artikel, “Genereer een lijst met opstartprogramma's via de opdrachtregel of PowerShell”. Bekijk dan deze andere bronnen:

  • Aan de slag met Microsoft PowerShell – Microsoft Virtuele Academie
  • PowerShell-zelfstudie – TutorialsPoint.com

Welkom bij Help Desk Geek - een blog vol technische tips van vertrouwde technische experts. We hebben duizenden artikelen en handleidingen om u te helpen bij het oplossen van elk probleem. Onze artikelen zijn sinds de lancering in 2008 meer dan 150 miljoen keer gelezen.

Wij hebben ook een hekel aan spam, u kunt zich op elk moment uitschrijven.

Een Microsoft Planner-zelfstudie: alles wat u moet weten
Een Microsoft Planner-zelfstudie: alles wat u moet weten

Microsoft noemt zijn Planner-applicatie "een eenvoudige, visuele manier om teamwerk te organisere...

Avast versus Malwarebytes: wat is beter?
Avast versus Malwarebytes: wat is beter?

Wist u dat cyberdreigingen in de eerste helft van 2019 meer dan 4,1 miljard records hebben blootg...

5 Beste alternatieven voor Windows Taakplanner
5 Beste alternatieven voor Windows Taakplanner

De Windows Taakplanner is een handig onderdeel van het Windows-besturingssysteem waarmee u apps e...