Använda PowerShell för hemanvändare - En nybörjarguide

Vem önskar inte att de kunde vara en trollkarl och säga några ord för att få magiska saker att hända? Tja(Well) , vi kan inte visa dig hur man är en trollkarl, men vi kan visa dig hur man gör lite datormagi.

Om du har en Windows -dator med Windows 7 , har du PowerShell . Dessutom, om du har en dator med Windows 7 , uppdatera den för säkerhets skull.

Men den här artikeln är inte bara för Windows - användare. Den senaste versionen av PowerShell är gratis och kan installeras och användas på Mac- och Linux -datorer.

Det är viktigt eftersom det du lär dig om PowerShell kan användas på nästan vilken dator som helst nu. Vem vet? Du kan ta den här färdigheten till nästa nivå och ge dig ut på en karriär inom informationsteknologi(Information Technology) .

Vad är PowerShell?

Det högteknologiska svaret från Microsoft är att det är ett "kommandoradsskal designat speciellt för systemadministratörer. †Låter(” Sounds) skrämmande. Men det är det inte. Tar du hand om din dator? Ja, då är du systemadministratören i ditt hus.

Berättar du för din dator vad den ska göra med klick och tangenttryckningar? Ja, så tänk på kommandoradsskalet som bara ett annat fönster där du skriver saker i för att tala om för din dator vad den ska göra. Du kan göra det här.

PowerShell är som ett programmeringsspråk, men inte så kryptiskt som de flesta. Det läser verkligen mycket som vanlig engelska(English) , vilket var något Microsoft strävade efter så att det kunde plockas upp av icke-programmerare.

Det är ett sätt att skriva några rader med kommandon, så kallade skript, för att få Windows -operativsystemet att göra något som du vill att det ska göra. Sedan kan du spara dessa rader i en fil och köra den med ett klick eller schemalägga att den körs med jämna mellanrum.

Vad kan du göra med PowerShell?

Poängen på hög nivå med PowerShell är att kunna automatisera uppgifter, så att du inte behöver slösa bort din tid på att göra vardagliga saker upprepade gånger. För en professionell systemadministratör(Systems Administrator) kan det vara något som att skapa nya användare, skapa lösenord för dem och skicka ett e-postmeddelande med detaljerna till sin nya handledare.

Manuellt gjort, med klick och skrivning, kan den processen ta 5 minuter till så mycket som en timme eller mer. Med rätt skript kanske systemadministratören(Systems Administrator) inte ens behöver göra någon del av det.

Men du vill veta vad du kan göra med PowerShell hemma. I stort sett allt som du inte gillar att göra om och om igen. Använd den för att frigöra utrymme på din hårddisk genom att ta bort temporära filer och loggfiler som du inte behöver.

Sätt ett utegångsförbud på ditt barns dator. Byt namn på(Rename) eller organisera ett gäng filer. Det är det fina med PowerShell . Nästan(Almost) allt du kan göra på din dator kan du skapa ett PowerShell- skript för att automatisera och köra med ett klick eller enligt ett schema.

Hur använder jag PowerShell?

Det enklaste sättet att arbeta med PowerShell är i PowerShell Integrated Scripting Environment (ISE) . Du hittar den genom att klicka på Start och skriva powershell ise i sökfältet i Windows 10 . Du bör se det som visas nedan.

För första gången vi använder det kommer vi att köra det som administratör(Administrator) . För att göra detta måste du först ha administratörsrättigheter på din dator. I din Start-meny(Start Menu) högerklickar du på PowerShell ISE och klickar sedan på Kör som administratör(Run as Administrator) .

Du kan få en varning för användaråtkomstkontroll(UAC) ( UAC(User Access Control) ) som frågar om du är säker på att du vill göra detta. Klicka på Ja(Yes) .

Nu tittar du på PowerShell IDE . Den övre rutan i fönstret (1) är skriptrutan. Det är här du kommer att skriva ditt manus. Den nedre rutan i fönstret (2) är konsolområdet. När du testar ditt skript ser du resultatet i den här rutan.

Det är också här du kommer att se felmeddelanden och sådant som hjälper dig att fixa och göra dina skript bättre. Rutan till höger om fönstret (3) är kommandotillägget. Se det som en ordbok över alla PowerShell- kommandon som är tillgängliga för dig.

PowerShell är inställt på att inte köra något annat skript än de som redan är en del av Windows . Du måste ändra det så att du kan köra dina egna skript.

Kopiera och klistra in följande i skriptfönstret:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Set -ExecutionPolicy-(Set-ExecutionPolicy ) delen av den kallas en cmdlet (uttalas commandlet). Cmdlets är kraftfulla saker. Tänk(Think) på dem som korta kommandon som du kan ge Windows , och Windows kommer att göra en massa mer komplicerade saker för att uppfylla ditt kommando.

