Jakie są odpowiedniki popularnych komend sieciowych w PowerShellu

Samo poznanie podstawowych komend PowerShella nie na wiele się zda, jeżeli nie będzie się ich stosowało w praktyce. Za pomocą Wiersza poleceń zwykle diagnozuje się problemy związane z siecią zatem dobrze zacząć od ich nowocześniejszych odpowiedników.

Ping

Polecenie ping służy do badania stanu połączenia internetowego, możliwości komunikacji z komputerem zdalnym. Zostało ono zastąpione komendą Test-NetConnection o następujących możliwościach użycia.

  • Test-NetConnection – Polecenie bez argumentów odpyta internetbeacon.msedge.net, co jest idealne do sprawdzenia czy internet działa, a nie chce się pingować serwerów wp.pl.
  • Test-NetConnection techniczny.net – Sprawdzenie czy serwer techniczny.net odpowiada na pingi oraz wyświetlenie podstawowych informacji takich jak jego adres IP i średni czas odpowiedzi.
  • Test-NetConnection -ComputerName techniczny.net -InformationLevel Detailed – Identyczne zachowanie jak przy powyższej komendzie, ale zwróconych zostanie więcej informacji.

Telnet (sprawdzenie czy konkretny port jest otwarty)

Od pewnego czasu klient telnet nie jest domyślnie instalowany w systemie, a jednym z jego zastosowań jest sprawdzanie czy konkretny port jest otwarty i czy jakiś program na nim nasłuchuje. Jego PowerShellowym odpowiednikiem jest… Test-NetConnection.

  • Test-NetConnection techniczny.net -RemotePort 25 – Sprawdzenie czy techniczny.net nasłuchuje na porcie 25.
  • Test-NetConnection techniczny.net -CommonTCPPort HTTP – Można też użyć parametru który przechowuje zdefiniowane wartości dla: HTTP, RDP, SMB, WINRM (Windows Remote Management).

Tracert

Użycie polecenia tracert wyświetli drogę pakietów do docelowego komputera wraz z adresami IP węzłów przez które przechodzą. Korzystając z PowerShella można skorzystać z… Test-NetConnection.

  • Test-NetConnection techniczny.net -TraceRoute – Wyświetlenie adresów IP wszystkich węzłów między komputerem a serwerem techniczny.net.
  • Test-NetConnection techniczny.net -TraceRoute | Select -ExpandProperty TraceRoute | % { Resolve-DnsName $_ -type PTR -ErrorAction SilentlyContinue } – Identyczne zachowanie jak powyżej, ale zamiast adresów IP zostaną wypisane ich nazwy domenowe.

Ipconfig

Polecenie ipconfig, służące do wyświetlenia ustawień kart sieciowych, zastąpiono komendą Get-NetIPConfiguration.

  • Get-NetIPConfiguration – Wypisanie podstawowych ustawień wszystkich interfejsów sieciowych.
  • Get-NetIPConfiguration | Sort InterfaceIndex – Zachowanie komendy jest takie samo jak w poprzednim przypadku, ale interfejsy zostaną posortowane według indeksu. Aby posortować je według nazwy zamiast InterfaceIndex wystarczy użyć InterfaceAlias.
  • Get-NetIPConfiguration -Detailed – Wyświetli więcej szczegółów.

Netstat

Netstat – wypisujący aktualne połączenia TCP/IP został przemianowany na Get-NetTCPConnection i może być użyty na następujące sposoby:

  • Get-NetTCPConnection – Poda wszystkie połączenia wraz z ich lokalnym i zdalnym adresem oraz portem i statusem.
  • Get-NetTCPConnection | ? State -eq Listen – Wyświetli wyłącznie te ze statusem Listen.

Nslookup

Nslookup to teraz Resolve-DnsName. Służy do uzyskania adresu IP wskazanej domeny, ale prócz tego ma kilka innych możliwości:

  • Resolve-DnsName techniczny.net – Sprawdzenie adresu IP dla domeny techniczny.net.
  • Resolve-DnsName techniczny.net -Server 208.67.220.220 – Identyczne zachowanie jak w powyższym przykladzie, ale odpytany bedzie serwer 208.67.220.220 (OpenDNS).
  • Resolve-DnsName techniczny.net -Server 208.67.220.220 -Type NS – Oprócz odpytania konkretnego serwera DNS wyświetlone zostaną wyłącznie rekordy NS.

Niektórzy mogą zastanawiać się po co mieliby się uczyć nowych komend PowerShella, o niekiedy absurdalnie skomplikowanej składni, robiących to samo, a czasami mniej od tych dostępnych z poziomu konsoli. W rzeczywistości jednak nazewnictwo poszczególnych komend i ich parametry są dużo lepiej przygotowane, a używając klawisza tabulacji do podpowiadania konkretne polecenia można wpisać i wywołać bardzo szybko. Ponadto PowerShell pokazuje pazur przy pracy ze skryptami w których dostępnych jest wiele bajerów, a przy tym składnia jest nieco przejrzystsza niż w plikach wsadowych czy bashu.