Ce face Get-Member
În PowerShell, comenzile trimit obiecte, nu text. Get-Member (alias gm) îți arată ce fel de obiect primești: prima linie, TypeName, este tipul .NET, iar tabelul listează membrii, cu tipul lor (Property, Method, NoteProperty, ScriptProperty…) și definiția. Lista e sortată alfabetic, cu metodele înaintea proprietăților.
Îl folosești când nu știi cum se numește o proprietate: Get-ChildItem | Get-Member arată că fișierele au Length, LastWriteTime, Extension, pe care le poți folosi apoi în Where-Object, Sort-Object sau Select-Object.
Când trimiți prin pipeline o colecție, Get-Member descrie elementele (câte un bloc pentru fiecare tip diferit). Dacă vrei membrii colecției însăși (de exemplu ai unui tablou), folosește Get-Member -InputObject $tablou.
Parametri
| Parametru | Descriere |
|---|---|
-Name |
Doar membrii cu numele dat. |
-MemberType |
Doar un tip de membru: Property, Method, NoteProperty, ScriptProperty, Properties, Methods, All… |
-Static |
Membrii statici ai clasei (de exemplu [math] | Get-Member -Static). |
-Force |
Include și membrii intrinseci (psobject, psbase) și metodele get_/set_. |
-InputObject |
Obiectul analizat; o colecție dată aici e tratată ca un singur obiect. |
Ce returnează
Câte un obiect MemberDefinition pentru fiecare proprietate sau metodă găsită.
Exemple
Exemplul 1: Proprietățile unui șir de caractere
Un text are o singură proprietate, Length; restul membrilor sunt metode.
'Iași' | Get-Member -MemberType Property
Ieșire în terminal
TypeName: System.String
Name MemberType Definition
---- ---------- ----------
Length Property int Length {get;}
Exemplul 2: Proprietățile unui obiect creat de tine
Câmpurile unui [pscustomobject] apar ca NoteProperty, cu tipul și valoarea lor.
[pscustomobject]@{ Nume = 'Ana'; Oras = 'Iași' } | Get-Member -MemberType NoteProperty
Ieșire în terminal
TypeName: System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Nume NoteProperty string Nume=Ana
Oras NoteProperty string Oras=Iași
Exemplul 3: Ce poți afla despre un fișier
Ceri doar două proprietăți ale unui fișier, ca să vezi tipul lor înainte să le folosești la sortare.
Get-Item C:\Proiecte\facturi\ianuarie.pdf | Get-Member -Name Length, LastWriteTime
Ieșire în terminal
TypeName: System.IO.FileInfo
Name MemberType Definition
---- ---------- ----------
LastWriteTime Property datetime LastWriteTime {get;set;}
Length Property long Length {get;}
Greșeli frecvente
- Să pui
Get-MemberdupăFormat-TablesauFormat-List: vei vedea obiecte de formatare, nu datele tale. Pune-l înaintea comenzilorFormat-*. - Să crezi că
$tablou | Get-Memberdescrie tabloul: descrie elementele lui. Pentru tablou folosește-InputObject. - Să cauți o proprietate după numele coloanei afișate: unele coloane din tabelele implicite (de exemplu
CPU(s)la procese) sunt etichete calculate, iar numele real al proprietății îl afli dinGet-Member.
Comenzi înrudite
Pipeline (|): Operatorul | trimite obiectele unei comenzi, unul câte unul, comenzii următoare; $_ este obiectul curent, iar && și || înlănțuie comenzi.Get-Command: Găsește comenzile disponibile (cmdlet-uri, funcții, aliasuri, programe); Get-Alias arată ce comandă se ascunde în spatele unui alias.Select-Object: Alege doar anumite proprietăți ale obiectelor, adaugă proprietăți calculate sau păstrează primele, ultimele ori unicele elemente.Variabile și tipuri: Variabilele încep cu $, primesc orice obiect .NET și pot fi legate de un tip ([int], [string], [datetime]); .GetType() arată tipul.