Share via


101 COSAS QUE PUEDES HACER CON CLOUD OS – Cosa 39

COSA #39: WINDOWS POWERSHELL WEB ACCESS

Hola amigos, hoy les voy a hablar de una funcionalidad de Server 2012 denominada Powershell Web Access, a través de la cual puedo ingresar a la consola de Powershell de un servidor Windows Server 2012 R2 usando un navegador.

Lo anterior me permite tener administración de mi máquina usando toda la potencia de Powershell. Es necesario usar un certificado digital para que la conexión se haga de manera segura por el protocolo https (puerto 443 TCP).

Power Shell Web Access es una característica que se debe agregar a la máquina. Es posible agregarla a través de Server Manager pero aquí lo vamos a hacer a través de Powershell, para ello podemos usar el CMDLET Get-WindowsFeature, el cual me permite consultar por una parte qué roles y características se encuentran instalados en la máquina y por otra parte cuáles están disponibles para su instalación.

Si ejecuto el comando Get-WindowsFeature obtengo una salida muy larga, por lo tanto sugiero agregar | more al final del comando, es decir:

Get-WindowsFeature | more

El resultado es similar al de la siguiente imagen:

Powershell web access-01

Si quiero buscar específicamente los roles o características relacionados con Powershell puedo usar

Get-WindowsFeature *power* y de este modo hago un filtro por esta característica:

Powershell web access-02

Y como para estar seguros del nombre completo de la característica uso el comando Get-WindowsFeature *power* | Format-Table Name

Powershell web access-03

Ahora que sé que la característica se llama WindowsPowerShellWebAccess uso el siguiente comando para instalarla:

Install-WindowsFeature WindowsPowerShellWebAccess y el proceso arranca

Powershell web access-04

Una vez finalice el proceso veré algo similar a lo que se muestra en la siguiente imagen. Es un mensaje del tipo “warning” indicando que las actualizaciones automáticas no están configuradas en la máquina. Es algo que se debe configurar pero para efectos de lo que estamos haciendo podemos continuar

Powershell web access-05

Bien, ya tenemos la característica instalada ahora debemos configurarla usando el comando Install-PswaWebApplication –useTestCertificate

Observen el mensaje de advertencia en el cual se indica que para un ambiente de producción este certificado de prueba no se debe usar y que dicho certificado expirará en 90 días. Si quiero usar Powershell Web Access en producción debo adquirir un certificado digital en una entidad certificadora.

Powershell web access-06

Cuando finalice el proceso veré algo similar a lo siguiente:

Powershell web access-07

En esta máquina (Server01) se instaló Powershell Web Access, de modo que requiere un servidor web como el IIS –el cual ya se instaló dentro de los prerrequisitos del Powershell Web Access- y también tener abiertos los puertos de HTTP (80 TCP) y HTTPS (443 TCP). Para vericar que ello es cierto debemos usar comando netstat –na | findstr.exe :80  y netstat –na | findstr.exe :443 respectivamente

Powershell web access-08

Observen que los puertos ya están abiertos. También es importante hacer notar que para que todo funcione bien se deben abrir los puertos 80 y 443 en el firewall de Server01

En este momento estamos casi listos para probar el acceso a Powershell vía web. Ahora nos falta configurar las autorizaciones necesarias para que se pueda usar el servicio. Si escribimos

Get-PswaAuthorizationRule

Podemos consultar el status de esas autorizaciones con este comando, pero en este caso como se configuró el servicio por primera vez aún no hay ninguna autorización y por ello la salida del comando no es ninguna.

Para agregar un autorización podemos ejecutar el siguiente comando:

Add-PswaAuthorizationRule –ComputerName * -UserName * -ConfigurationName *

Es importante hacer notar que en este ejemplo estamos dando permiso a cualquier usuario y cualquier computador pero se debe restringir más el acceso en un ambiente de producción para minimizar los riesgos de seguridad

Powershell web access-09

Yo me encuentro en el dominio contoso.com, de modo que las máquinas de este dominio pueden abrir sesiones de Powershell Web Access.

Ahora voy al navegador de la máquina DC01 que es mi controlador de dominio y abro la URL https://Server01.contoso.com/pswa

Powershell web access-10

Como es usual cuando se abre un sitio con un certificado que no es confiable recibo una advertencia del navegador acerca de ello. Selecciono Continue to this website (not recommended).

Veo la ventana de Powershell Web Acess:

Powershell web access-11

Voy a ingresar a Server01 con el usuario administrator del dominio contoso:

Powershell web access-12

Presiono SignIn

Y listo, este es el ambiente de Powershell Web Access:

Powershell web access-13

Verifico que estoy en la máquina Server01 usando el comando hostname –Que no es de Powershell-

Powershell web access-14

Ahora puedo ejecutar diversos comandos, como por ejemplo Get-Process para ver los procesos que se están ejecutando en la máquina:

Powershell web access-15

Algo muy útil e interesante es que puedo salvar mi sesión y hacer que sea persistente, es decir que puedo crear variables y dichas variables se van a mantener en mi sesión. Puedo salvar la sesión y posteriormente volver y veré que mis variables se mantienen.

Aquí definí 2 variables: Variable1 y Variable2 cuyos respectivos valores son “Esta es una prueba” y “Colombia”

Powershell web access-16

Ahora consulto el contenido de las variables usando $Variable1 y $Variable2

Powershell web access-17

Voy a desconectarme de la sesión pero antes la guardo usando el botón Save. Una vez salve la sesión el sistema me hace logoff

Powershell web access-18

Si vuelvo a abrir https://Server01.contoso.com/pswa  en un explorador y hago login

Powershell web access-19

Observen que la sesión que salvé ahí se encuentra y la puedo volver a usar, selecciono PSWA1 y si le pregunto por el contenido de las variables Variable1 y Variable2 usando $Variable1 y $Variable2 veré su contenido:

Powershell web access-21

¿Qué tal la funcionalidad? ¿Buenísima cierto?. Ahora cuando estén por fuera y necesiten revisar algo en una máquina server 2012 R2 pueden usar Powershell Web Access de una manera fácil y segura.

No olviden que si quieren saber más de la nube de Microsoft pueden ingresar Aquí y si quieren descargar y empezar a probar Windows Server 2012 R2 hagan clic Aquí

¡Nos vemos en la próxima!