En analogi skulle vara att säga till ditt barn att städa sitt rum. Kort(Short) och rakt på sak. Om ditt barn är väl insatt i att städa rum, kommer de att gå och bädda sin säng, lägga tvätten i korgen, hylla sina leksaker och böcker och kanske till och med dammsuga golvet. De förstår att cmdleten Clean-YourRoom betydde allt det.

Överst i fönstret ser du en grön pilspets. Klicka(Click) på det för att köra kommandot.

Delen -ExecutionPolicy talar om för Set-ExecutionPolicy vilken policy som ska ställas in. Det är en parameter. Det säger, "Jag vill att du arbetar inom dessa riktlinjer och gör specifikt detta. Den säger åt den att använda den specifika policyn för RemoteSigned .

RemoteSigned -(RemoteSigned ) policyn säger att PowerShell inte får köra eller köra något skript som laddats ner från Internet om det inte har signerats av en betrodd utgivare.

På ett omvägande sätt säger den till PowerShell att det går bra att köra alla skript som skapats lokalt, eftersom de inte behöver signeras av en betrodd fjärrutgivare. Nu kommer ditt PowerShell- skript att kunna köra alla skript du skriver på din dator.

Låt oss titta på ett skript för att ta bort temporära filer. Det är inte lika kraftfullt eller grundligt som CCleaner , men CCleaner kommer med sina egna problem.

Använd PowerShell(Use PowerShell) för att skapa utrymme(Create Space)din hårddisk(Your Hard Drive)

Vi kommer att dela upp det här skriptet, rad för rad, så att du kan se hur det fungerar. I slutet kommer skriptet att visas helt så att du kan kopiera och klistra in det om du vill.

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

Allt med ett dollartecken framför sig är ett variabelnamn. Se det som en plånbok att lägga värdefulla saker i. Plånbok(Wallet) påminner oss om dollartecknet, värdesaker låter som varierande, så vi kommer ihåg det också. Vi skapar en plånbok, eller variabel, som heter $TempFileLocation . Likhetstecknet talar om för PowerShell vad som ska läggas i den variabeln.

I det här fallet lägger vi in ​​platsen för en Windows-plats för temporära filer – C:\Users\username\AppData\Local\Temp\* . Vi gör det här av två anledningar; det är en plats som alltid är säker att ta bort filer från, och vi kommer att använda den för att tala om för PowerShell var den måste gå för att radera filer.

Där det står användarnamn på den platsen, byt ut det mot ditt användarnamn. Det är användarnamnet som du använder för att logga in på din dator. Asterisken (*) i slutet av den är ett jokertecken. Vad den representerar är allt i mappen Temp , eftersom allt i Temp- mappen är tillfälligt och vi vill ta bort det.

Dubbla citattecken runt platsen är också viktiga. Det säger till PowerShell att det som finns där är en sträng. Tänk(Think) på sträng som en sträng av bokstäver och tecken. Om det vore vanliga siffror skulle vi inte använda citattecken.

$TempFile = Get-ChildItem $TempFileLocation -Recurse

Vi gör en annan variabel. Den här gången ska vi använda ett kommando för att komma på något att lägga i variabeln $TempFile .

Get-ChildItem 

En annan sak du kommer att märka med cmdlets som Get-ChildItem är att den är helt läsbar. Ser du hur det första ordet är ett verb? Cmdlets börjar alla med handlingsord, så att du omedelbart vet vad den gör. ChildItem är två substantiv.

Den andra delen av cmdleten kommer alltid att berätta för oss vad PowerShell kommer att tillämpa åtgärden på. ChildItem betyder alla barn på en överordnad plats. Det är som att säga hämta alla filer som finns i en mapp, där filerna är underordnade och mappen är föräldern.

Vad får cmdleten de underordnade föremålen av? Allt i variabeln $TempFileLocation . PowerShell kommer att gå till platsen som vi lade in $ TempFileLocation tidigare och hämta alla underordnade föremål som finns där. Sedan lägger den in dem i variabeln $TempFile .

Så, vad är det med -Recurse- delen? Det säger till Get-ChildItem att gå igenom allt på den platsen. Gå inte bara och hämta filerna direkt i den överordnade mappen. Om det finns mappar i den mappen, skaffa alla deras barn också, och deras barn och så vidare. Vi ska få dem alla.

$TempFileCount = ($TempFile).count

Ja, vi skapar en tredje variabel som heter $TempFileCount , och vi kommer att lägga ett tal i den variabeln. Var är numret? Tja, ( $TempFile).count kommer att ge oss det numret. Du har förmodligen räknat ut att .count- delen kommer att göra räkningen av alla filer som vi just lagrat i $ TempFile .

Varför gjorde vi detta? Mest för att det är trevligt att veta hur många oanvändbara filer vi rensar ut med resten av skriptet så att vi kan se hur effektivt det var.

