2024-09-17 00:19:57 -05:00
|
|
|
|
using LANCommander.SDK.Extensions;
|
|
|
|
|
|
using LANCommander.SDK.Helpers;
|
2024-08-05 20:29:12 -05:00
|
|
|
|
using LANCommander.SDK.Models;
|
|
|
|
|
|
using LANCommander.SDK.PowerShell;
|
|
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.IO;
|
|
|
|
|
|
using System.Linq;
|
2025-02-08 23:26:33 -06:00
|
|
|
|
using System.Threading;
|
2024-08-05 20:29:12 -05:00
|
|
|
|
using System.Threading.Tasks;
|
2025-10-06 20:29:34 -05:00
|
|
|
|
using LANCommander.SDK.Abstractions;
|
2025-11-23 20:54:56 -06:00
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
2024-08-05 20:29:12 -05:00
|
|
|
|
|
2024-10-04 23:37:49 -05:00
|
|
|
|
namespace LANCommander.SDK.Services
|
2024-08-05 20:29:12 -05:00
|
|
|
|
{
|
2026-02-10 17:34:35 -06:00
|
|
|
|
public partial class ScriptClient(
|
2025-09-24 20:58:23 -05:00
|
|
|
|
ILogger<ScriptClient> logger,
|
2025-11-23 20:54:56 -06:00
|
|
|
|
IServiceProvider serviceProvider,
|
2025-10-06 20:29:34 -05:00
|
|
|
|
ISettingsProvider settingsProvider,
|
2025-11-26 01:09:52 -06:00
|
|
|
|
PowerShellScriptFactory powerShellScriptFactory,
|
2025-09-24 20:58:23 -05:00
|
|
|
|
IConnectionClient connectionClient)
|
2024-08-05 20:29:12 -05:00
|
|
|
|
{
|
2025-11-26 01:09:52 -06:00
|
|
|
|
public bool Debug { get; set; }
|
2025-11-23 20:54:56 -06:00
|
|
|
|
|
|
|
|
|
|
private async Task<bool> RunScriptExternallyAsync(PowerShellScript script)
|
|
|
|
|
|
{
|
2025-11-26 01:09:52 -06:00
|
|
|
|
var scriptRunners = serviceProvider.GetServices<IScriptInterceptor>();
|
2025-11-23 20:54:56 -06:00
|
|
|
|
|
|
|
|
|
|
foreach (var scriptRunner in scriptRunners)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (await scriptRunner.ExecuteAsync(script))
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
2024-08-05 20:29:12 -05:00
|
|
|
|
}
|
|
|
|
|
|
}
|