Používanie prostredia PowerShell pre domácich používateľov – príručka pre začiatočníkov

Kto by si neželal, aby mohol byť čarodejníkom a povedať pár slov, aby sa stali magické veci? No(Well) , nemôžeme vám ukázať, ako byť čarodejníkom, ale môžeme vám ukázať, ako urobiť malú počítačovú mágiu.

Ak máte počítač so systémom Windows so (Windows)systémom Windows 7(Windows 7) , máte PowerShell . Ak máte počítač so systémom Windows 7(Windows 7) , z bezpečnostných dôvodov ho aktualizujte.

Ale tento článok nie je len pre ľudí so systémom Windows(Windows) . Najnovšia verzia PowerShell je bezplatná a možno ju nainštalovať a používať na počítačoch Mac a Linux .

To je dôležité, pretože to, čo sa naučíte o PowerShell , môžete teraz použiť takmer na akomkoľvek počítači. Kto vie? Môžete posunúť túto zručnosť na ďalšiu úroveň a vydať sa na kariéru v oblasti informačných technológií(Information Technology) .

Čo je PowerShell?

High-tech odpoveď od Microsoftu(Microsoft) je, že ide o “príkazový riadok shell navrhnutý špeciálne pre systémových administrátorov. “Znie to(” Sounds) odstrašujúco. Ale nie je. Staráte sa o svoj počítač? Áno, potom ste správcom systému vo svojom dome.

Hovoríte svojmu počítaču, čo má robiť kliknutiami a stlačeniami kláves? Áno, predstavte si shell príkazového riadku len ako ďalšie okno, do ktorého zadávate veci, aby ste svojmu počítaču povedali, čo má robiť. Dokážeš to.

PowerShell je ako programovací jazyk, ale nie je taký tajomný ako väčšina. Naozaj sa to veľmi podobá bežnej angličtine(English) , o čo sa Microsoft usiloval, aby si to mohli osvojiť aj neprogramátori.

Je to spôsob písania niekoľkých riadkov príkazov, nazývaných skript, aby operačný systém Windows urobil niečo, čo chcete. Potom môžete tieto riadky uložiť do súboru a spustiť ho kliknutím alebo naplánovať jeho pravidelné spustenie.

Čo môžete robiť s PowerShell?

Hlavným bodom PowerShellu(PowerShell) je schopnosť automatizovať úlohy, takže nemusíte strácať čas opakovaným robením všedných vecí. Pre profesionálneho správcu systému(Systems Administrator) by to mohlo byť niečo ako vytváranie nových používateľov, vygenerovanie hesiel pre nich a odoslanie e-mailu s podrobnosťami ich novému nadriadenému.

Tento proces, ktorý sa vykonáva manuálne, klikaním a písaním, môže trvať 5 minút až hodinu alebo viac. So správnymi skriptami nemusí správca systému dokonca robiť žiadnu časť toho.(Systems Administrator)

Chcete však vedieť, čo môžete robiť s PowerShell doma. Takmer všetko, čo neradi robíte znova a znova. Použite ho na uvoľnenie miesta na pevnom disku odstránením dočasných a protokolových súborov, ktoré nepotrebujete.

Dajte svojmu dieťaťu na počítač zákaz vychádzania. Premenujte(Rename) alebo usporiadajte veľa súborov. To je krása PowerShellu(PowerShell) . Takmer(Almost) čokoľvek, čo môžete robiť na počítači, môžete vytvoriť skript PowerShell na automatizáciu a spustenie jedným kliknutím alebo podľa plánu.

Ako môžem používať PowerShell?

Najjednoduchší spôsob práce s PowerShell je v PowerShell Integrated Scripting Environment (ISE) . Nájdete ho kliknutím na Štart(Start) a zadaním powershell ise do vyhľadávacieho panela v systéme Windows 10(Windows 10) . Mali by ste to vidieť, ako je uvedené nižšie.

Prvýkrát, čo ho používame, ho spustíme ako správca(Administrator) . Ak to chcete urobiť, musíte mať v počítači práva správcu. V ponuke Štart(Start Menu) kliknite pravým tlačidlom myši na PowerShell ISE a potom kliknite na položku Spustiť ako správca(Run as Administrator) .

