# 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