Brug af PowerShell til hjemmebrugere - En begyndervejledning

Hvem ønsker ikke, at de kunne være en troldmand og udtale et par ord for at få magiske ting til at ske? (Well) , vi er ikke i stand til at vise dig, hvordan du er en troldmand, men vi kan vise dig, hvordan du laver en lille computermagi.

Hvis du har en Windows -computer med Windows 7 på, har du PowerShell . Desuden, hvis du har en computer med Windows 7 på den, skal du opdatere den for sikkerhedens skyld.

Men denne artikel er ikke kun for Windows - folk. Den seneste version af PowerShell er gratis og kan installeres og bruges på Mac- og Linux -computere.

Det er vigtigt, fordi det, du lærer om PowerShell , kan bruges på næsten enhver computer nu. Hvem ved? Du kan tage denne færdighed til det næste niveau og vove dig ind i en karriere inden for informationsteknologi(Information Technology) .

Hvad er PowerShell?

Det højteknologiske svar fra Microsoft er, at det er en "kommandolinjeskal", der er designet specielt til systemadministratorer. †Lyder(” Sounds) skræmmende. Men det er det ikke. Passer du på din computer? Ja, så er du systemadministratoren i dit hus.

Fortæller du din computer, hvad den skal gøre med klik og tastetryk? Ja, så tænk på kommandolinjeskallen som blot endnu et vindue, du skriver ting i for at fortælle din computer, hvad den skal gøre. Du kan gøre det.

PowerShell er som et programmeringssprog, men ikke så kryptisk som de fleste. Det minder virkelig meget om almindelig engelsk(English) , hvilket var noget Microsoft stræbte efter, så det kunne blive opfanget af ikke-programmører.

Det er en måde at skrive et par linjer med kommandoer, kaldet et script, for at få Windows -operativsystemet til at gøre noget, som du vil have det til at gøre. Derefter kan du gemme disse linjer i en fil og køre den med et klik eller planlægge den til at køre med jævne mellemrum.

Hvad kan du gøre med PowerShell?

Pointen på højt niveau med PowerShell er at være i stand til at automatisere opgaver, så du ikke behøver at spilde din tid på at gøre hverdagsagtige ting gentagne gange. For en professionel systemadministrator(Systems Administrator) kan det være noget som at oprette nye brugere, generere adgangskoder til dem og sende en e-mail med detaljerne til deres nye supervisor.

Manuelt udført, med klik og indtastning, kan denne proces tage 5 minutter til så meget som en time eller mere. Med de rigtige scripts behøver systemadministratoren(Systems Administrator) måske ikke engang at gøre nogen del af det.

Men du vil gerne vide, hvad du kan gøre med PowerShell derhjemme. Stort set alt, som du ikke kan lide at gøre igen og igen. Brug den til at frigøre plads på din harddisk ved at slette midlertidige og logfiler, du ikke har brug for.

Sæt et udgangsforbud på dit barns computer. Omdøb(Rename) eller organiser en masse filer. Det er det smukke ved PowerShell . Næsten(Almost) alt, hvad du kan gøre på din computer, kan du oprette et PowerShell -script til at automatisere og køre med et klik eller efter en tidsplan.

Hvordan bruger jeg PowerShell?

Den nemmeste måde at arbejde med PowerShell på er i PowerShell Integrated Scripting Environment (ISE) . Du kan finde det ved at klikke på Start og skrive powershell ise i søgefeltet i Windows 10 . Du bør se det som vist nedenfor.

For første gang, vi bruger det, skal vi køre det som administrator . For at gøre dette skal du først have administratorrettigheder på din computer. I din startmenu skal du højreklikke på PowerShell ISE og derefter klikke på Kør som administrator(Run as Administrator) .

Du får muligvis en pop-up-advarselsadvarsel med brugeradgangskontrol(User Access Control) ( UAC ), der spørger, om du er sikker på, at du vil gøre dette. Klik på Ja(Yes) .

Nu ser du på PowerShell IDE . Den øverste rude i vinduet (1) er scriptruden. Det er her du skriver dit manuskript. Den nederste rude af vinduet (2) er konsolområdet. Når du tester dit script, vil du se outputtet i denne rude.

Det er også her, du vil se fejlmeddelelser og lignende, der vil hjælpe dig med at rette og gøre dine scripts bedre. Ruden i højre side af vinduet (3) er kommandotilføjelsen. Tænk på det som en ordbog over alle PowerShell- kommandoer, der er tilgængelige for dig.

PowerShell er indstillet til ikke at køre andre scripts end dem, der allerede er en del af Windows . Du bliver nødt til at ændre det, så du kan køre dine egne scripts.

I scriptvinduet skal du kopiere og indsætte følgende:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Set - ExecutionPolicy-(Set-ExecutionPolicy ) delen af ​​det kaldes en cmdlet (udtales commandlet). Cmdlets er kraftfulde ting. Tænk(Think) på dem som korte kommandoer, som du kan give Windows , og Windows vil gøre en masse mere komplicerede ting for at tilfredsstille din kommando.

