În operațiunile mele de zi cu zi, trebuie frecvent să execut tcpdump-uri pe servere la distanță și este o durere să salvez rezultatul într-un fișier și apoi trebuie să muți fișierul pe laptop pentru a-l analiza pe wireshark.
Am explorat comanda de mai jos și funcționează bine în Linux
ssh <gazdă_la distanță> sudo tcpdump -vv -i eth0 -U -w - | wireshark -k -i -
Dar, din păcate, laptopul meu de serviciu furnizat de compania mea are ferestre pe el și nu îmi permit să trec la alt sistem de operare. Având în vedere această restricție, încercam să obțin același rezultat, dar în Windows...
Dacă execut următoarea comandă în Windows într-un Powershell
ssh <gazdă_la distanță> sudo tcpdump -vv -i eth0 -U -w - | „C:\Program Files\Wireshark\Wireshark.exe” -k -i -
Primesc această eroare
La linia:1 char:87
+ ... -i eth0 -U -w - | „C:\Program Files\Wireshark\Wireshark.exe” -k -i -
+ ~~
Indicativ neașteptat „-k” în expresie sau instrucțiune.
La linia:1 char:44
+ ... -i eth0 -U -w - | „C:\Program Files\Wireshark\Wireshark.exe” -k -i -
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expresiile sunt permise doar ca prim element al unei conducte.
La linia:1 char:90
+ ... -i eth0 -U -w - | „C:\Program Files\Wireshark\Wireshark.exe” -k -i -
+ ~~
Indicativ neașteptat „-i” în expresie sau declarație.
+ CategoryInfo: ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId: UnexpectedToken
Dacă execut comanda wireshark fără partea ssh, primesc aceeași eroare, dar dacă o execut așa
& „C:\Program Files\Wireshark\Wireshark.exe” -k -i -
Deschide Wireshark și așteaptă intrarea datelor. Având în vedere acest lucru, am încercat să schimb comanda în
ssh <gazdă_la distanță> sudo tcpdump -vv -i eth0 -U -w - | & „C:\Program Files\Wireshark\Wireshark.exe” -k -i -
În acest fel, comanda ssh este executată și tcpdump pornește în gazda la distanță, wireshark nu pornește niciodată. ce fac greșit? De ce comanda pipetă care este cel mai asemănătoare cu cea din linux nu funcționează în Windows, este diferită piperea?