martes, 28 de octubre de 2014

PowerShell para novatos III, configuracion de caracteristicas



El siguiente paso sería ver que características tenemos instaladas para si procede instalar otras. Lo mas habitual en un servidor es agregarle características como Hyper-V, un servidor WSUS o un IIS.
Lo primero que tenemos que hacer es un listado de características instaladas en el equipo. Para ello lanzamos el siguiente comando:

-          Get-WindowsFeature

Nos mostrará un listado extenso de los que hay o no instalado en el equipo. Es fácil de ver, la característica no instalada se mostrará “[ ]” y la instalada “[X]”. Puede que busquemos algo en concreto, por ejemplo Hyper-V.  Para ello si ejecutamos este comando:

-          Get-WindowsFeature Hyper-V

-          Get-WindowsFeature Hyper-V* (mejor esta opción porque muestra todo lo relacionado)

Si la característica que buscamos está disponible (como es mi caso) tan solo tendremos que activala

-          Install-WindowsFeature –name Hyper-V
-      Install-WindowsFeature Hyper-V

Y para quitarlas?

Remove-WindowsFeature name -restart


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

PowerShell para novatos I, empezando



Hace tiempo que vengo escuchando que “PowerShell” es muy potente y que con las nuevas versiones ya se puede hacer prácticamente el 99% de las acciones que se realizan en entorno grafico de Windows, así que me dije… voy a ponerme un reto, voy a intentar realizar todo lo que hago en un servidor habitualmente (por lo menos las operaciones básicas). El reto comenzaría desde el principio e iré complicándolo poco a poco.

Bueno, todo comienza desde 0… Vamos a instalar un servidor Windows Server 2012R2 en su versión Core. Esta versión nos permite instalar el sistema sin GUI. No voy a entrar en cómo se instala un Windows Server, porque si bien antiguamente si hubiera requerido una entrada completa en el blog, a día de hoy es un juego de niños y pocos sistemas son tan fáciles de instalar. Únicamente prestaremos atención a instalar la versión “core” sin GUI. 

Una vez arrancada por primera vez la maquina veremos una consola de “CMD”, raro no? Yo me esperaba una de Power Shell no? Que hace un “CMD” aquí? Sinceramente no me parece bien… yo quería un PowerShell!!!! Y ahora como lo saco? No hay inicio!! LOL
Bueno nuestra primera operación será arrancar el Powershell… que para los nuevos en esto a diferencia del famoso “CMD” tiene el fondo de color azul. Para ello tan solo tenemos que llamarlo… y escribir en el CMD “powershell”.

TIP: Por si hay alguno que como yo… cierra el “cmd” o incluso la ventana de “powershell”, indicar que lo podremos recuperar pulsando “control+alt+supr”  y en el menú ejecutar  “cmd.exe”.
Ahí lo tenemos el Powershell. Se puede diferenciar o bien por que el fondo es de color azul, o porque delante de la raíz aparecen las siglas “PS”.