Windows PowerShell es una interfaz de consola (CLI) con posibilidad de escritura y unión de comandos por medio de instrucciones (scripts en inglés). Es mucho más rica e interactiva que sus predecesores, desde DOS hasta Windows 7. Esta interfaz de consola está diseñada para su uso por parte de administradores de sistemas, con el propósito de automatizar tareas o realizarlas de forma más controlada.

 

 

Conectar dos Windows Server con winrm y grupos de trabajo

Vamos a conectar dos windows server desde la terminal, en mi caso las maquinas se llamaran:

  • ServerCA – Cliente
  • Core1 – Administrador

Podemos ver los distintas opciones que nos permite «winrm» ejecutamos el siguiente comando winrm -?, para conectarnos a cualquier maquina vamos a utilizar winrs del cual podremos obtener ayuda de la siguiente manera winrs -?

Cambiar grupo de trabajo

Primero agregamos ambos servidores a un mismo grupo de trabajo, para ello vamos a cambiarlo desde la powershell una vez dentro ejecutamos sconfig y modificamos el grupo de trabajo:

Realizamos el mismo proceso en las dos maquinas.

Establecer relación entre los dos servidores

Ahora añadimos la confianza en cada una de las maquinas:

winrm set winrm/config/client ‘@{TrustedHosts="CORE"}’
winrm set winrm/config/client ‘@{TrustedHosts="SERVERCA"}’

Conexión remotamente al core

Te puedes conectar de dos formas diferentes:

#Primera opcion, sintaxis

Enter-PSSessions [Nombre_Maquina_ACualNosConectamos]

#Ejemplo 

Enter-PSSessions CORE

#Salir

Exit-PSSessions CORE

#Sintaxis

winrs -r:http://[Nombre_Maquina o IP]:5985 -u:[Usuario] "[Comando]".

#Ejemplo

winrs -r:http://CORE:5985 -u:Administrator "powershell".

Para comprobarlo creamos una carpeta en C:\ que se llame «prueba»:

Y desde el administrador nos conectamos a la maquina remotamente y hacemos un dir:

Conectar con winrm y https

En el anterior paso hemos realizado una conexxion por http, y ahora vamos a realizarla un poco mas seguro y vamos a agregar un certificado y una conexion por https

Primero desactivamos el firewall desde la powershell PS WSMan:\localhost\Listener> New-NetFirewallRule -DisplayName "Windows Remote Management (HTTPS-In)" -Name "Windows Remote Management (HTTPS-In)" -Profile Any -LocalPort 5986 -Protocol TCP:

A continuacion desde SERVERCA vamos a crear un certificado autofirmado, para ello ejecutamos el siguiente comando, desde la powershell:

$cert = New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -DnsName "10.0.0.7"

Creamos el directorio de los certificados

Exportamos el certificado

Nos dirigimos a la carpeta creada mkdir certificados y lo exportamos:

Export-Certificate -Cert $cert -FilePath cert_core

Creamos listener y añadimos certificado creado

El ultimo paso en nuestro core sera crear un nuevo listener para el nuevo escenario

New-Item -Path WSMan:\Localhost\Listener -Transport HTTPS -Address * -CertificateThumbPrint $cert.Thumbprint -Force

Ahora eliminamos los anteriores listener que se encuentran en cd WSMan:\localhost\listener una vez ahi eliminamos los listener anteriores Remove-Item [Nombre_Item] , tanto en la maquina SERVERCA, como en CORE

Info! Si tabulamos nos saldrá los diferentes listener que existen.

Cuidado! Es importante tener exportardo el certificado y tener definido $cert, si no nos mostrar un error.

Instalamos característica autoridad certificadora

Ahora desde la powershell vamos a instalar en la maquina CORE, dicha característica Add-WindowsFeature ADCS-Cert-Authority:

Conectarnos a disco en ServerCA desde CORE

Ahora vamos a conectarnos a la unidad raiz de CORE, con el siguiente comando:

New-PSDrive -Name H -PSProvider FileSystem -Root \\10.0.0.7\c$ -Credential Administrator

Importar el certificado desde linea de comandos

Para ello ejecutamos el siguiente comando

Import-Certificate -FilePath H:\Users\Administrator\certificados\cert_core -CertStoreLocation "Cert:\LocalMachine\Root"

Conexion a SERVERCA

Ahora nos conectamos a SERVERCA con el siguiente comando

Enter-PSSession -ComputerName 10.0.0.7 -UseSSL -Credential Administrator

