lunes, 27 de octubre de 2014

PowerShell para novatos II, configuracion de red



Bueno, ya tenemos la pantallita azul de “PS”, ¿y ahora qué?
Lo bueno es que muchos comandos que metíamos en “CMD” funcionan… y uno que usamos hasta desgastarlo, “IPCONFIG” funciona!!! Si, si queréis saber cuál es vuestra configuración de red podéis lanzar un “IPCONFIG” de toda la vida y listo… aunque esto no es muy interesante si queremos familiarizarnos con PS no?

En PowerShell los comandos son compuestos. Empiezan con un verbo de lo que queremos hacer…  en ingles claro!, un guion y un sustantivo. El comando fácil/seguro es el que empieza por “GET” ya que nos muestra información sobre algo… 

Por ejemplo y para este caso que nos lleva podemos obtener información de los adaptadores…. Con

-          Get-Netadapter

Y… que es eso! Donde está la información!!! Tranquilos, esto ha cambiado un poco… Lo que nos muestra es la información de adaptadores de red instalados en nuestra máquina.
Si queremos información más concreta, tendremos que tomar nota por ejemplo del campo “name” y lanzamos el comando de nuevo para obtener la información de una sola tarjeta:

-          Get-Netadapter –name Ethernet 1

Vale, mismo resultado pero en una línea, no nos preocupemos… ahora lanzaremos otro comando y lo uniremos con lo que se conoce como “pipe”. Un “pipe” es, explicado en breve (y puede que poco preciso) un enlace entre comandos. La traducción literal es “tubería” básicamente es pasarle la salida de un comando a otro… El símbolo que se utiliza es este “|”.
Vamos a poner un ejemplo:

-          Get-Netadapter –name Ethernet 1 | Format-List

Bueno, esto nos da más info, pero sigue siendo insuficiente, donde está la ip?? Vale, vale, pues pon “*”

-          Get-Netadapter –name Ethernet 1 | Format-list *


Uff nos hemos pasado! LOL. Ahí tenemos toda la info del adaptador de red, demasiada no? Es más, no aparece la IP… No, estoy tomando el pelo a nadie, solo quiero familiarizarnos con PowerShell recuerdas?. Imagina que ahora solo quieres uno de los muchos valores que se muestran…. Por ejemplo “linkspeed”, pues nada, lo ponemos

-          Get-Netadapter –name Ehternet 1 | Format-list linkspeed
-          Get-Netadapter –name Ethernet 1 | Format-list linkspeed,virtual

Que pesado, pero si yo lo que quiero es la IP de la tarjeta!!! Mira que das vueltas!!! LOL
Vale, el comando es

                Get-NetIPAddress

Hombre si solo tienes una tarjeta de red, con esto todo quedaría resuelto pero… si tienes varias como yo lo que te muestra en pantalla puede ser una locura! ¿¿Cómo sé que tarjeta es la que quiero?? Ahhh para eso lo que hemos hecho antes!!! Primero vemos los adaptadores que tenemos:

-          Get-NetAdapter

Buscamos el que queremos y tomamos nota de su “ifIndex”, que es su número de identificación, por ejemplo el “14” o el “15”
TIP: Hay uno que no aparece aquí, y es el “1”, dedicado al bucle loopback o lo que todos conocemos como “127.0.0.1” que utilizamos para hacer pruebas.
Después será tan sencillo como hacer un:

                - Get-NetIPAddress -interfaceindex 15

Y ahí lo tenemos! La información completa de nuestro interfaz de red con su dirección de red y… espera un momento, y la máscara de red?? Tranquilos! Está en el aparatado “PrefixLength” y si no sabes lo que es /24 o /16 o /8… mejor lanza un “IPCONFIG” o estudia un poco de redes LOL.
Bueno, ahora que nos hemos reído y aprendido un poco, lanza este comando y vida resuelta:

                - Get-NetIPConfiguration

Ahí tendrás todo, IP,GW y DNS desde PowerShell, pudiendo con lo aprendido discriminar por adaptador.


Que bonito, ¿y como pongo ahora la IP? Bueno, ahora , con toda la información que tenemos se reduce a un simple comando:

-          New-NetIPAddress –InterfaceIndex “15” –IPAddress  “192.0.2.2” –PrefixLength “24” –DefaultGateway “192.0.2.1”
 
Muy bien, pero veo que me falta algo… DNS! Si claro! Pero esto va en un commando aparte, no se puede poner en el mismo.
 
-          Set-DNSClientServerAddress –InterfaceIndex “15” -ServerAddresses “192.0.2.4”
-          Set-DNSClientServerAddress –InterfaceIndex “15” -ServerAddresses “192.0.2.4,192.0.2.5”
 
Vale! La he liado y ahora quiero volver otra vez a tener todo como al principio y empezar de nuevo… No pasa nada, dos comandos:
 
-          Set-DnsClientServerAddress –InterfaceIndex “15”–ResetServerAddresses
-          Remove-NetIPAddress -InterfaceIndex 15

Que bonito, ¿y como pongo ahora la IP? Bueno, ahora , con toda la información que tenemos se reduce a un simple comando:

-          New-NetIPAddress –InterfaceIndex “15” –IPAddress  “192.0.2.2” –PrefixLength “24” –DefaultGateway “192.0.2.1”
 
Muy bien, pero veo que me falta algo… DNS! Si claro! Pero esto va en un commando aparte, no se puede poner en el mismo.
 
-          Set-DNSClientServerAddress –InterfaceIndex “15” -ServerAddresses “192.0.2.4”
-          Set-DNSClientServerAddress –InterfaceIndex “15” -ServerAddresses “192.0.2.4,192.0.2.5”
 
Vale! La he liado y ahora quiero volver otra vez a tener todo como al principio y empezar de nuevo… No pasa nada, dos comandos:
 
-          Set-DnsClientServerAddress –InterfaceIndex “15”–ResetServerAddresses
-          Remove-NetIPAddress -InterfaceIndex 15

1 comentario: