PowerShell devine rapid limbajul de scripting preferat și CLI-ul utilizatorilor Power precum și al profesioniștilor IT. Este bine să învățați câteva comenzi pentru a începe să începeți, așa că avem 5 cmdlete utile pentru a învăța astăzi.
Get-Command este unul dintre cele mai utile cmdlet-uri din PowerShell, deoarece vă va ajuta să vă ocupați de PowerShell, permițându-vă să căutați anumite cmdleturi. Utilizarea lui Get-Command pe cont propriu nu este foarte utilă, deoarece el va scuipa orice comandă pe care o are PowerShell.
Dar din acest lucru putem vedea că obiectele că ieșirile PowerShell au atât o proprietate Nume, cât și o Nume de Module. Folosind această informație, putem căuta cererea noastră, căutând cmdlet-uri care conțin anumiți termeni. De exemplu, dacă aș vrea să găsesc toate cmdleturile care conțin cuvântul "IP", aș putea face acest lucru:
Comanda Get-Command -name * IP *
După cum puteți vedea, obținem încă câteva rezultate, următoarea opțiune este căutarea în cadrul unui anumit modul. În cazul nostru vom alege modulul NetTCPIP.
Get-Command -Module NetTCPIP -Name * IP *
Odată ce ați găsit cmdlet-ul pe care îl căutați folosind Get-Command, veți dori să cunoașteți sintaxa și cum puteți folosi acel cmdlet specific. Aici intră Get-Help, dacă ați folosit vreodată linia de comandă în Windows, probabil că ați făcut ceva de genul:
ipconfig /?
Ei bine, acest lucru nu funcționează în PowerShell, pentru că în PowerShell este folosit un spațiu pentru a separa o comandă de parametrii săi. Deci, în schimb, folosim Get-Help și trimitem un nume de cmdlets în Get-Help ca parametru.
Get-Get Get-Process
Get-Member ne permite să obținem informații despre obiectele pe care le întoarce un cmdlets. Câștigul cu elementul de primire, este că se bazează pe caracteristica conductei PowerShell, pentru a demonstra acest lucru, vom putea folosi cmdletul Get-Process.
După cum vedeți ieșirea PowerShell ne arată unele dintre proprietățile, pe care le puteți vedea în partea de sus a fiecărei coloane. Prima problemă este că, în timp ce acestea sunt proprietățile pe care le-ați putea căuta de cele mai multe ori, mai sunt încă multe dintre ele. A doua problemă este că nu arată metode pe care suntem capabili să le apelăm asupra obiectului. Pentru a vedea metodele și proprietățile, putem conduce producția noastră la Get-Member, cum ar fi:
Get-Process Get-membru
Deși nu vă poate însemna nimic acum, va trebui mai devreme sau mai târziu să utilizați Get-Member și cu atât mai curând veți învăța să îl utilizați mai bine. Ca exemplu, folosind informațiile de la ieșire, am putea face ceva de genul:
Start-Process notepad.exe
$ NotepadProc = Get-Process -Turn notepad
$ NotepadProc.WaitForExit ()
Start-Process calc.exe
Acest script va lansa notepad-ul, apoi atribuie output-ului "Get-Process -Name notepad" la variabila $ NotepadProc, apoi numim metoda WaitForExit pe $ NotepadProc, ceea ce face scriptul sa pauze pana cand inchideti Notepad-ul, atunci calculatorul va porni.
În timp ce nu este exact un cmdlet, este una dintre cele mai utilizate variabile speciale din PowerShell. Numele oficial pentru $ _ este "obiectul curent al conductei". Se folosește în blocuri de script, filtre, clauza de proces a funcțiilor, unde-obiect, foreach-object și switches. Cu toate acestea, este mai ușor să explicăm cu un exemplu, care ne aduce la următorul cmdlet final și Unde-Object.
Unde Object-ul face exact ceea ce pare, el selectează un obiect bazat pe respectarea anumitor criterii. Acest lucru va aduce împreună $ _, iar proprietățile pe care le putem vedea folosind Get-Member. Pentru a demonstra acest lucru, vom conduce rezultatul Get-Process în cmdletul Where-Object.
Get-Process Unde-Obiect $ _. Nume -eq "iexplore"
Deci, ce se întâmplă aici? Primul lucru pe care îl facem este să obțineți o listă de procese pe calculatorul nostru și să transmitem ieșirea (folosind caracterul |) în cmdletul nostru unde-obiect, care ia un bloc de script ca parametru. Blocul de script (definit de cotierele curbate) instruiește cmdlet-urile unde-obiect să selecteze numai obiecte în care parametrul lor de nume este egal cu "iexplore", așa că obținem doar o listă a instanțelor IE care se execută. Asta e tot ce este, să te distrezi!