78 lines
3.4 KiB
PowerShell
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
|