Pagina principala » HOWTO » Școala Geek Învățând să folosească Cmdlets în PowerShell

    Școala Geek Învățând să folosească Cmdlets în PowerShell

    Dacă ați folosit ipconfig sau ping prin promptul de comandă, sunteți la jumătatea drumului pentru a deveni un ninja PowerShell. Deci, haideți să vă alăturați nouă când descoperim cmdleturile în această instalație a Școlii Geek.

    Asigurați-vă că ați verificat primul nostru articol introducând PowerShell și rămâneți la dispoziție pentru restul seriei noastre pe toată săptămâna.

    Anatomia unui cmdlet

    În prima parte a Seriei am văzut un cmdlet care arăta cam așa:

    Actualizare-Ajutor

    Culelele PowerShell au o sintaxă Verb-Noun, care poate fi văzută mai sus. Cel mai important lucru de reținut este faptul că substantivul este întotdeauna unic, chiar dacă cmdlet-ul ar putea reveni la mai mult de un rezultat. Pentru a vedea o listă de verbe legale în PowerShell, puteți folosi cmdletul Get-Verb.

    Cunoașterea verbelor juridice și amintirea regulii substanțiale singulare îi ajută cu adevărat să ghicească numele de cmdlet. De exemplu, să presupunem că doriți obține o lista de Servicii și statutul lor - este corect, la fel de ușor ca Get-Service. Cum crezi că o să facem asta? obține o listă de alergare procese - asta e bine, Get-Process va face truc.

    Get-proces

    Acest lucru face foarte ușor să lucrați cu orice tehnologie. De exemplu, dacă ați încărcat cmdlet-urile Exchange, am putea obține cu ușurință o listă de cutii poștale pe server utilizând:

    Get-Mailbox

    Cu toate acestea, există o excepție. În schimb, toate celelalte comenzi specifice tehnologiei vor necesita un prefix. De exemplu, dacă vrem să obținem utilizatorii conectați în mod curent prin intermediul Remote Desktop, vom tasta:

    Get-RDUserSession

    Ceea ce poate fi văzut în imaginea de mai jos.

    Notă: această captură de ecran a fost făcută pe o casetă Server 2012, deoarece este locul unde veți găsi majoritatea modulelor specifice tehnologiei.

    Cu ceva timp in urma, am citit un articol de Don Jones, nasul din PowerShell, unde a explicat ca Exchange trimis inainte ca acest prefix sa fie adaugat in cmdleturi, asa ca niciodata nu le-a implementat si niciodata nu.

    Pseudonime

    O altă caracteristică pe care o include PowerShell este abilitatea de a avea mai multe moduri de rulare a aceleiași comenzi - aliasuri, dacă doriți. Lucrul minunat despre ei este că au inclus multe comenzi pe care le-ați fi putut folosi în linia de comandă, precum și unele aliasuri Linux. De exemplu, în PowerShell putem obține o listă de directoare folosind:

    Get-ChildItem

    Folosit pentru a utiliza promptul de comandă? Nu-ți face griji, te-au acoperit.

    Aveți un background Linux? Și tu ai acoperit acolo.

    Când ați scripticat de câțiva ani, aveți tendința de a obține leneș și de a începe să utilizați alias-urile foarte mult, dar acest lucru nu ajută noii veniți care vor citi codul nostru. Pentru a vedea ce comandă rulează un alias sub hota, puteți folosi următoarele:

    Get-Alias ​​-Imi ls

    Pe de altă parte, dacă simțiți că este timpul să vă pasificați jocul, puteți utiliza parametrul de definire pentru a obține toate pseudonime pentru un cmdlet:

    Get-ChildItem -Definiție Get-ChildItem

    Dacă veniți din alte fundaluri, puteți adăuga propriile pseudonime făcând următoarele:

    Alianțe noi - Sunt icanhazfilez -Value Get-ChildItem

    Evident, va trebui să înlocuiți "icanhazfilez" cu numele noului dvs. alias și Get-ChildItem cu cmdlet-ul pe care doriți să îl rulați sub capota.

    Un lucru de remarcat este că pierdeți toate pseudonimele pe care le-ați definit când închideți shell-ul. Puteți înțelege acest lucru prin adăugarea definiției acestora la scriptul dvs. de profil.

    Truncating Parameters

    Windows PowerShell vă permite, de asemenea, să trunchiați numele parametrilor până când devin ambiguu, adică până în punctul în care PowerShell nu mai poate afla ce parametru vorbești. De exemplu:

    Get-Service - "Apple Mobile Device" -ComputerName localhost

    Este la fel ca:

    Get-Service - Nu este "un dispozitiv mobil Apple" -Com localhost

    Dacă, în orice caz, faceți numele parametrilor prea ambiguuți, veți primi o eroare.

    Comenzile vechi

    În cele din urmă, comenzile pe care le cunoașteți și le iubiți vor funcționa în continuare în PowerShell.

    ping www.google.com

    Amintiți-vă că aplicațiile moștenite, cum ar fi pingul de ieșire un șir, și de multe ori există o modalitate mai bună de a face același lucru folosind un cmdlet PowerShell.

    În loc să scoatem un șir lung de text, suntem acum lăsați cu un obiect, pe care îl vom arunca o privire la ediția de mâine a școlii Geek.