If-Koubou

Geek School: Învățarea de a folosi Cmdlets în PowerShell

Geek School: Învățarea de a folosi Cmdlets în PowerShell (Cum să)

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ă ne alăturați 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 păstrați-vă tot restul seriilor noastre 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

Rapoartele PowerShell au o sintaxă Verb-Noun, care poate fi văzută mai sus. Este important să rețineți 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 ajută cu adevărat la ghicirea numelor 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 - Corect, 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, ca în cazul în care veți găsi majoritatea modulelor specifice tehnologiei.

Cu ceva timp în urmă, am citit un articol de Don Jones, Dumnezeul lui PowerShell, unde a explicat că Exchange trimis înainte de acest prefix a fost adăugat în cmdleturi, așa că nu le-a implementat niciodată și nu va mai face niciodată.

Pseudonime

O altă caracteristică pe care o include PowerShell este abilitatea de a avea mai multe moduri de rulare a aceleiași comenzi - alias-uri, dacă doriți. Minunatul lucru 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 utilizând:

Get-ChildItem

Folosit pentru a utiliza linia 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ă folosiți aliasuri 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ă faceți pasul, puteți utiliza parametrul de definire pentru a obține toate pseudonime pentru un cmdlet:

Get-ChildItem - Definiție Get-ChildItem

Dacă veniți dintr-un alt fundal, 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 execute sub capotă.

Un lucru de remarcat este că pierdeți toate pseudonimele pe care le-ați definit când închideți coajă. Puteți obține acest lucru prin adăugarea definiției lor la scenariul 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 - denumiți "Dispozitiv mobil Apple" -ComputerName localhost

Este la fel ca:

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

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

Legacy Commands

Î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ă ieșim dintr-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.