Files
INFRAESTRUCTURA/scripts/fix_autologon.ps1

78 lines
3.4 KiB
PowerShell

# Script para CORREGIR autologon y que use el usuario ACTUAL
# Ejecutar como ADMINISTRADOR
param(
[Parameter(Mandatory=$false, HelpMessage="Contraseña/PIN de Windows (si no se proporciona, se pide de forma segura)")]
[string]$Password
)
# Verificar que se ejecuta como Admin
$esAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
if (-not $esAdmin) {
Write-Host "[ERROR] Este script debe ejecutarse como Administrador." -ForegroundColor Red
Write-Host "Click derecho → 'Ejecutar como administrador'" -ForegroundColor Yellow
exit 1
}
Write-Host "`n=== CONFIGURACION DE AUTOLOGON CORRECTO ===" -ForegroundColor Cyan
# Detectar usuario actual REAL
$username = $env:USERNAME
$computername = $env:COMPUTERNAME
Write-Host "`nUsuario detectado: $computername\$username" -ForegroundColor White
# Pedir contraseña si no se pasó como parámetro
if (-not $Password) {
Write-Host "`nIntroduce tu contraseña/PIN de Windows:" -ForegroundColor Yellow
$securePassword = Read-Host -AsSecureString
$BSTR = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($securePassword)
$Password = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)
[System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($BSTR)
}
# Mostrar lo que se va a configurar (SIN mostrar la contraseña)
Write-Host "`nSe configurará autologon con:" -ForegroundColor Cyan
Write-Host " AutoAdminLogon: 1" -ForegroundColor White
Write-Host " DefaultUserName: $username" -ForegroundColor White
Write-Host " DefaultDomainName: $computername" -ForegroundColor White
Write-Host " DefaultPassword: [OCULTA]" -ForegroundColor White
Write-Host "`n¿Continuar? (S/N): " -ForegroundColor Yellow -NoNewline
$respuesta = Read-Host
if ($respuesta -ne "S" -and $respuesta -ne "s") {
Write-Host "[CANCELADO] No se realizaron cambios." -ForegroundColor Gray
exit 0
}
# Aplicar configuración
$winlogonPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
try {
Set-ItemProperty -Path $winlogonPath -Name "AutoAdminLogon" -Value "1"
Set-ItemProperty -Path $winlogonPath -Name "DefaultUserName" -Value $username
Set-ItemProperty -Path $winlogonPath -Name "DefaultPassword" -Value $Password
Set-ItemProperty -Path $winlogonPath -Name "DefaultDomainName" -Value $computername # CLAVE: nombre del PC, no USERDOMAIN
Write-Host "`n[OK] Autologon configurado correctamente." -ForegroundColor Green
Write-Host "`nAl reiniciar el PC, Windows entrará automáticamente como:" -ForegroundColor Cyan
Write-Host " $computername\$username" -ForegroundColor White
Write-Host "`nPrueba:" -ForegroundColor Yellow
Write-Host " 1. Reinicia el PC" -ForegroundColor White
Write-Host " 2. Verifica que entra sin pedir contraseña" -ForegroundColor White
Write-Host " 3. Si funciona, prueba encendido remoto desde Telegram" -ForegroundColor White
Write-Host "`nPara verificar la configuración:" -ForegroundColor Yellow
Write-Host " .\check_autologon_status.ps1" -ForegroundColor White
Write-Host "`nPara desactivar autologon:" -ForegroundColor Yellow
Write-Host " .\disable_autologon.ps1" -ForegroundColor White
} catch {
Write-Host "`n[ERROR] No se pudo configurar autologon: $_" -ForegroundColor Red
exit 1
}
Write-Host "`n========================================`n" -ForegroundColor Cyan