Configuración y administración del servicio WinRM, en entorno de Active Directory, para administración remota de equipos fuera del dominio, HTTPS.

Configurar controlador de dominio ServerEnterprise

Primero configuramos nuestro DNS primero y establecemos 127.0.0.1

Vamos a promover como controlador de dominio a un segundo Server el cual vamos a instalar los roles de active directory, para ello nos dirigimos en la parte superior de la pantalla y hacemos click sobre Administar - Agregar roles y caracteristicas

Pulsamos siguente hasta encontrar la siguiente pantalla en la cual vamos a seleccionar Active directory domain server:

Seguimos con las opciones por defecto hasta llegar a la siguiente ventana y instalamos:

Una vez termine la instalación nos solicitara promover el servidor a controlador de dominio, por lo tanto tendremos que especificar un nombre de dominio para las maquinas:

Y le asignamos un nombre de dominio y una contraseña:

Siguiendo con la instalación nos va a solicitar el nombre del dominio “NetBIOS”:

Continuamos con las opciones por defecto y ya podemos promoverlo:

Comprobar y configurar listener https

Accedemos a una powershell y comprobamos los listener que se encuentran funcionando dir WSMan:\localhost\listener

Regla de cortafuegos

Ahora creamos la regla de cortafuegos

New-NetFirewallRule -DisplayName "Windows Remote Management (HTTPS-In)" -Name "Windows Remote Management (HTTPS-In)" -Profile Any -LocalPort 5986 -Protocol TCP

Creamos certificado

Y creamos el certificado en el controlador de dominio

$cert = New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -DnsName "10.0.0.19"

Creación directorio y exportar certificado

Una vez creamos el certificado vamos a crear el directorio mkdir certificados y lo exportamos

Export-Certificate -Cert $cert -FilePath cert_core

Creacion de listener

Creamos el listener

New-Item -Path WSMan:\Localhost\Listener -Transport HTTPS -Address * -CertificateThumbPrint $cert.Thumbprint -Force

Mapeamos la unidad en CORE

En CODE, creamos la unidad n que conecta a Enterprise, para ello ejecutamos

New-PSDrive -Name N -PSProvider FileSystem -Root \\10.0.0.19\c$ -Credential Administrator

Importamos el certificado

E importamos el certificado

Import-Certificate -FilePath N:\Users\Administrator\certificados\cert_core -CertStoreLocation "Cert:\LocalMachine\Root"

Conectamos remotamente al controlador de dominio

Y por último vamos a comprobar la conexion al controlador de dominio

Enter-PSSession -ComputerName 10.0.0.19 -UseSSL -Credential Administrator

Configuración y administración del servicio WinRM, en entorno de Active Directory, mediante GPO.

Ahora nos dirigimos a nuestra maquiana CORE la cual vamos a añadir al dominio:

Añadir CORE a controlador de dominio

Para añadir un cliente al dominio ejecutaremos sconfig:

Crear GPO (Unidad Organizativa)

Primero nos dirigimos a Herramientas - Usuarios y equipos de Active Directory y agregamos una unidad organizativa, en el dominio pulsamos boton derecho Nuevo - Unidad organizativa a la cual vamos a llamar «powershell»:

Dentro de esa unidad organizativa vamos a crear otra que se llame core en la cual vamos a meter la maquina que acabamos de añadir al dominio:

Y creamos la GPO, para ello nos dirigimos a Herramientas - Administracion de directivas de grupo, desplegamos el bosque y nos dirigimos a Dominios - Enterprise.local - powershell - core:

Editar GPO

En la gpo creada pulsamos botón derecho y la editamos.

Ahora nos dirigimos a Configuración del equipo - Preferencias - Configuración del Panel de control - Servicios - nuevo - Servicio:

Editamos la directiva cliente WinRM de la GPO

Editamos las diferentes directivas que vienen por defecto en Directivas - Plantillas administrativas - Componentes de Windows - Administración remota - Cliente WinRM para que se queden asi:

Editamos la directiva servicio WinRM de la GPO

Nos dirigimos a Directivas - Plantillas administrativas - Componentes de Windows - Administración remota - Servicio WinRM y habilitamos la directiva Permitir la administración de servidores remotos a través de WinRM:

Comprobar reglas en el cliente

Ahora actualizamos las directivas GPO gpupdate /force:

Y comprobamos las nuevas directivas añadidas:

winrm g winrm/config/client

winrm g winrm/config/service