En analogi ville være at fortælle dit barn at de skal rense deres værelse. Kort(Short) og konkret. Hvis dit barn er velbevandret i rengøring af værelser, så vil de gå og rede deres seng, lægge deres vasketøj i kurven, lægge deres legetøj og bøger på hylden og måske endda støvsuge gulvet. De forstår, at cmdlet'en Clean-YourRoom betød alt det.

Øverst i vinduet vil du se en grøn pilespids. Klik(Click) på det for at køre kommandoen.

-ExecutionPolicy -(-ExecutionPolicy) delen fortæller Set-ExecutionPolicy , hvilken politik der skal indstilles. Det er en parameter. Det siger, †Jeg vil have, at du arbejder inden for disse retningslinjer og gør specifikt dette. Den fortæller, at den skal bruge den specifikke politik for RemoteSigned .

RemoteSigned -(RemoteSigned ) politikken siger, at PowerShell ikke må udføre eller køre noget script, der er downloadet fra internettet(Internet) , medmindre det er underskrevet af en betroet udgiver.

På en omvej fortæller den PowerShell , at det er fint at køre ethvert script, der er oprettet lokalt, fordi de ikke behøver at være underskrevet af en ekstern betroet udgiver. Nu vil dit PowerShell -script være i stand til at køre ethvert script, du skriver på din computer.

Lad os se på et script til at slette midlertidige filer. Det er ikke så kraftfuldt eller grundigt som CCleaner , men CCleaner kommer med sit eget sæt af problemer.

Brug PowerShell(Use PowerShell) til at skabe plads(Create Space)din harddisk(Your Hard Drive)

Vi opdeler dette script linje for linje, så du kan se, hvordan det fungerer. I slutningen vil scriptet blive vist fuldstændigt, så du kan kopiere og indsætte det, hvis du vil.

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

Alt med et dollartegn foran er et variabelt navn. Tænk på det som en pung at putte værdifulde ting i. Pung(Wallet) minder os om dollartegnet, værdigenstande lyder som variable, så det husker vi også. Vi opretter en tegnebog eller variabel ved navn $TempFileLocation . Lighedstegnet fortæller PowerShell , hvad der skal lægges i den variabel.

I dette tilfælde indsætter vi placeringen af ​​en Windows' midlertidige filplacering - C:\Users\username\AppData\Local\Temp\* . Vi gør dette af to grunde; det er en placering, der altid er sikker at slette filer fra, og vi vil bruge den til at fortælle PowerShell , hvor den skal hen for at slette filer.

Hvor der står brugernavn på den placering, så skift det ud med dit brugernavn. Det er det brugernavn, du bruger til at logge ind på din computer. Stjernen (*) i slutningen af ​​det er et jokertegn. Det, det repræsenterer, er alt i mappen Temp , fordi alt i Temp- mappen er midlertidigt, og vi vil slette det.

De dobbelte anførselstegn omkring placeringen er også vigtige. Det fortæller PowerShell , at der er en streng. Tænk(Think) på streng som en streng af bogstaver og tegn. Hvis det var almindelige tal, ville vi ikke bruge anførselstegnene.

$TempFile = Get-ChildItem $TempFileLocation -Recurse

Vi laver en anden variabel. Denne gang skal vi bruge en kommando til at finde på noget at sætte i $TempFile variablen.

Get-ChildItem 

En anden ting, du vil bemærke ved cmdlets som Get-ChildItem , er, at den er fuldstændig læsbar. Se, hvordan det første ord er et verbum? Cmdlets begynder alle med handlingsord, så du med det samme ved, hvad den laver. ChildItem er to substantiver.

Den anden del af cmdlet'en vil altid fortælle os, hvad PowerShell vil anvende handlingen til. ChildItem betyder alle børn på en overordnet placering. Det er som at sige, få alle de filer, der er i en mappe, hvor filerne er børnene, og mappen er forælderen.

Hvad får cmdlet'en de underordnede elementer af? Alt i variablen $TempFileLocation . PowerShell vil gå til den placering, som vi har lagt i $ TempFileLocation tidligere og hente alle de underordnede elementer, der er der. Derefter vil den sætte dem ind i variablen $TempFile .

Så hvad er der med -Recurse- delen? Det fortæller Get-ChildItem at gennemgå alt på det sted. Du skal ikke bare hente filerne med det samme i den overordnede mappe. Hvis der er mapper i den mappe, så hent alle deres børn også, og deres børn og så videre. Vi skal have dem alle sammen.

$TempFileCount = ($TempFile).count

Ja, vi opretter en tredje variabel kaldet $TempFileCount , og vi kommer til at sætte et tal i den variabel. Hvor er nummeret? Nå, ( $TempFile).count vil give os det nummer. Du har sikkert fundet ud af, at .count- delen skal foretage optællingen af ​​alle de filer, som vi lige har gemt i $ TempFile .

Hvorfor gjorde vi dette? Mest fordi det er rart at vide, hvor mange ubrugelige filer vi rydder ud med resten af ​​scriptet, så vi kan se, hvor effektivt det var.

if($TempFileCount -eq 0)

