Files
dtic-DIIAA/tools/adn/sondas/payloads/sql_sysadmin_fix.ps1
T

43 lines
1.5 KiB
PowerShell

$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 "=========================================="