Cine nu dorește să fie un vrăjitor și să rostească câteva cuvinte pentru a se întâmpla lucruri magice? Ei bine, nu vă putem arăta cum să fiți vrăjitor, dar vă putem arăta cum să faceți puțină magie pe computer.
Dacă aveți un computer Windows cu Windows 7 pe acesta, aveți PowerShell. De asemenea, dacă aveți un computer cu Windows 7 pe el, vă rugăm să-l actualizați pentru binele securității.
Dar acest articol nu este doar pentru Windows. Cea mai recentă versiune de PowerShell este gratuită și poate fi instalată și utilizată pe computerele Mac și Linux.
Acest lucru este important, deoarece ceea ce învățați despre PowerShell poate fi utilizat pe aproape orice computer acum. Cine știe? S-ar putea să treceți această abilitate la nivelul următor și să vă aventurați într-o carieră în Tehnologia informației.
Ce este PowerShell?
Răspunsul de înaltă tehnologie de la Microsoft este că este un „, ... shell-ul liniei de comandă proiectat în special pentru administratorii de sistem. ”Sună intimidant. Dar nu este. Ai grijă de computer? Da, atunci sunteți administratorul de sistem în casa dvs.
Îți spui computerului ce să facă cu clicurile și apăsările de taste? Da, așa că gândiți-vă la shell-ul din linia de comandă ca doar o altă fereastră în care introduceți lucruri pentru a spune computerului ce trebuie să facă. Puteți face acest lucru.
In_content_1 all: [300x250] / dfp: [640x360]->PowerShell este ca un limbaj de programare, dar nu la fel de criptic ca majoritatea. Citește foarte mult limba engleză obișnuită, ceea ce a fost un lucru pe care Microsoft l-a încercat, astfel încât să poată fi luat de către non-programatori.
Este o modalitate de a scrie câteva rânduri de comenzi, numite script, pentru a face sistemul de operare Windows să facă ceva pe care doriți să îl facă. Apoi, puteți salva liniile respective într-un fișier și rulați-le cu un clic sau să-l programați pentru a rula periodic.
Ce puteți face cu PowerShell?
Punctul la nivel înalt al PowerShell este să poți automatiza sarcinile, deci nu trebuie să-ți pierzi timpul făcând lucruri banale în mod repetat. Pentru un administrator de sisteme profesionale, acesta ar putea fi ceva precum crearea de noi utilizatori, generarea de parole pentru aceștia și trimiterea unui e-mail cu detaliile noului lor supervizor.
Realizat manual, cu clicuri și tastare, acest proces poate dura 5 minute până la o oră sau mai mult. Cu scripturile potrivite, este posibil ca administratorul de sisteme să nu fie nevoit să facă nici o parte din asta.
Dar doriți să știți ce puteți face cu PowerShell acasă. Aproape tot ce nu-ți place să faci din nou. Folosiți-l pentru a elibera spațiu pe hard disk prin ștergerea fișierelor temporare și a jurnalului de care nu aveți nevoie.
Puneți un cuplu pe computerul copilului dvs. Redenumiți sau organizați o grămadă de fișiere. Aceasta este frumusețea PowerShell. Aproape orice puteți face pe computer, puteți crea un script PowerShell pentru a automatiza și rula cu un clic sau pe o programare.
Cum folosesc PowerShell?
Cel mai simplu mod de a lucra cu PowerShell este în Mediul de scripturi integrate (PowerShell Integrated Scripting Environment) (ISE). O puteți găsi făcând clic pe Start și tastând powershell iseîn bara de căutare în Windows 10. Ar trebui să o vedeți așa cum este arătat mai jos.
Pentru prima dată când îl folosim, îl vom rula ca administrator. Pentru a face acest lucru, trebuie să aveți mai întâi drepturi de administrator pe computer. În meniul Start, faceți clic dreapta pe PowerShell ISE, apoi faceți clic pe Executați ca administrator.
Puteți obține un Pop-up de avertizare pentru controlul utilizatorului(UAC) care vă întreabă dacă sunteți sigur că doriți să faceți dothis. Faceți clic pe Da.
Acum te uiți la ID-ul PowerShell. Panoul superior al ferestrei (1)este panoul de scripturi. Aici îți vei scrie scenariul. Panoul de jos al ferestrei (2)este zona consolei. Când testezi scriptul, vei vedea ieșirea în acest panou.
Acesta este și locul în care vei vedea mesaje de eroare și astfel te vor ajuta să remediați și să îmbunătățești scripturile. Panoul din partea dreaptă a ferestrei (3)este suplimentul de comandă. Gândiți-vă la el ca la un dicționar al tuturor comenzilor PowerShell de care aveți la dispoziție.
PowerShell vine setat să nu ruleze niciun script în afară de cele deja existente o parte din Windows. Va trebui să o schimbați pentru a putea rula scripturi depărtate.
În fereastra de script, copiați și lipiți următoarele:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
The Set-ExecutionPolicyo parte din aceasta se numește cmdlet (comandet pronunțat). Cmdleturile sunt lucruri puternice. Gândiți-vă la ele ca la scurte comenzi pe care le puteți da Windows, iar Windows va merge să facă o mulțime de lucruri mai complicate pentru a vă satisface comanda.
O analogie ar spune copilului tău să-și curețe camera. Scurt și la obiect. Dacă copilul tău este bine versat la curățarea camerei, atunci ei se vor duce să își facă patul, să-și pună rufele în coș, să-și depoziteze jucăriile și cărțile și poate chiar să golească podeaua. Ei înțeleg că cmdlet Clean-YourRoom a însemnat toate acestea.
În partea de sus a ferestrei, veți vedea un cap de săgeată verde. Faceți clic pe asta pentru a rula comanda.
A - Partea ExecutionPolicyvă spune Set-ExecutionPolicyce politică să setați. Este un parametru. „Vreau să lucrați în conformitate cu aceste orientări și să faceți în mod special acest lucru. Îi spune să folosească politica specifică de la RemoteSigned.
Politica RemoteSignedprevede că PowerShell nu poate executa sau rula niciun script care a fost descărcat de pe Internet decât dacă a fost semnat de un editor de încredere.
Într-un sens giratoriu, acesta îi spune lui PowerShell că este bine să rulați orice script creat local, deoarece acestea nu trebuie să fie semnate de un editor de încredere de la distanță. Acum, scriptul dvs. PowerShell va putea rula orice script pe care îl scrieți pe computer.
Să ne uităm la un script pentru a șterge fișierele temporare. Nu este puternic sau complet ca CCleaner, dar CCleaner vine cu propriul său set de probleme.
Utilizați PowerShell pentru a crea spațiu pe hard diskul dvs.
Vom descompune acest script, linie cu linie, pentru a putea vedea cum funcționează. La sfârșit, scriptul va fi afișat complet, astfel încât să puteți copia și lipi dacă îl doriți.
$TempFileLocation = "C:\Users\username\Appdata\Local\Temp\*"
Orice lucru cu un semn dolar în față este un nume variabil . Gândiți-vă la un portofel pentru a introduce lucruri valoroase. Portofelul ne amintește de semnul dolarului, obiectele de valoare sună ca variabile, așa că ne vom aminti și de asta. Creăm un portofel sau o variabilă, numită $ TempFileLocation. Semnul egal indică PowerShell ce să introducă în acea variabilă.
În acest caz, introducem locația locației fișierelor temporare ale Windows - C: \ Users \ username \ AppData \ Local \ Temp \ *. Facem acest lucru din două motive; este o locație care este întotdeauna în siguranță pentru a șterge fișierele și o vom folosi pentru a spune PowerShell unde trebuie să meargă pentru a șterge fișierele.
Unde spune numele de utilizator în acea locație, schimbați-l pentru utilizator Nume. Acesta este numele de utilizator pe care îl utilizați pentru a vă conecta la computer. Asteriscul (*) de la sfârșitul lui este un wild card. Ceea ce reprezintă este totul în folderul Temp, deoarece tot ce este în folderul Temp este temporar și dorim să îl ștergem.
De asemenea, este importantă căutarea dublu din jurul locației. Thats spune PowerShell că ceea ce este acolo este un șir. Gândiți-vă la șir ca la o serie de litere și caractere. Dacă ar fi numere obișnuite, nu am folosi cotații.
$TempFile = Get-ChildItem $TempFileLocation -Recurse
Facem o altă variabilă. De această dată vom folosi o comandă pentru a pune la dispoziție ceva care să introducă în variabila $ TempFile.
Get-ChildItem
Un alt lucru pe care îl veți observați despre cmdlet-uri precum Get-ChildItemeste faptul că este complet lizibil. Vezi cum primul cuvânt este un verb? Cmdlet-urile încep toate cu cuvinte de acțiune, așa că știi imediat ce face. ChildItem este două substantive.
A doua parte a cmdlet-ului va fi întotdeauna să ne spună ce aplicație PowerShell va aplica. ChildItem înseamnă toți copiii unui loc părinte. Acest lucru este ca și cum ai spune că primiți toate fișierele dintr-un folder, fișierele fiind copiii și folderul fiind părintele.
Din ce este obținut cmdlet-ul pentru a primi elementele copil? Totul din variabila $ TempFileLocation. PowerShell va merge la locația pe care am introdus-o în $ TempFileLocation mai devreme și va primi toate elementele pentru copii care sunt acolo. Apoi, le va introduce în variabila $ TempFile.
Deci, ce este cu partea -Recurse? Acest lucru vă spune Get-ChildItemsă parcurgeți tot ce se află în acea locație. Nu mergeți doar să primiți fișierele imediat în folderul părinte. Dacă există folder în folderul respectiv, luați și toți copiii lor, și copiii lor și așa mai departe. O să le primim pe toate.
$TempFileCount = ($TempFile).count
Da, creăm o a treia variabilă numită $ TempFileCountși vom introduce un număr în acea variabilă. Unde este numărul? Ei bine, ($ TempFile) .countva primi numărul nostru. Probabil v-ați dat seama că partea .count va face numărarea tuturor fișierelor pe care tocmai le-am stocat în $ TempFile.
De ce am făcut asta? Mai ales că este plăcut să știm câte fișiere inutile curățăm cu restul scriptului, astfel încât să putem spune cât de eficient a fost.
if($TempFileCount -eq 0)
Acum setăm creează o declarație condiționată. Puteți vedea că cere „dacă”. Dacă ce? Dacă lucrurile din paranteze sunt adevărate sau false. Parantezele sunt importante, în caz contrar, dacă nu știe ce să compare. Aici, ne întreabă dacă numărul pe care l-am stocat în $ TempFileCounteste egal cu zero.
-eqeste caracteristica rapidă pentru egali. Este un tip de operator de comparație. Este ca și cum le-ai spune copiilor tăi: „Dacă camera ta este curată, grozav, vom face ceva ...” Această afirmație spune dacă numărul care a fost stocat în $ TempFileCount este egal până la zero face următorul lucru.
{Write-Host "There are no files in the folder $TempFileLocation" -ForegroundColor Green}
Acesta este lucrul care se va întâmpla dacă $ TempFileCounteste zero. Parantezele cret sunt importante. Ei îi spun lui PowerShell să facă numai ceea ce este în interiorul lor dacă $ TempFileCount este egal cu zero.
Acesta va scrie gazdei sau ecranului, „Nu există fișiere în folderul C: \ Users \ nume utilizator \ Appdata \ Local \ Temp \ *”. Parametrul de la sfârșit, - ForegroundColorîi spune PowerShell să facă textul verde. Acest lucru simplifică distingerea de un mesaj de eroare care este în mod normal roșu.
Else
Știi ce înseamnă altceva. Aceasta este partea de „Camera ta mai bine să fie curată sau altfel…” pentru a verifica dacă copilul tău a curățat camera. Ce se va întâmpla dacă $ TempFileCountnu este zero.
{$TempFile | Remove-Item -WhatIf -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue}
Acest lucru spune că mergeți la locația curentă stocată în $ TempFile>. Linia verticală după ce se numește țeavă. Funcționează ca o conductă din viața reală, deoarece îi spune lui PowerShell să îmbine conținutul $ TempFile în cmdlet, ca și cum ar fi fost apă în conductă într-o mașină de spălat. Apoi, cmdletul Eliminați elementulface ceea ce spune; elimină orice este la acea locație.
Parametrul -WhatIfeste foarte important în această etapă. Îi spune PowerShell să execute comanda, dar numai să o încerce, să nu elimine nimic. Arătați-ne doar ce s-ar întâmpla dacă am face cu adevărat acest lucru.
Aceasta vă permite să testați comenzile fără a schimba nimic pe computer. Lăsați-Ce este acolo până când nu vă veți simți confortabil că scriptul va face ceea ce doriți să facă și nimic altceva. Apoi ștergeți asta și scriptul își va face treaba.
Parametrul -Confirm: $ falseoprește scriptul să vă întrebe dacă doriți cu adevărat să ștergeți fișierul. Știți ce face -Recurse. -Forceînseamnă să ștergeți acel lucru, indiferent de situație. -WarningActioneste setat pe SilentlyContinue.
Acest lucru împiedică scriptul să vă dea avertismente cu privire la ceea ce ștergeți. -ErrorActioneste setat pe SilentlyContinue, astfel încât, dacă există vreun fel de eroare în acest proces, rămâne pur și simplu să ne ridicăm.
Acum suntem la ultima linie.
Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green}
La fel ca Scrie-gazdăa făcut prima dată, va emite următoarea propoziție, așa că știm ce s-a întâmplat . Ne va spune câte fișiere au fost șterse din folderul pe care tocmai l-a procesat și o vom face în verde pentru a face mai ușor de detectat.
Să ne uităm la script complet:
$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
}
Puteți copia și insera acest lucru în ISE-ul dvs. PowerShell și îl puteți salva ca ceva de genul delete-TemporaryFiles.ps1. La fel de bine puteți respecta convenția de denumire a cmdlet-urilor acum, când le înțelegeți. rulează-l. Decuplați-l mai întâi pentru a vizualiza fișierul script.
Ori de câte ori doriți să rulați acest script, faceți clic dreapta pe el și alegeți A alerga cu PowerShell. O consolă PowerShell va apărea timp de o secundă sau două, în timp ce scriptul face lucrurile sale și va dispărea dacă nu există erori.
Unde pot afla mai multe PowerShell?
Asta pare mult! Pentru primul dvs. script PowerShell este un pic corect. Dacă ați ajuns până acum, aplaudați-vă. Ați învățat multe astăzi, dar acum doriți să aflați mai multe. Grozav!
Există o mulțime de resurse pe Internet pentru a afla mai multe despre PowerShell. Un bun loc pentru a începe este articolul nostru, „Generați o listă de programe de pornire prin Linia de comandă sau PowerShell. Apoi verificați aceste alte resurse: