diff --git a/Vrh.Log4Pro.MaintenanceConsole/Manager - SQLDataBaseManager.cs b/Vrh.Log4Pro.MaintenanceConsole/Manager - SQLDataBaseManager.cs index bfbe023..72fceb1 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Manager - SQLDataBaseManager.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Manager - SQLDataBaseManager.cs @@ -1541,17 +1541,46 @@ GO finally { sqlserver?.ConnectionContext.SqlConnectionObject.Dispose(); } } - private static void RunEXEOnRemoteComputer(string servername,string username, string password, string exefilename) - { - var processToRun = new[] { exefilename/*"notepad.exe"*/ }; - var connection = new ConnectionOptions(); - connection.Username = username; - connection.Password = password; - var wmiScope = new ManagementScope(String.Format(@"\\{0}\root\cimv2", servername), connection); - var wmiProcess = new ManagementClass(wmiScope, new ManagementPath("Win32_Process"), new ObjectGetOptions()); - wmiProcess.InvokeMethod("Create", processToRun); - } + internal static void RunEXEOnRemoteComputer(string servername,string username, string password, string sourcePath, string targetPath, bool usecopy=false) + { + ConnectionOptions options = new ConnectionOptions + { + Username = username, + Password = password, + EnablePrivileges = true, + Impersonation = ImpersonationLevel.Impersonate + }; + + ManagementScope scope = new ManagementScope($@"\\{servername}\root\cimv2", options); + try + { + scope.Connect(); + + ObjectGetOptions objectGetOptions = new ObjectGetOptions(); + ManagementPath path = new ManagementPath("Win32_Process"); + ManagementClass fileService = new ManagementClass(scope, path, objectGetOptions); + string com = usecopy ? "copy" : "move";//"copy" + ManagementBaseObject inParams = fileService.GetMethodParameters("Create"); + inParams["CommandLine"] = "cmd.exe /c echo Hello from remote computer"; + //inParams["CommandLine"] = $"cmd.exe /c {com} \"{sourcePath}\" \"{targetPath}\""; + ManagementBaseObject outParams = fileService.InvokeMethod("Create", inParams, null); + + Console.WriteLine("Process ID: " + outParams["ProcessId"]); + Console.WriteLine("Return Value: " + outParams["ReturnValue"]); + } + catch (Exception ex) + { + Console.WriteLine("An error occurred: " + ex.Message); + } + //servername = @"ROCMP-alm01"; + //string sourcedir = @"f:\Log4ProISBackups\"; + //string sourcefile = @"Log4ProIS_ROCMP_ALMOLD_LearALM_DBBACKUP__20250514135117.zip"; + //sourcePath = Path.Combine(sourcedir,sourcefile); + //string targetdir = @"\\"+ servername + @"\f$\log4proisbackups\"; + //string targetfile = @"aaa.bbb"; + //targetPath = Path.Combine(targetdir, targetfile); + } /// /// Create SQL DB backup diff --git a/Vrh.Log4Pro.MaintenanceConsole/Program.cs b/Vrh.Log4Pro.MaintenanceConsole/Program.cs index ec824e3..9d7bdee 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Program.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Program.cs @@ -39,9 +39,13 @@ namespace Vrh.Log4Pro.MaintenanceConsole { static void Main(string[] args) { + + //SQLDataBaseManagerCore.RunEXEOnRemoteComputer(@"ROCMP-DTM01",@"corplear\gen_vrhalmadmin", "ALMforLear@-2024Q3##", @"\\ROCMP-DTM01\f$\Log4ProISBackups\TEST.txt", @"\\ROCMP-ALM01\f$\Log4ProISBackups\TST2" + (DateTime.Now.Ticks).ToString()+@".txt", true); + //SQLDataBaseManagerCore.RunEXEOnRemoteComputer(@"DESKTOP-1RNSI2E", "lschwirg", "Slsl23142314", @"c:\TMP\TEST.txt", @"c:\TMP\TEST" + (DateTime.Now.Ticks).ToString()+@".txt", true); //bool xxxx = new TimeSpan(0, 0, 15).Add(new TimeSpan(0, 0, 25).Negate()).Ticks > 0; - //return; - var forcedmodulekey = CommandLine.GetCommandLineArgument(args, CLP.CMD_MODULE); + Console.ReadLine(); + return; + var forcedmodulekey = CommandLine.GetCommandLineArgument(args, CLP.CMD_MODULE); var commandmode = !string.IsNullOrEmpty(forcedmodulekey); var silentmode = commandmode && !string.IsNullOrEmpty(CommandLine.GetCommandLineArgument(args, CLP.CMD_SILENT, switchtype: true)); ColorConsole.SilentMode=silentmode; diff --git a/Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs b/Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs index 9d2c1e1..7ce7fec 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.34.2.0")] -[assembly: AssemblyFileVersion("1.34.2.0")] +[assembly: AssemblyVersion("1.34.3.0")] +[assembly: AssemblyFileVersion("1.34.3.0")] -- libgit2 0.21.2