Môže sa zobraziť kontextové okno s upozornením Riadenie prístupu používateľov(User Access Control) ( UAC ) s otázkou, či to naozaj chcete urobiť. (UAC)Kliknite na tlačidlo Áno(Yes) .

Teraz sa pozeráte na PowerShell IDE . Horná tabla okna (1) je tabla skriptovania. Tu napíšete svoj skript. Spodná tabla okna (2) je oblasť konzoly. Keď skript otestujete, na tomto paneli uvidíte výstup.

Toto je tiež miesto, kde uvidíte chybové hlásenia a také, ktoré vám pomôžu opraviť a zlepšiť vaše skripty. Panel na pravej strane okna (3) je doplnkom príkazov. Predstavte si to ako slovník všetkých príkazov PowerShell , ktoré máte k dispozícii.(PowerShell)

PowerShell je nastavený tak, aby nespúšťal žiadne skripty okrem tých, ktoré sú už súčasťou systému Windows . Budete ho musieť zmeniť, aby ste mohli spúšťať svoje vlastné skripty.

V okne skriptovania skopírujte a prilepte nasledovné:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Jeho časť Set-ExecutionPolicy sa nazýva cmdlet (vyslovuje sa príkaz). Cmdlety sú mocné veci. Predstavte si(Think) ich ako krátke príkazy, ktoré môžete zadať systému Windows(Windows) a systém Windows(Windows) vykoná množstvo zložitejších vecí, aby splnil váš príkaz.

Analógia by bola povedať svojmu dieťaťu, aby si upratalo izbu. Krátke(Short) a k veci. Ak je vaše dieťa dobre oboznámené s upratovaním izieb, potom si pôjde pripraviť posteľ, uložiť bielizeň do koša, odložiť hračky a knihy a možno aj povysávať podlahu. Chápu, že cmdlet Clean-YourRoom to všetko znamenalo.

V hornej časti okna uvidíte zelenú šípku. Kliknutím(Click) naň spustíte príkaz.

Časť -ExecutionPolicy informuje Set-ExecutionPolicy , akú politiku má nastaviť. Je to parameter. Hovorí sa: „Chcem, aby ste pracovali v súlade s týmito pokynmi a robili konkrétne toto. Hovorí mu, aby použil špecifickú politiku RemoteSigned .

Zásada RemoteSigned uvádza, že PowerShell nesmie spustiť ani spustiť žiadny skript, ktorý bol stiahnutý z internetu(Internet) , pokiaľ nebol podpísaný dôveryhodným vydavateľom.

V kruhovom objazde informuje PowerShell , že je v poriadku spustiť akýkoľvek skript vytvorený lokálne, pretože tie nemusia byť podpísané vzdialeným dôveryhodným vydavateľom. Teraz bude váš skript PowerShell schopný spustiť akýkoľvek skript, ktorý napíšete na vašom počítači.

Pozrime sa na skript na odstránenie dočasných súborov. Nie je taký výkonný alebo dôkladný ako CCleaner , ale CCleaner prichádza so svojou vlastnou sadou problémov.

Použite PowerShell(Use PowerShell) na vytvorenie miesta(Create Space) na pevnom disku(Your Hard Drive)

Tento skript rozoberieme riadok po riadku, aby ste videli, ako funguje. Na konci sa skript úplne zobrazí, takže ho môžete skopírovať a prilepiť, ak chcete.

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

Čokoľvek, čo má pred sebou znak dolára, je názov premennej. Predstavte si to ako peňaženku, do ktorej vložíte cenné veci. Peňaženka(Wallet) nám pripomína znak dolára, cennosti znejú ako premenlivé, takže si to zapamätáme aj my. Vytvárame peňaženku alebo premennú s názvom $TempFileLocation . Znamienko rovnosti hovorí PowerShellu(PowerShell) , čo má do tejto premennej vložiť.

V tomto prípade umiestňujeme umiestnenie dočasných súborov systému Windows – C:\Users\username\AppData\Local\Temp\* . Robíme to z dvoch dôvodov; je to miesto, z ktorého je vždy bezpečné odstraňovať súbory, a použijeme ho na to, aby sme PowerShellu(PowerShell) povedali, kam musí ísť, aby sa súbory odstránili.

