Good bye netsh – cz.2 NetTCPIP

W dzisiejszej odsłonie analogicznie jak poprzednio będziemy przerabiać kolejny moduł PowerShell’a dostępny w nowym wydaniu Windows Server. Ostatnio zajmowaliśmy się konfiguracją samych interfejsów sieciowych, natomiast teraz pokażę jak przeprowadzić konfigurację TCPIP.

Jak sama nazwa wskazuje do konfiguracji TCPIP wykorzystujemy moduł NetTCPIP. Zanim jednak przejdziemy do zmiany konfiguracji sprawdźmy jaką posiadamy obecną. Do tego celu został stworzony cmdlet Get-NetIPConfiguration, a najlepiej go użyć z parametrem Detailed:

Get-NetIPConfiguration –Detailed

Wynik tego cmdletu zbliżony jest do starego narzędzia linii komend jakim jest ipconfig lub starego, dobre netsh:

netsh int ip show config

Z tym iż pamiętajmy, że PowerShell zawsze zwraca nam obiekt – nie tekst. Dlatego jeżeli chcemy pozyskać choćby najdrobniejszy składnik zwracanych informacji to po prostu się odwołujemy do odpowiedniego atrybutu obiektu. W przypadku netsh czy ipconfig konieczne było by wyłuskiwanie informacji ze zwróconego ciągu znaków.

Wróćmy jednak do naszego przykładu, jak możemy zaobserwować posiadamy dwa interfejsy, z czego jeden z nich jest skonfigurowany z podaniem statycznego adresu IP, natomiast drugi nie posiada ani statycznie ani dynamicznie przydzielonego adresu IP.

Nadajmy więc dla tego interfejsu nowy adres IP.

New-NetIPAddress –InterfaceIndex 22 –IPAddress 10.10.12.15 –PrefixLength 24

Tutaj, rzecz o której już wcześniej wspominałem, I która najbardziej przypadła mi do gustu, ale nie narzucam nic – to tylko moja opinia. Mianowicie posługiwanie się indeksem interfejsu zamiast nazwą połączenia. Jest to wygodniejsze niż ciągłe wpisywanie „Local Area Connection”, choć w przypadku Windows Server 2012 to już samo „Ethernet”. Mimo wszystko InterfaceIndex jest poprostu szybszy i dla mnie łatwiejszy w użyciu.

Zmieniony jest również sposób określania maski podsieci. Netsh uwględniał maskę chyba w najbardziej znanej formie np. 255.255.255.0, natomiast w obecnym module PowerShella posługujemy się prefiksem, czyli w naszym przypadku będzie to długość 24 bitów dla maski. Dla niewtajemniczonych polecam artykuł TechNetu odnośnie przeliczania maski podsieci.

Oczywiście jeżeli chcemy nadać adres bramy domyślnej to wykorzystujemy parametr DefaultGatway, jednakże do tego tematu wrócimy później.

W przypadku gdy chcemy nadać kolejny adres dla danego interfejsu, nie ma problemy tworzymy nową instancję konfiguracji.

New-NetIPAddress –InterfaceIndex 22 –IPAddress 10.10.12.16 –PrefixLength 24

I jak widzimy nasz interfejs posiada skonfigurowane dwa statyczne adresy IP.

Analogicznie wykonujemy modyfikację konfiguracji:

Set-NetIPAddress –IPAddress 10.10.12.16 – PreferredLifeTime (New-TimeSpan –Days 1)

Z tym iż tutaj już nie musimy wskazywać interfejsu gdyż odwołujemy się do konkretnej instancji konfiguracji adresu IP. Jednakże zmiana samego adresu za pośrednictwem PowerShella, wiąże się z utworzeniem nowej instancji, czyli jak już pokazałem New-NetIPAddress. Jednocześnie z uzunięciem starej – analogicznie Remove-NetIPAddress:

Remove-NetIPAddress –IPAddress 10.10.12.15

Wróćmy teraz do tematu bramy domyślnej. Problem ten możemy rozwiązać na dwa sposoby, albo podczas nadawania statycznego adresu IP jak już wcześniej wspomniałem. Albo wykorzystując do tego celu odpowiednie cmdlety, m.in.:

Get-NetRoute

Jak widzimy sam cmdlet działa w zbliżony sposób do polecenia route print, czyli zwraca nam tablicę routingu danej maszyny. Jest tutaj również uwzględniona brama domyślna, czyli ta pozycja z wartością NextHop ustawioną na 10.10.10.1. Spróbujmy zatem ją zmienić – można się już domyślić jak:

Remove-NetRoute -DestinationPrefix 0.0.0.0/0

Czyli usuwamy starą instację i tworzymy nową:

New-NetRoute -DestinationPrefix 0.0.0.0/0 -NextHop 10.10.12.1 -InterfaceIndex 22

Jak widzimy nic trudnego.

Dla ciekawostki stara wersja:

route delete 0.0.0.0
route add 0.0.0.0 10.10.12.1

Ostatnim elementem moduły NetTCPIP na jaki zwróciłbym uwagę to cmdlet:

Get-NetTCPConnection

Czyli sprawdzanie stanu aktywnych połączeń oraz nasłuchiwanych portów. Można powiedzieć, skądś to znamy? A i owszem – netstat.

Źródła:
http://technet.microsoft.com/en-us/library/hh826123.aspx
http://technet.microsoft.com/en-us/library/cc958832.aspx

Dodaj komentarz