diff --git a/action1/sc-runas-user.ps1 b/action1/sc-runas-user.ps1 new file mode 100644 index 0000000..005bc7a --- /dev/null +++ b/action1/sc-runas-user.ps1 @@ -0,0 +1,38 @@ +# ----------------------------------------------------------------- +# Script: SafeCloud - RunAs User (Ruta Final C:\ProgramData\SafeCloud) +# ----------------------------------------------------------------- + +Write-Host "Iniciando ejecución interactiva de: $ScriptToRun" + +# --- 1. Definición de Variables --- +$RutaApp = "C:\ProgramData\SafeCloud" +$RutaLanzadorVBS = Join-Path -Path $RutaApp -ChildPath "sc_launcher.vbs" +$ComandoAEjecutar = (Join-Path -Path $RutaApp -ChildPath "safecloud-run.cmd") + " $ScriptToRun" +$NombreTarea = "A1Tmp" +$StartTime = (Get-Date).AddMinutes(1).ToString('HH:mm') + +# --- 2. Contenido del Archivo VBScript --- +$ContenidoVBS = "CreateObject(`"Wscript.Shell`").Run `"$ComandoAEjecutar`", 0, false" + +# --- 3. Creación del Lanzador VBScript --- +Write-Host "Creando lanzador VBS en $RutaLanzadorVBS..." +try { + Set-Content -Path $RutaLanzadorVBS -Value $ContenidoVBS -Force -ErrorAction Stop +} catch { + Write-Error "ERROR FATAL al escribir el lanzador VBS. Detalles: $_" + exit 1 +} + +# --- 4. Ejecución de 'schtasks' (Método Directo) --- +$ArgumentosCreate = "/create /tn ""$NombreTarea"" /tr ""wscript.exe \""$RutaLanzadorVBS\"""" /sc once /st $StartTime /f /ru INTERACTIVE /rl HIGHEST" +$ArgumentosRun = "/run /tn ""$NombreTarea""" +$ArgumentosDelete = "/delete /tn ""$NombreTarea"" /f" + +Write-Host "Paso 1: Creando tarea..." +Start-Process schtasks.exe -ArgumentList $ArgumentosCreate -Wait -NoNewWindow -ErrorAction Stop +Write-Host "Paso 2: Ejecutando tarea..." +Start-Process schtasks.exe -ArgumentList $ArgumentosRun -Wait -NoNewWindow -ErrorAction Stop +Write-Host "Paso 3: Eliminando tarea..." +Start-Process schtasks.exe -ArgumentList $ArgumentosDelete -Wait -NoNewWindow -ErrorAction Stop + +Write-Host "Comandos 'schtasks' enviados exitosamente." \ No newline at end of file