Tam, kde je na danom mieste uvedené používateľské meno, vymeňte ho za svoje používateľské meno. Toto je používateľské meno, ktoré používate na prihlásenie do počítača. Hviezdička (*) na konci je divoká karta. To, čo predstavuje, je všetko v priečinku Temp , pretože všetko v priečinku Temp je dočasné a chceme to odstrániť.

Dôležité sú aj dvojité úvodzovky okolo miesta. To hovorí PowerShellu(PowerShell) , že to, čo tam je, je reťazec. Predstavte si(Think) reťazec ako reťazec písmen a znakov. Ak by to boli obyčajné čísla, nepoužili by sme úvodzovky.

$TempFile = Get-ChildItem $TempFileLocation -Recurse

Vytvárame ďalšiu premennú. Tentoraz použijeme príkaz, aby sme prišli s niečím, čo vložíme do premennej $TempFile .

Get-ChildItem 

Ďalšia vec, ktorú si všimnete na cmdletoch, ako je Get-ChildItem , je, že sú úplne čitateľné. Vidíte, ako je prvé slovo sloveso? Všetky rutiny(Cmdlets) začínajú akčnými slovami, takže okamžite viete, čo robí. ChildItem sú dve podstatné mená.

Druhá časť cmdlet nám vždy povie, na čo PowerShell použije akciu. ChildItem znamená všetky potomky nadradenej lokality. Je to ako povedať získať všetky súbory, ktoré sú v priečinku, pričom súbory sú deti a priečinok je rodič.

Z čoho cmdlet získava podradené položky? Všetko v premennej $TempFileLocation . PowerShell prejde do umiestnenia, ktoré sme predtým vložili do $ TempFileLocation a získa všetky podradené položky, ktoré sa tam nachádzajú. Potom ich vloží do premennej $TempFile .

Takže, čo je s časťou -Recurse ? To znamená, že Get-ChildItem má prejsť všetkým na danom mieste. Nenechajte si súbory okamžite stiahnuť do nadradeného priečinka. Ak sú v tomto priečinku priečinky, získajte aj všetky ich deti a ich deti atď. Dostaneme ich všetkých.

$TempFileCount = ($TempFile).count

Áno, vytvárame tretiu premennú s názvom $TempFileCount a do tejto premennej vložíme číslo. Kde je číslo? No, ( $TempFile).count nám toto číslo prinesie. Pravdepodobne ste prišli na to, že časť .count spočíta(.count) všetky súbory, ktoré sme práve uložili do $ TempFile .

Prečo sme to urobili? Predovšetkým preto, že je pekné vedieť, koľko zbytočných súborov čistíme zvyškom skriptu, aby sme mohli povedať, aké to bolo efektívne.

if($TempFileCount -eq 0)

Teraz nastavujeme podmienené vyhlásenie. Môžete vidieť, že sa to pýta „ak“. Ak čo? Ak je vec v zátvorkách pravdivá alebo nepravdivá. Zátvorky sú dôležité, inak If nevie, čo porovnávať. Tu sa pýtame, či sa číslo, ktoré sme uložili do $TempFileCount , rovná nule.

-eq je skratka pre rovných . (-eq)Je to typ porovnávacieho operátora. Je to ako povedať svojim deťom: „Ak je vaša izba čistá, skvelé, niečo urobíme…“ Toto vyhlásenie hovorí, ak sa číslo uložené v $ TempFileCount rovná nule. ďalšia vec.

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

To je tá vec, ktorá sa stane, ak je $TempFileCount nula. Dôležité sú kučeravé zátvorky. Hovoria PowerShellu(PowerShell) , aby urobil iba to, čo je v nich, ak sa $ TempFileCount rovná nule.

Do hostiteľa alebo na obrazovku zapíše: „V priečinku C:\Users\používateľské meno\Appdata\Local\Temp\*“ sa nenachádzajú žiadne súbory. Parameter na konci – ForegroundColor hovorí PowerShellu(PowerShell) , aby urobil text zeleným. To len uľahčuje odlíšenie od chybového hlásenia, ktoré je zvyčajne červené.

Else

Vieš, čo iné znamená. Toto je tá, “Vaša izba by mala byť čistá, inak…” súčasť kontroly, či si vaše dieťa upratalo svoju izbu. Čo sa stane, ak $TempFileCount nebude nula.

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