if($TempFileCount -eq 0)

Nu sätter vi upp ett villkorligt uttalande. Du kan se att den frågar "om". Om vad? Om saken inom parentes är sann eller falsk. Fästena är viktiga, annars vet inte If vad den ska jämföra. Här frågas om numret vi lagrade i $TempFileCount är lika med noll.

-eq är förkortningen(-eq) för lika. Det är en typ av jämförelseoperatör. Det är som att säga till dina barn, "Om ditt rum är rent, bra, vi ska göra något" Detta uttalande säger om numret som lagrades i $ TempFileCount är -lika med noll do nästa sak.

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

Det är det som kommer att hända om $TempFileCount är noll. De lockiga parenteserna är viktiga. De säger åt PowerShell att bara göra det som finns i dem om $ TempFileCount är lika med noll.

Det kommer att skriva till värden, eller skärmen, "Det finns inga filer i mappen C:\Users\användarnamn\Appdata\Local\Temp\*". Parametern i slutet, - ForegroundColor säger till PowerShell att göra texten grön. Det gör det bara lättare att skilja från ett felmeddelande som normalt är rött.

Else

Du vet vad annat betyder. Det här är "det är bäst att ditt rum är rent annars" en del av att kontrollera om ditt barn har städat sitt rum. Det är vad som kommer att hända om $TempFileCount inte är noll.

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

Detta säger gå till den aktuella platsen lagrad i $TempFile . Den vertikala linjen efter den kallas ett rör. Det fungerar ungefär som ett verkligt rör eftersom det säger till PowerShell att kantra innehållet i $ TempFile till cmdleten, som om det var vatten som leds in i en tvättmaskin. Sedan gör cmdleten Remove -Item( Remove-Item ) vad den säger; den tar bort allt som finns på den platsen.

Parametern -WhatIf( -WhatIf ) är mycket viktig i detta skede. Det säger till PowerShell att köra kommandot, men bara prova det, ta inte bort någonting. Visa oss bara(Just) vad som skulle hända om vi verkligen gjorde det här.

Detta gör att du kan testa kommandon utan att ändra något på din dator. Lämna -WhatIf där tills du känner dig bekväm med att manuset kommer att göra vad du vill att det ska göra och inget annat. Ta sedan bara bort det och skriptet kommer att göra sitt jobb.

Parametern -Confirm:$false hindrar skriptet från att fråga om du verkligen vill ta bort filen. Du vet vad -Recurse gör. -Tvinga( -Force) betyder att ta bort den där saken oavsett vad. -WarningAction är inställd på SilentlyContinue .

Detta förhindrar skriptet från att ge dig varningar om vad du tar bort. -ErrorAction är inställt på SilentlyContinue så att om det finns någon form av fel i processen, fortsätter den bara att tjata.

Nu är vi på sista raden.

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

Precis som Write-Host gjorde första gången kommer den att mata ut följande mening, så att vi vet vad som har hänt. Det kommer att berätta för oss hur många filer som togs bort från mappen den just bearbetade och gör det i grönt för att göra det lätt att hitta.

Låt oss titta på manuset helt och hållet:

$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 kopiera och klistra in detta i din PowerShell ISE och spara det som delete-TemporaryFiles.ps1 . Du kan lika gärna hålla dig till namnkonventionen för cmdlets nu när du förstår dem.

Om koden inte fungerar för dig av någon anledning kan du också ladda ner PowerShell-skriptet vi skapade och bara köra det. Packa bara(Just) upp den först för att se skriptfilen.

När du vill köra det här skriptet, högerklicka bara på det och välj Kör med PowerShell(Run with PowerShell) . En PowerShell -konsol dyker upp i en sekund eller två, medan ditt skript gör sitt, och försvinner sedan om det inte finns några fel.

Var kan jag lära mig mer PowerShell?

Det verkar vara mycket! För ditt första PowerShell- skript är det ganska bra. Om du har kommit så långt, applådera dig själv. Du har lärt dig mycket idag, men nu vill du lära dig mer. Det är jättebra!

Det finns många resurser på Internet för att lära dig mer om PowerShell . Ett bra ställe att börja är vår artikel, " Skapa en lista över startprogram via kommandoraden eller PowerShell(Generate a List of Startup Programs via Command Line or PowerShell) ". Kolla sedan in dessa andra resurser:



About the author

Hej potentiella arbetsgivare! Jag är en mycket erfaren mjukvaruingenjör med över 7 års erfarenhet inom området. Jag vet hur man designar och utvecklar Windows 7-applikationer och har ett brett utbud av Coola webbplatser-rekommendationer på min profil. Mina kunskaper och erfarenheter erbjuder mig en utmärkt matchning för alla företag som letar efter en talangfull person med goda projektledningsförmåga, programmeringskunskaper och erfarenhet av webbutveckling.



Related posts