Nu opretter vi en betinget erklæring. Du kan se, at den spørger "hvis". Hvis hvad? Hvis tingen i parentes er sand eller falsk. Beslagene er vigtige, ellers ved If ikke, hvad de skal sammenligne. Her spørger den, om det tal, vi gemte i $TempFileCount , er lig med nul.

-eq er forkortelsen(-eq) for ligeværdige. Det er en type sammenligningsoperatør. Det er som at fortælle dine børn, "Hvis dit værelse er rent, godt, vi skal gøre noget" Denne erklæring siger, om tallet, der blev gemt i $ TempFileCount , er -lig med nul do den næste ting.

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

Det er det, der vil ske, hvis $TempFileCount er nul. De krøllede beslag er vigtige. De fortæller PowerShell kun at gøre det, der er inde i dem, hvis $ TempFileCount er lig med nul.

Det vil skrive til værten, eller skærmen, "Der er ingen filer i mappen C:\Users\brugernavn\Appdata\Local\Temp\*". Parameteren i slutningen, - ForegroundColor , fortæller PowerShell at gøre teksten grøn. Det gør det bare nemmere at skelne fra en fejlmeddelelse, som normalt er rød.

Else

Du ved, hvad der ellers betyder. Dette er, "Dit værelse må hellere være rent ellers" en del af at tjekke, om dit barn gjorde rent på deres værelse. Det er, hvad der vil ske, hvis $TempFileCount ikke er nul.

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

Dette siger gå til den aktuelle placering gemt i $TempFile . Den lodrette linje efter det kaldes et rør. Det fungerer lidt som et rør i det virkelige liv, da det fortæller PowerShell at tragte indholdet af $ TempFile ind i cmdlet'en, som om det var vand, der blev ledt ind i en vaskemaskine. Så gør cmdlet'en Remove-Item hvad den siger; det fjerner, hvad der er på det sted.

-WhatIf -( -WhatIf ) parameteren er meget vigtig på dette stadium. Det fortæller PowerShell at køre kommandoen, men prøv det kun, fjern ikke noget. Bare(Just) vis os, hvad der ville ske, hvis vi virkelig gjorde dette.

Dette giver dig mulighed for at teste kommandoer uden at ændre noget på din computer. Lad -WhatIf blive der, indtil du er sikker på, at scriptet vil gøre, hvad du vil have det til og intet andet. Så skal du bare slette det, og scriptet vil gøre sit arbejde.

Parameteren -Confirm:$false forhindrer scriptet i at spørge, om du virkelig vil slette filen. Du ved, hvad -Recurse gør. -Tving( -Force) betyder at slette den ting uanset hvad. -WarningAction er indstillet til SilentlyContinue .

Dette forhindrer scriptet i at give dig advarsler om, hvad du sletter. -ErrorAction er indstillet til SilentlyContinue , så hvis der er nogen form for fejl i processen, bliver den bare ved med at tude.

Nu er vi ved sidste linje.

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

Ligesom Write-Host gjorde første gang, vil den udsende følgende sætning, så vi ved, hvad der er sket. Den fortæller os, hvor mange filer der blev slettet fra den mappe, den lige har behandlet, og gør det med grønt for at gøre det nemt at få øje på.

Lad os se på scriptet helt:

$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
}

Du kan kopiere og indsætte dette i din PowerShell ISE og gemme det som delete-TemporaryFiles.ps1 . Du kan lige så godt holde dig til navnekonventionen for cmdlets, nu du forstår dem.

Hvis koden af ​​en eller anden grund ikke virker for dig, kan du også downloade det PowerShell-script , vi har oprettet, og bare køre det. Bare(Just) udpak den først for at se scriptfilen.

Når du vil køre dette script, skal du bare højreklikke på det og vælge Kør med PowerShell(Run with PowerShell) . En PowerShell -konsol dukker op i et sekund eller to, mens dit script gør sit, og forsvinder derefter, hvis der ikke er nogen fejl.

Hvor kan jeg lære mere PowerShell?

Det virker som meget! For dit første PowerShell -script er det en rimelig smule. Hvis du er nået så langt, så bifald dig selv. Du har lært meget i dag, men nu vil du gerne lære mere. Det er fantastisk!

Der er mange ressourcer på internettet(Internet) til at lære mere om PowerShell . Et godt sted at starte er vores artikel, " Generer en liste over opstartsprogrammer via kommandolinje eller PowerShell(Generate a List of Startup Programs via Command Line or PowerShell) ". Så tjek disse andre ressourcer:



About the author

Jeg er softwareudvikler med over 10 års erfaring. Jeg har specialiseret mig i Mac-programmering og har skrevet flere tusinde linjer kode til forskellige Mac-programmer, inklusive, men ikke begrænset til: TextEdit, GarageBand, iMovie og Inkscape. Jeg har også erfaring med Linux og Windows udvikling. Mine færdigheder som udvikler giver mig mulighed for at skrive omfattende tutorials af høj kvalitet til forskellige softwareudviklingsplatforme - fra macOS til Linux - hvilket gør mine tutorials til det perfekte valg for dem, der ønsker at lære mere om de værktøjer, de bruger.



Related posts