Toto hovorí, že prejdite na aktuálne umiestnenie uložené v $TempFile . Vertikálna čiara za ňou sa nazýva potrubie. Funguje to trochu ako potrubie v skutočnom živote, pretože hovorí PowerShellu(PowerShell) , aby nahrnul obsah $ TempFile do cmdlet, ako keby to bola voda, ktorá sa privádza do práčky. Potom cmdlet Remove-Item urobí to, čo hovorí; odstráni všetko, čo je na danom mieste.

Parameter -WhatIf je v tejto fáze veľmi dôležitý. Povie PowerShellu(PowerShell) , aby spustil príkaz, ale len ho vyskúšajte, nič neodstraňujte. Len(Just) nám ukáž, ​​čo by sa stalo, keby sme to naozaj urobili.

To vám umožňuje testovať príkazy bez toho, aby ste čokoľvek menili na vašom počítači. Nechajte tam -WhatIf, kým vám nebude jasné, že skript bude robiť to, čo chcete, a nič iné. Potom to jednoducho odstráňte a skript urobí svoju prácu.

Parameter -Confirm:$false zabráni skriptu pýtať sa, či naozaj chcete súbor odstrániť. Viete, čo robí -Recurse . -Sila( -Force) znamená odstrániť tú vec, nech sa deje čokoľvek. -WarningAction je nastavená na možnosť Tiché pokračovanie(SilentlyContinue) .

To bráni skriptu, aby vás upozornil na to, čo odstraňujete. -ErrorAction je nastavená na SilentlyContinue , takže ak sa v procese vyskytne nejaká chyba, bude to pokračovať.

Teraz sme v poslednom riadku.

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

Rovnako ako Write-Host prvýkrát, vypíše nasledujúcu vetu, takže vieme, čo sa stalo. Povie nám, koľko súborov bolo odstránených z priečinka, ktorý práve spracoval, a urobí to zelenou farbou, aby to bolo ľahké nájsť.

Pozrime sa na celý scenár:

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

Môžete to skopírovať a vložiť do svojho PowerShell ISE a uložiť ako niečo ako delete-TemporaryFiles.ps1 . Môžete sa tiež držať konvencie pomenovania cmdletov, keď im už rozumiete.

Ak vám kód z nejakého dôvodu nefunguje, môžete si tiež stiahnuť skript PowerShell , ktorý sme vytvorili, a jednoducho ho spustiť. Ak chcete zobraziť súbor skriptu, najprv ho rozbaľte .(Just)

Kedykoľvek budete chcieť tento skript spustiť, stačí naň kliknúť pravým tlačidlom myši a vybrať možnosť Spustiť s PowerShell(Run with PowerShell) . Konzola PowerShell(PowerShell) sa objaví na sekundu alebo dve, zatiaľ čo váš skript robí svoju prácu, a potom zmizne, ak sa nevyskytnú žiadne chyby.

Kde sa môžem dozvedieť viac o PowerShell?

To sa zdá byť veľa! Pre váš prvý skript PowerShell je to dosť. Ak ste sa dostali až sem, zatlieskajte si. Dnes ste sa veľa naučili, ale teraz sa chcete dozvedieť viac. To je skvelé!

Na internete(Internet) je množstvo zdrojov, kde sa môžete dozvedieť viac o PowerShell . Dobrým miestom, kde začať, je náš článok „ Vygenerovanie zoznamu spúšťacích programov cez príkazový riadok alebo PowerShell(Generate a List of Startup Programs via Command Line or PowerShell) “. Potom si pozrite tieto ďalšie zdroje:



About the author

Som softvérový vývojár s viac ako 10-ročnými skúsenosťami. Špecializujem sa na programovanie pre Mac a napísal som niekoľko tisíc riadkov kódu pre rôzne aplikácie Mac, vrátane, ale nie výlučne: TextEdit, GarageBand, iMovie a Inkscape. Mám skúsenosti aj s vývojom pre Linux a Windows. Moje zručnosti vývojára mi umožňujú písať vysokokvalitné a komplexné návody pre rôzne platformy vývoja softvéru – od macOS po Linux – vďaka čomu sú moje návody ideálnou voľbou pre tých, ktorí sa chcú dozvedieť viac o nástrojoch, ktoré používajú.



Related posts