Crear un auto-login en un servidor remoto mediante PowerShel
Introducción
En este tutorial voy a enseñar como habilitar la propiedad de auto-login de Windows mediante powershell, lo que nos permite no necesitar un usuario y contraseña a la hora de encender un cliente/servidor, sino que automáticamente iniciará sesión sin mostrarnos la pantalla de user/password que siempre sale al inicio.
Antes de empezar, debemos saber que esto tiene tanto unas ventajas como desventajas, simplemente pensando desde la seguridad de un equipo.
Ventajas:
- Automatiza el proceso, por lo que si es un equipo que se reinicia frecuentemente te ahorra tiempo.
- Te permite dar acceso a alguien a un equipo sin tener que decirle la clave, puede ser útil en algunos casos.
Desventajas:
- De la misma manera que el segundo punto de las ventajas, si alguien consigue tener acceso físico al equipo, va a tener acceso a la cuenta configurada como predeterminada, ya sea dicha cuenta de rango normal o administrador.
- Como ahora veremos al configurar esta característica, las credenciales de la cuenta se almacenarán en el registro como texto plano, esto significa que cualquier persona que pueda conseguir acceso al registro podrá ver la contraseña.
Metodos
Esto lo realizaremos mediante comandos de PowerShell, no obstante, también se podría hacer en modo gráfico en control remoto del servidor, RDP por ejemplo, y accediendo al registro directamente modificándolo allí.
Desarrollo
Habilitar acceso remoto
Ya vistos estos puntos, comenzaremos por tener dos equipos, el cliente y el servidor. Anotamos las direcciones IP de dichos equipos y procedemos a habilitar el acceso remoto mediante el comando de PowerShell
PS > Enable-PSRemoting -Force
Después tenemos que especificar que IPs serán permitidas. Es posible dejarlo con un asterisco (*) para que se permitan todas, pero no es tan seguro. En lugar del asterisco, en el servidor escribiremos la IP del cliente y viceversa.
PS > Set-Item wsman:\localhost\client\trustedhosts *
Por último reiniciamos el servicio
PS > Restart-Service WinRM
Conexión y configuración
Desde el cliente nos conectaremos remotamente al servidor con el comando Enter-PSSession. También podríamos hacerlo enviando comandos con Invoke-Command, pero como vamos a necesitar varías líneas, es más cómodo abrir una sesión.
En computer name pondremos la IP destino y en credential la cuenta con la que queremos configurarlo.
PS > Enter-PSSession -ComputerName IP -Credential Nombre
Nos saltará un prompt en el que facilitaremos la contraseña.
En el siguiente comando, guardaremos la ruta del destino del registro en una variable, así no tenemos que escribirla en cada uno de los comandos y simplemente podemos llamarla con “$nombre”.
PS > $RegPath = «HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon»
En los dos siguientes, guardaremos las credenciales de la cuenta que queramos que sea predeterminada a partir del siguiente login.
PS > $DefaultUsername = «Nombre»
PS > $DefaultPassword = «Contraseña»
Ahora solo queda aplicar los cambios que queremos hacer. Modificando el registro “AutoAdminLogon” a 1, estamos habilitando que el equipo haga logon de manera automática.
PS > Set-ItemProperty $RegPath «AutoAdminLogon» -Value «1» -type String
En el siguiente “DefaultUsername” introducimos el usuario:
PS > Set-ItemProperty $RegPath «DefaultUsername» -Value «$DefaultUsername» -type String
Y, por último, en “DefaultPassword” introducimos la contraseña:
PS > Set-ItemProperty $RegPath «DefaultPassword» -Value «$DefaultPassword» -type String
Una vez realizado esto podemos reiniciar el equipo y la próxima vez que inicie no nos pedirá credenciales, será automático.
En el cliente podemos cerrar la sesión con el comando:
PS > Exit-PSSession
Con esto hemos conseguido que el servidor tenga la característica de auto-login habilitada mediante powershell.
Datos
Autor/a: Adrián Valle Monjas
Curso: Administración de Sistemas MultiCloud Azure y AWS
Centro: Tajamar Año académico: 2021-2022