alphasec
PowerShell protip 001f
in 𝕏

ps|gm - dzięki Get-Member (gm) poznasz co ma do zaoferowania zwracany obiekt

tty1 · powershell
PS> ps|gm
#Powershell#RedTeam#BlueTeam#GoodToKnow

Get-Member to kolejne złoto Powershella. Wyświetli metody i właściwości obiektu. Zwłaszcza jeśli pracujemy z nowym cmdletem, warto uruchomić na jego wyniku |Get-Member (w skrócie |gm), by zobaczyć jekie właściwości i metody zwracane obiekty posiadają. Polecam dla testów uruchomić Get-Service|gm czy ps|gm.

Get-Member przyda nam się również przy pracy z obiektami JSON, np:

PS C:\Users\drg> irm "https://dns.google/resolve?name=msg.aptmc.pl&type=txt"|gm

   TypeName: System.Management.Automation.PSCustomObject
Name        MemberType   Definition
----        ----------   ----------
Equals      Method       bool Equals(System.Object obj)
GetHashCode Method       int GetHashCode()
GetType     Method       type GetType()
ToString    Method       string ToString()
AD          NoteProperty bool AD=False
Answer      NoteProperty Object[] Answer=System.Object[]
CD          NoteProperty bool CD=False
Question    NoteProperty Object[] Question=System.Object[]
RA          NoteProperty bool RA=True
RD          NoteProperty bool RD=True
Status      NoteProperty long Status=0
TC          NoteProperty bool TC=False

PS C:\Users\drg>

Widzimy, że w odpowiedzi na zapytanie do serwera DNS-over-HTTPS otrzymaliśmy obiekt, zawierający między innymi własność Answer. By zajrzeć głębiej, znów możemy wykorzystać Get-Member:

PS C:\Users\drg> (irm "https://dns.google/resolve?name=msg.aptmc.pl&type=txt").Answer|gm

   TypeName: System.Management.Automation.PSCustomObject
Name        MemberType   Definition
----        ----------   ----------
Equals      Method       bool Equals(System.Object obj)
GetHashCode Method       int GetHashCode()
GetType     Method       type GetType()
ToString    Method       string ToString()
data        NoteProperty string data="W1N5c3RlbS5SZWZsZWN0aW9uLkFzc2VtYmx5XTo6TG9hZFdpdGhQYXJ0aWFsTmFtZSgiU3lzdGVtLldpbmRvd3MuRm9ybXMiKQ…
name        NoteProperty string name=msg.aptmc.pl.
TTL         NoteProperty long TTL=15244
type        NoteProperty long type=16

PS C:\Users\drg>

Wiemy już, która właściwość tego obiektu nas najbardziej interesuje: Answer » data.

← poprzedni protip 001e ••• Wszystkie protipy następny → protip 0020
// subskrybuj

Nowe protipy prosto na maila.

Mięsiste jednolinijkowce i triki z prawdziwych zleceń. Zero spamu, zero teorii. Wypisujesz się jednym kliknięciem.

wersja newslettera: