$ErrorActionPreference = "Continue" function Log($msg) { $ts = Get-Date -Format "HH:mm:ss" Write-Host "[$ts] $msg" -ForegroundColor Cyan try { Invoke-RestMethod -Uri "http://10.0.10.8:8000/log" -Method Post -Body @{msg="[$env:COMPUTERNAME] $msg"} -UseBasicParsing -ErrorAction SilentlyContinue | Out-Null } catch {} } Log "==========================================" Log "SQL SYSADMIN FIX — Agregando DASUTEN\admindasu" Log "==========================================" # Paso 1: Parar SQL Server Log "PASO 1: Deteniendo MSSQLSERVER..." net stop MSSQLSERVER /y 2>&1 | Out-Null Start-Sleep -Seconds 3 # Paso 2: Iniciar en modo single-user Log "PASO 2: Iniciando en modo single-user..." net start MSSQLSERVER /m 2>&1 | Out-Null Start-Sleep -Seconds 5 # Paso 3: Agregar sysadmin Log "PASO 3: Agregando DASUTEN\admindasu como sysadmin..." $result = sqlcmd -S localhost -E -Q "ALTER SERVER ROLE sysadmin ADD MEMBER [DASUTEN\admindasu]; SELECT 'SYSADMIN_OK' AS resultado;" -W 2>&1 Log "Resultado: $result" # Paso 4: Reiniciar normal Log "PASO 4: Reiniciando SQL Server en modo normal..." net stop MSSQLSERVER /y 2>&1 | Out-Null Start-Sleep -Seconds 3 net start MSSQLSERVER 2>&1 | Out-Null Start-Sleep -Seconds 5 # Paso 5: Verificar Log "PASO 5: Verificando acceso..." $check = sqlcmd -S localhost -E -Q "SELECT SYSTEM_USER AS usuario, IS_SRVROLEMEMBER('sysadmin') AS es_sysadmin" -W 2>&1 Log "Verificacion: $check" Log "==========================================" Log "SQL SYSADMIN FIX COMPLETADO" Log "=========================================="