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:
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:
Y como para estar seguros del nombre completo de la característica uso el comando Get-WindowsFeature *power* | Format-Table Name
Ahora que sé que la característica se llama WindowsPowerShellWebAccess uso el siguiente comando para instalarla:
Install-WindowsFeature WindowsPowerShellWebAccess y el proceso arranca
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
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.
Cuando finalice el proceso veré algo similar a lo siguiente:
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
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
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
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:
Voy a ingresar a Server01 con el usuario administrator del dominio contoso:
Presiono SignIn
Y listo, este es el ambiente de Powershell Web Access:
Verifico que estoy en la máquina Server01 usando el comando hostname –Que no es de Powershell-
Ahora puedo ejecutar diversos comandos, como por ejemplo Get-Process para ver los procesos que se están ejecutando en la máquina:
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”
Ahora consulto el contenido de las variables usando $Variable1 y $Variable2
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
Si vuelvo a abrir https://Server01.contoso.com/pswa en un explorador y hago login…
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:
¿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!