20-sep: [scripts] Autologon - scripts verificacion/correccion + doc actualizada
This commit is contained in:
77
scripts/fix_autologon.ps1
Normal file
77
scripts/fix_autologon.ps1
Normal file
@@ -0,0 +1,77 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user