5 Cmdlets pentru a vă începe cu PowerShell
PowerShell devine repede limbajul de scripting preferat și CLI-ul utilizatorilor Power precum și profesioniștii IT. Este bine să înveți câteva comenzi pentru a începe, așa că avem 5 cmdlet-uri utile pentru a învăța astăzi.
Get-comandă
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. Folosirea lui Get-Command pe cont propriu nu este foarte utilă, deoarece el va scuipa orice comandă pe care PowerShell o are.
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 aceste informații, putem căuta cererea noastră, căutând cmdleturi 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:
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 *
Obține ajutor
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 ați făcut ceva de genul:
ipconfig /?
Ei bine, acest lucru nu funcționează în PowerShell, deoarece î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-membru
Get-Member ne permite să obținem informații despre obiectele pe care le emite un cmdlet. Catch cu get-membru, este că se bazează pe caracteristica conductei PowerShell, pentru a demonstra acest lucru, vom putea folosi cmdlet-ul Get-Process.
După cum vedeți ieșirea PowerShell ne arată câteva 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 la obiect. Pentru a vedea metodele și proprietățile, putem conduce producția noastră la Get-Member, după cum urmează:
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, folosindu-ne informațiile de la ieșire, am putea face ceva de genul:
Start-Process notepad.exe
$ NotepadProc = Get-Process -Nu-i un notepad
$ NotepadProc.WaitForExit ()
Start-Process calc.exe
Acest script va lansa notepad-ul, apoi va atribui output-ului "Get-Process-name notepad" la variabila $ NotepadProc, apoi numim metoda WaitForExit pe $ NotepadProc care face ca scenariul sa se intrerupa pana cand inchideti notepad-ul, atunci calculatorul va porni.
$ _ (Obiectul curent al conductei)
Deși nu este exact un cmdlet, este una dintre cele mai utilizate variabile speciale din PowerShell. Numele oficial pentru $ _ este "obiectul curent al conductei". Se utilizează în blocurile de script, filtre, clauza de proces a funcțiilor, unde-obiect, foreach-obiect și switch-uri. Cu toate acestea, este mai ușor să explicăm cu un exemplu, care ne aduce la următorul cmdlet final, Where-Object.
În cazul în care-obiect
În cazul în care 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 cmdlet-ul unde-obiect.
Get-Process | Unde-Obiect $ _. Nume -eq "iexplore"
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 Where-Object, 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ă primim doar o listă a instanțelor IE care rulează. Asta e tot ce trebuie sa faci, sa te distrezi!