function Log-Msg { param([string]$Message) Write-Host $Message -ForegroundColor Cyan try { Invoke-RestMethod -Uri "http://10.0.10.8:8000/log" -Method Post -Body @{msg=$Message} -UseBasicParsing -ErrorAction SilentlyContinue | Out-Null } catch {} } Log-Msg "==========================================================" Log-Msg "INICIANDO VERIFICACION DE SQL SERVER" Log-Msg "==========================================================" try { $svc = Get-Service -Name "MSSQLSERVER" Log-Msg "Servicio MSSQLSERVER detectado. Estado: $($svc.Status)" if ($svc.Status -eq 'Running') { Log-Msg "Ejecutando Test de Conexion Local via sqlcmd..." $sqlResult = Invoke-Command -ScriptBlock { sqlcmd -Q "SELECT @@VERSION;" } Log-Msg "Resultado SQLCMD: $sqlResult" } else { Log-Msg "Iniciando servicio MSSQLSERVER..." Start-Service -Name "MSSQLSERVER" -ErrorAction Stop $svc.Refresh() Log-Msg "Nuevo Estado: $($svc.Status)" } } catch { Log-Msg "Fallo al verificar el servicio: $_" } Log-Msg "==========================================================" Log-Msg "INSTALANDO Y HABILITANDO OPENSSH SERVER NATIVO" Log-Msg "==========================================================" try { $sshCheck = Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*' if ($sshCheck.State -ne 'Installed') { Log-Msg "Instalando caracteristica OpenSSH.Server..." Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 | Out-Null } Log-Msg "Configurando servicio sshd en Inicio Automatico..." Set-Service -Name sshd -StartupType 'Automatic' Start-Service sshd -ErrorAction SilentlyContinue if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue)) { New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 | Out-Null } Log-Msg "OpenSSH Server instalado y corriendo en el puerto 22." } catch { Log-Msg "Fallo al instalar SSH: $_" } Log-Msg "==========================================================" Log-Msg "OPERACION COMPLETADA. LA IA AHORA TOMARA CONTROL VIA SSH DIRECTAMENTE." Log-Msg "==========================================================" exit